Quickguide MIQQ Problem: Difference between revisions

From TomWiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
{{Part Of Manual|title=the Quickguide Manual|link=[[Quickguide|Quickguide]]}}
The general formulation in TOMLAB for a mixed-integer quadratic programming problem with quadratic constraints is:
The general formulation in TOMLAB for a mixed-integer quadratic programming problem with quadratic constraints is:



Revision as of 03:50, 10 August 2011

Notice.png

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:


Failed to parse (unknown function "\multicolumn"): {\displaystyle \begin{array}{ccccccl} \min\limits_{x} & \multicolumn{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 \\ \end{array} }


where Failed to parse (unknown function "\MATHSET"): {\displaystyle c, x, x_{L}, x_{U}, a^{(i)} \in \MATHSET{R}^{n}} , Failed to parse (unknown function "\MATHSET"): {\displaystyle F, Q^{(i)}\in \MATHSET{R}^{n\times n}} , Failed to parse (unknown function "\MATHSET"): {\displaystyle A\in \MATHSET{R}^{m\times n}} and Failed to parse (unknown function "\MATHSET"): {\displaystyle b_{L},b_{U}\in \MATHSET{R}^{m}} . 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);