Quickguide MIQP Problem

From TomWiki
Revision as of 03:44, 10 August 2011 by Elias (talk | contribs) (Created page with "{{Part Of Manual|title=the Quickguide Manual|link=Quickguide}} The general formulation in TOMLAB for a mixed-integer quadratic programming problem is: <math> \be...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Notice.png

This page is part of the Quickguide Manual. See Quickguide.

The general formulation in TOMLAB for a mixed-integer quadratic programming problem is:


Failed to parse (unknown function "\MATHSET"): {\displaystyle \begin{array}{ll} \min\limits_{x} & f(x) = \frac{1}{2} x^T F x + c^T x \\ & \\ s/t & \begin{array}{lcccl} x_{L} & \leq & x & \leq & x_{U}, \\ b_{L} & \leq & A x & \leq & b_{U}, ~x_{j} \in \MATHSET{N}\ ~~\forall j \in $I$ \\ \end{array} \end{array} }


where Failed to parse (unknown function "\MATHSET"): {\displaystyle c, x, x_L, x_U \in \MATHSET{R}^n} , Failed to parse (unknown function "\MATHSET"): {\displaystyle A \in \MATHSET{R}^{m_1 \times n}} , and Failed to parse (unknown function "\MATHSET"): {\displaystyle b_L,b_U \in \MATHSET{R}^{m_1}} . The variables , the index subset of are restricted to be integers. Equality constraints are defined by setting the lower bound equal to the upper bound, i.e. for constraint : .

The following file illustrates how to solve a MIQP problem in TOMLAB.

File: tomlab/quickguide/miqpQG.m

Open the file for viewing, and execute miqpQG in Matlab.

 % miqpQG is a small example problem for defining and solving
 % mixed-integer quadratic programming problems using the TOMLAB format.
 
 c    = [-6 0]';
 Name = 'XP Ref Manual MIQP';
 F    = [4 -2;-2 4];
 A    = [1 1];
 b_L  = -Inf;
 b_U  = 1.9;
 x_L  = [0 0]';
 x_U  = [Inf Inf]';
 
 % Defining first variable as an integer
 IntVars   = 1;
 
 % Assign routine for defining a MIQP problem.
 Prob = miqpAssign(F, c, A, b_L, b_U, x_L, x_U, [], ...
            IntVars, [], [], [], Name, [], []);
 
 % Calling driver routine tomRun to run the solver.
 % The 1 sets the print level after optimization.
 
 Result = tomRun('cplex', Prob, 1);
 %Result = tomRun('oqnlp', Prob, 1);
 %Result = tomRun('miqpBB', Prob, 1);
 %Result = tomRun('xpress-mp', Prob, 1);
 %Result = tomRun('minlpBB', Prob, 1);