Quickguide MIQQ Problem: Difference between revisions
From TomWiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
<math> | <math> | ||
\begin{array}{ccccccl} | \begin{array}{ccccccl} | ||
\min\limits_{x} & | \min\limits_{x} & {5}{l}{f(x) = \frac{1}{2}x^T F x + c^T x} \\ | ||
s/t & x_{L} & \leq & x & \leq & x_{U} \\ & b_{L} & \leq & Ax & \leq & b_{U} \\ & & & x^T Q^{(i)} x + a^{(i)T} x & \leq & r^{(i)}_{U}, & i=1,\ldots,n_{qc} \\ & & & x_i \mathrm{\ \ integer} & & i \in I \\ | s/t & x_{L} & \leq & x & \leq & x_{U} \\ & b_{L} & \leq & Ax & \leq & b_{U} \\ & & & x^T Q^{(i)} x + a^{(i)T} x & \leq & r^{(i)}_{U}, & i=1,\ldots,n_{qc} \\ & & & x_i \mathrm{\ \ integer} & & i \in I \\ | ||
\end{array} | \end{array} | ||
Line 11: | Line 11: | ||
where <math>c, x, x_{L}, x_{U}, a^{(i)} \in \ | where <math>c, x, x_{L}, x_{U}, a^{(i)} \in \mathbb{R}^{n}</math>, <math>F, | ||
Q^{(i)}\in \ | Q^{(i)}\in \mathbb{R}^{n\times n}</math>, <math>A\in \mathbb{R}^{m\times | ||
n}</math> and <math>b_{L},b_{U}\in \ | n}</math> and <math>b_{L},b_{U}\in \mathbb{R}^{m}</math>. <math>r^{(i)}_{U}</math> is a | ||
scalar. The variables <math>x \in I</math>, the index subset of <math>1,...,n</math>, | scalar. The variables <math>x \in I</math>, the index subset of <math>1,...,n</math>, | ||
are restricted to be integers. | are restricted to be integers. | ||
Line 23: | Line 23: | ||
Open the file for viewing, and execute miqqQG in Matlab. | Open the file for viewing, and execute miqqQG in Matlab. | ||
< | <source lang="matlab"> | ||
% miqqQG is a small example problem for defining and solving | % miqqQG is a small example problem for defining and solving | ||
% mixed-integer quadratic programming problems with quadratic constraints | % mixed-integer quadratic programming problems with quadratic constraints | ||
Line 63: | Line 63: | ||
Result = tomRun('cplex', Prob, 1); | Result = tomRun('cplex', Prob, 1); | ||
% Result = tomRun('minlpBB', Prob, 1); | % Result = tomRun('minlpBB', Prob, 1); | ||
</ | </source> |
Latest revision as of 07:48, 17 January 2012
This page is part of the Quickguide Manual. See Quickguide. |
The general formulation in TOMLAB for a mixed-integer quadratic programming problem with quadratic constraints is:
where , , and . is a
scalar. The variables , the index subset of ,
are restricted to be integers.
The following file illustrates how to solve a MIQQ problem in TOMLAB.
File: tomlab/quickguide/miqqQG.m
Open the file for viewing, and execute miqqQG in Matlab.
% miqqQG is a small example problem for defining and solving
% mixed-integer quadratic programming problems with quadratic constraints
% using the TOMLAB format.
Name = 'MIQQ Test Problem 1';
f_Low = -1E5;
x_opt = [];
f_opt = [];
IntVars = logical([0 0 1]); % 3rd variable is integer valued
F = [2 0 0;0 2 0;0 0 2];
A = [1 2 -1;1 -1 1];
b_L = [4 -2]';
b_U = b_L;
c = zeros(3,1);
x_0 = [0 0 0]';
x_L = [-10 -10 -10]';
x_U = [10 10 10]';
x_min = [0 0 -1]';
x_max = [2 2 1]';
% Adding quadratic constraints
clear qc
qc(1).Q = speye(3,3);
qc(1).a = zeros(3,1);
qc(1).r_U = 3;
qc(2).Q = speye(3,3);
qc(2).a = zeros(3,1);
qc(2).r_U = 5;
Prob = miqqAssign(F, c, A, b_L, b_U, x_L, x_U, x_0, qc,...
IntVars, [], [], [],...
Name, [], [],...
x_min, x_max, f_opt, x_opt);
Result = tomRun('cplex', Prob, 1);
% Result = tomRun('minlpBB', Prob, 1);