InfLinSolve: Difference between revisions
No edit summary |
No edit summary |
||
Line 15: | Line 15: | ||
where < | where <math>x,x_L,x_U \in \MATHSET{R}^{n}</math> , <math>b_L,b_U \in \MATHSET{R}^{m_1}</math> , <math>A \in \MATHSET{R}^{m_1 \times n}</Math> and <math>D \in \MATHSET{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== | ||
<syntaxhighlight lang="matlab"> | |||
Result=infLinSolve(Prob,PriLev) | Result=infLinSolve(Prob,PriLev) | ||
</syntaxhighlight> | |||
===Description of Inputs=== | ===Description of Inputs=== | ||
{| | {| class="wikitable" | ||
|-valign="top" | |-valign="top" | ||
|''Prob''||colspan="2"|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). | |''Prob''||colspan="2"|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). | ||
|- valign="top" | |||
|''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). | |||
|- | |- | ||
|colspan="2"|Extra fields used in Prob: | |||
|-valign="top" | |-valign="top" | ||
|''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== | ||
{| | {| class="wikitable" | ||
|-valign="top" | |-valign="top" | ||
|''Result||colspan="2"|''Structure with results from optimization. Output depends on the solver used. | |''Result||colspan="2"|''Structure with results from optimization. Output depends on the solver used. | ||
|-valign="top" | |-valign="top" | ||
|||The fields ''x_k'', ''f_k'', ''x_0'', ''xState'', ''bState'', ''v_k ''are transformed back to match the original problem. | |||
|-valign="top" | |-valign="top" | ||
|||The output in Result.Prob is the result after infLinSolve transformed the problem, i.e. the altered Prob structure | |||
|} | |} | ||
==Description== | ==Description== | ||
The linear minimax problem is solved in infLinSolve by rewriting the problem as a linear optimization problem. One additional variable <math> | The linear minimax problem is solved in infLinSolve by rewriting the problem as a linear optimization problem. One additional variable <math>z\in \MATHSET{R}</math>, stored as <math>x_{n+1}</math> is added and the problem is rewritten as: | ||
Line 72: | Line 74: | ||
where <math>$e \in \ | where <math>$e \in \MATHSET{R}^{N},\; e(i)=1 \ \forall i$</math>. | ||
To handle cases where a row in D | 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'']. | ||
==See Also== | ==See Also== | ||
''lpAssign''. | ''lpAssign''. |
Revision as of 08:50, 20 July 2011
{{#switch: | left =
{{#switch:{{#if: | {{{smallimage}}} | }} | none =| #default =
}} {{#if:{{#if: | {{{smallimageright}}} | }} | {{#ifeq:{{#if: | {{{smallimageright}}} | }}|none | | }} }}{{
#switch:left | left =| #default = }} {{#if:{{#if: | {{{smallimage}}} | }} | {{#if: | {{{smallimage}}} | }} | [[File:{{#switch:caution | critical = Ambox speedy deletion.png | important = Ambox deletion.png | warning = Ambox content.png | caution = Cleanup.png | move = Ambox move.png | protection = Ambox protection.png | notice | #default = Cleanup.png }} | {{#switch:left | left = 20x20px | #default = 40x40px }} |link=|alt=]] }}{{#switch:left | left =| #default = | {{#if:
| {{{smalltext}}} | Cleanup is needed}} | {{#switch:left
| left = {{#if: | {{{smallimageright}}} | }}| #default = {{#if:
}}| {{{smallimageright}}} |}} |
| #default =
{{#switch: | none =| #default =
}}{{#if: | {{#ifeq:|none
|| }} }}
{{
#switch: | left =| #default = }} {{#if: | | [[File:{{#switch:caution | critical = Ambox speedy deletion.png | important = Ambox deletion.png | warning = Ambox content.png | caution = Cleanup.png | move = Ambox move.png | protection = Ambox protection.png | notice | #default = Cleanup.png }} | {{#switch: | left = 20x20px | #default = 40x40px }} |link=|alt=]] }}{{#switch: | left =| #default = | Cleanup is needed Clean this article. |
{{#switch:
| left =| #default = |
}}
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:
Failed to parse (unknown function "\multicolumn"): {\displaystyle \begin{array}{cccccc} \min\limits_x & \multicolumn{5}{l}{\max Dx} \\\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 "\MATHSET"): {\displaystyle x,x_L,x_U \in \MATHSET{R}^{n}}
, Failed to parse (unknown function "\MATHSET"): {\displaystyle b_L,b_U \in \MATHSET{R}^{m_1}}
, Failed to parse (unknown function "\MATHSET"): {\displaystyle A \in \MATHSET{R}^{m_1 \times n}}
and Failed to parse (SVG with PNG fallback (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle D \in \MATHSET{R}^{m_2 \times n}}
. 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)
Description of 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 Failed to parse (unknown function "\MATHSET"): {\displaystyle z\in \MATHSET{R}} , stored as is added and the problem is rewritten as:
Failed to parse (unknown function "\multicolumn"): {\displaystyle \begin{array}{cccccc} \multicolumn{6}{l}{\min\limits_x z}\\ \\\mbox{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} }
where Failed to parse (unknown function "\MATHSET"): {\displaystyle $e \in \MATHSET{R}^{N},\; e(i)=1 \ \forall i$}
.
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.