InfLinSolve: Difference between revisions
(→Inputs) |
No edit summary |
||
Line 9: | Line 9: | ||
<math> | <math> | ||
\begin{array}{cccccc} | \begin{array}{cccccc} | ||
\ | \min_{x} & \max_{Dx}\\ | ||
</ | \text{subject to} & x_L & \leq & x & \leq & x_U\\ | ||
& b_L & \leq & Ax & \leq & b_U | |||
\end{array} | |||
</math> | |||
where <math>x,x_L,x_U \in \ | where <math>x,x_L,x_U \in \mathbb{R}^{n}</math> , <math>b_L,b_U \in \mathbb{R}^{m_1}</math> , <math>A \in \mathbb{R}^{m_1 \times n}</Math> and <math>D \in \mathbb{R}^{m_2 \times n}</math> . The variables <math>x \in I</Math> , the index subset of <Math>1,...,n</Math> are restricted to be integers. The different objectives are stored in D row-wise. | ||
==Calling Syntax== | ==Calling Syntax== | ||
Line 61: | Line 64: | ||
==Description== | ==Description== | ||
The linear minimax problem is solved in infLinSolve by rewriting the problem as a linear optimization problem. One additional variable <math>z\in \ | The linear minimax problem is solved in infLinSolve by rewriting the problem as a linear optimization problem. One additional variable <math>z\in \mathbb{R}</math>, stored as <math>x_{n+1}</math> is added and the problem is rewritten as: | ||
<math> | <math> | ||
\begin{array}{cccccc} | \begin{array}{cccccc} | ||
\ | \min_{limits_x z}\\ | ||
\ | \text{subject to} & x_L & \leq & (x_1,x_2,\ldots,x_n)^T & \leq & x_U \\ | ||
& -\infty & \leq & z & \leq & \infty \\ | |||
& b_L & \leq & A x &\leq & b_U \\ | |||
& -\infty & \leq & D x - z e & \leq & 0 \\ | |||
\end{array} | \end{array} | ||
</math> | </math> | ||
where <math> | where <math>e \in \mathbb{R}^{N},\; e(i)=1 \ \forall i</math>. | ||
To handle cases where a row in D*x is taken the absolute value of: ''minmax<nowiki>|</nowiki>D * x<nowiki>|</nowiki>'', expand the problem with extra residuals with the opposite sign: [''D * x''; ''-D * x'']. | To handle cases where a row in D*x is taken the absolute value of: ''minmax<nowiki>|</nowiki>D * x<nowiki>|</nowiki>'', expand the problem with extra residuals with the opposite sign: [''D * x''; ''-D * x'']. |
Revision as of 07:27, 7 December 2011
Purpose
Finds a linearly constrained minimax solution of a function of several variables with the use of any suitable TOMLAB solver. The decision variables may be binary or integer.
infLinSolve solves problems of the type:
where , , and . The variables , the index subset of are restricted to be integers. The different objectives are stored in D row-wise.
Calling Syntax
Result=infLinSolve(Prob,PriLev)
Inputs
Prob | Structure Prob. Prob must be defined. Best is to use Prob = lp/mipAssign(.....), if using the TQ format. Prob.QP.D matrix should then be set to the rows (Prob.QP.c ignored). | |
PriLev | Print level in infLinSolve.
= 0 Silent except for error messages. > 0 Print summary information about problem transformation. Calls PrintResult with specified PriLev. = 2 Standard output from PrintResult (default). | |
Extra fields used in Prob: | ||
SolverInf | Name of the TOMLAB solver. Valid names are: cplex, minos, snopt, xa and more. SeeSolverList('lp'); or SolverList('mip'); | |
QP.D | The rows with the different objectives. | |
f_Low | Lower bound on the objective (optional). | |
f_Upp | Upper bound on the objective (optional). |
Outputs
Result | Structure with results from optimization. Output depends on the solver used.
The fields x_k, f_k, x_0, xState, bState, v_k are transformed back to match the original problem. The output in Result.Prob is the result after infLinSolve transformed the problem, i.e. the altered Prob structure |
Description
The linear minimax problem is solved in infLinSolve by rewriting the problem as a linear optimization problem. One additional variable , stored as is added and the problem is rewritten as:
where .
To handle cases where a row in D*x is taken the absolute value of: minmax|D * x|, expand the problem with extra residuals with the opposite sign: [D * x; -D * x].
See Also
lpAssign.