Quickguide LINRAT Problem

From TomWiki
Revision as of 09:42, 10 August 2011 by Elias (talk | contribs) (Created page with "{{Part Of Manual|title=the Quickguide Manual|link=Quickguide}} The linearly '''constrained linear ratio''' ('''LINRAT''') problem is defined as <math> \begin{arr...")
(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 linearly constrained linear ratio (LINRAT) problem is defined as


Failed to parse (unknown function "\multicolumn"): {\displaystyle \begin{array}{cccccc} \min\limits_x & \multicolumn{5}{l}{c1 x \over c2 x} \\ \mbox{subject to} & x_L & \leq & x & \leq & x_U \\ {} & b_L & \leq & Ax & \leq & b_U \\\end{array} }

where Failed to parse (unknown function "\Rdim"): {\displaystyle c1,c2,x,x_L,x_U \in \Rdim{n}} , Failed to parse (unknown function "\Rdim"): {\displaystyle b_L,b_U \in \Rdim{m_2}} , and Failed to parse (unknown function "\Rdim"): {\displaystyle A\in \Rdim{m_1 \times n}} .

The LINRAT solution can be obtained by the use of any suitable linear TOMLAB solver.

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

File: tomlab/quickguide/linratQG.m

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

 % linratQG is a small example problem for defining and solving
 % linear ratio programming problems using the TOMLAB format.
 
 Name = 'Linear Ratio 1';
 x_0  = [2;2;2;2];          % Initial value
 x_L  = [1;2;3;4];          % Lower bounds on x
 x_U  = [100;100;50;50];    % Upper bounds on x
 
 % Define the numerator and denominator for the objective
 c1 = [3;7;9;11]; 
 c2 = [20;15;10;5];
 
 % Add the linear constraint x(1) + x(2) + x(3) + x(4) - 20 &lt;= 0
 % Write the constraint as x(1) + x(2) + x(3) + x(4) &lt;= 20
 
 % The A matrix could be specified dense or sparse
 % A   = sparse([1 1 1 1]);
 
 A   = [1 1 1 1];
 b_L = -inf;
 b_U = 20;
 
 c = zeros(4,1); % Dummy objective
 
 % Generate an LP problem using the Tomlab Quick format
 % Use mipAssign if solving a mixed-integer problem
 Prob = lpAssign(c, A, b_L, b_U, x_L, x_U, x_0, Name);
 Prob.QP.c1 = c1;
 Prob.QP.c2 = c2;
 
 Prob.SolverRat = 'minos';
 
 % One may set other solvers:
 % Prob.SolverRat = 'cplex';
 % Prob.SolverRat = 'xa';
 % Prob.SolverRat = 'snopt';
 % Prob.SolverRat = 'milpSolve';
 
 % Set print level 1 to get output from PrintResult at the end
 PriLev = 1;
 Prob.PriLevOpt = 0;
 
 Result  = tomRun('linRatSolve', Prob, PriLev);