InfSolve: Difference between revisions

From TomWiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 13: Line 13:
</math>
</math>


where <math>$x,x_L,x_U \in \Rdim{n}$</math> , <math>$r(x) \in \Rdim{N}$</math> , <math>$c(x),c_L,c_U \in\Rdim{m_1}$</math> , <math>$b_L,b_U \in \Rdim{m_2}$</math> and <math>$A \in \Rdim{m_2 \times n}$</math>.
where <math>x,x_L,x_U \in \MATHSET{R}^{n}</math> , <math>r(x) \in \MATHSET{R}^{N}</math> , <math>c(x),c_L,c_U \in \MATHSET{R}^{m_1}</math> , <math>b_L,b_U \in \MATHSET{R}^{m_2}</math> and <math>A \in \MATHSET{R}^{m_2 \times n}</math>.


==Calling Syntax==
==Calling Syntax==


<syntaxhighlight lang="matlab">
Result=infSolve(Prob,PriLev)
Result=infSolve(Prob,PriLev)
</syntaxhighlight>


==Inputs===
==Inputs==


{|
{| class="wikitable"
|-valign="top"
|-valign="top"
||''Prob''||colspan="2"|Problem description structure. Should be created in the '''cls''' format. infSolve uses two special fields in ''Prob'':
||''Prob''||colspan="2"|Problem description structure. Should be created in the '''cls''' format. infSolve uses two special fields in ''Prob'':
|-
|-valign="top"
|||''SolverInf''||Name of solver used to solve the transformed problem.
|||''SolverInf''||Name of solver used to solve the transformed problem.
|-
 
|||||Valid choices are ''conSolve'', ''nlpSolve'', ''sTrustr ''and ''clsSolve''.  
Valid choices are ''conSolve'', ''nlpSolve'', ''sTrustr ''and ''clsSolve''.  
|-
 
|||||If TOMLAB /SOL is installed: ''minos'', ''snopt'', ''npopt''.
If TOMLAB /SOL is installed: ''minos'', ''snopt'', ''npopt''.
|-
|-valign="top"
|||''InfType''||1 - constrained formulation (default).
|||''InfType''||1 - constrained formulation (default).
|-
 
|||||2 - LS penalty approach (experimental).
2 - LS penalty approach (experimental).
|-
|-
|||colspan="2"|The remaining fields of ''Prob ''should be defined  as required by the selected subsolver.
|||colspan="2"|The remaining fields of ''Prob ''should be defined  as required by the selected subsolver.
|-
|-valign="top"
|||''PriLev''||Print level in ''infSolve''.
|''PriLev''||colspan="2"|Print level in ''infSolve''.
|-
 
|||||= 0 Silent except for error messages.
=0 Silent except for error messages.
|-
 
|||||''> ''0 Print summary information about problem transformation.
''>''0 Print summary information about problem transformation.
|-
 
|||||Calls ''PrintResult'' with specified ''PriLev''.
Calls ''PrintResult'' with specified ''PriLev''.
|-
 
|||||= 2Standard output from ''PrintResult ''(default).
=2 Standard output from ''PrintResult ''(default).
|}
|}


==Outputs==
==Outputs==


{|
{| class="wikitable"
|-valign="top"
|-valign="top"
|''Result''||colspan="2"|Structure with results from optimization.  Output depends on the solver used.
|''Result''||Structure with results from optimization.  Output depends on the solver used.
|-valign="top"
 
|||colspan="2"|The fields ''x_k'', ''r_k'', ''J_k'', ''c_k'', ''cJac'', ''x_0'', ''xState'', ''cState'', ''v_k ''are transformed back to match the original problem.
The fields ''x_k'', ''r_k'', ''J_k'', ''c_k'', ''cJac'', ''x_0'', ''xState'', ''cState'', ''v_k ''are transformed back to match the original problem.
|-
 
|||colspan="2"|''g_k ''is calculated as <math>\VAR{J\_k</math><math>$^T$</math><math>}</math> <math>$\cdot$</math> <math>\VAR{r\_k}</math>.
''g_k ''is calculated as <math>\VAR{J\_k</math><math>$^T$</math><math>}</math> <math>$\cdot$</math> <math>\VAR{r\_k}</math>.
|-valign="top"
 
|||colspan="2"|The output  in Result.Prob is the result after infSolve  transformed the problem, i.e. the altered Prob structure
The output  in Result.Prob is the result after infSolve  transformed the problem, i.e. the altered Prob structure
|}
|}


Line 71: Line 73:




where <math>$e \in \Rdim{N},\; e(i)=1 \ \forall i$</math>.
where <math>e \in \MATHSET{R}^{N},\; e(i)=1 \ \forall i</math>.


To handle cases where an element <math>$r_i(x)$</math> in <math>$r(x)$</math> appears in absolute value:  <math>$\min \max |r_i(x)|$</math>, expand the problem with extra residuals with the opposite sign: <math>$ [ r_i(x); -r_i(x) ] $</math>
To handle cases where an element <math>$r_i(x)$</math> in <math>$r(x)$</math> appears in absolute value:  <math>$\min \max |r_i(x)|$</math>, expand the problem with extra residuals with the opposite sign: <math>$ [ r_i(x); -r_i(x) ] $</math>

Revision as of 09:06, 20 July 2011

Purpose

Find a constrained minimax solution with the use of any suitable TOMLAB solver.

infSolve solves problems of the type:


Failed to parse (unknown function "\multicolumn"): {\displaystyle \begin{array}{cccccc} \min\limits_x & \multicolumn{5}{l}{\max r(x)} \\\mbox{subject to} & x_L & \leq & x & \leq & x_U \\& b_L & \leq & Ax & \leq & b_U \\& c_L & \leq & c(x) & \leq & c_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 r(x) \in \MATHSET{R}^{N}} , Failed to parse (unknown function "\MATHSET"): {\displaystyle c(x),c_L,c_U \in \MATHSET{R}^{m_1}} , Failed to parse (unknown function "\MATHSET"): {\displaystyle b_L,b_U \in \MATHSET{R}^{m_2}} and Failed to parse (unknown function "\MATHSET"): {\displaystyle A \in \MATHSET{R}^{m_2 \times n}} .

Calling Syntax

Result=infSolve(Prob,PriLev)

Inputs

Prob Problem description structure. Should be created in the cls format. infSolve uses two special fields in Prob:
SolverInf Name of solver used to solve the transformed problem.

Valid choices are conSolve, nlpSolve, sTrustr and clsSolve.

If TOMLAB /SOL is installed: minos, snopt, npopt.

InfType 1 - constrained formulation (default).

2 - LS penalty approach (experimental).

The remaining fields of Prob should be defined as required by the selected subsolver.
PriLev Print level in infSolve.

=0 Silent except for error messages.

>0 Print summary information about problem transformation.

Calls PrintResult with specified PriLev.

=2 Standard output from PrintResult (default).

Outputs

Result Structure with results from optimization. Output depends on the solver used.

The fields x_k, r_k, J_k, c_k, cJac, x_0, xState, cState, v_k are transformed back to match the original problem.

g_k is calculated as Failed to parse (unknown function "\VAR"): {\displaystyle \VAR{J\_k} Failed to parse (syntax error): {\displaystyle }} Failed to parse (unknown function "\VAR"): {\displaystyle \VAR{r\_k}} .

The output in Result.Prob is the result after infSolve transformed the problem, i.e. the altered Prob structure

Description

The minimax problem is solved in infSolve by rewriting the problem as a general constrained 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 \\& c_L & \leq & c(x) & \leq & c_U \\& -\infty & \leq & r(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 an element in appears in absolute value: , expand the problem with extra residuals with the opposite sign:

Examples

minimaxDemo.m.

See Also

clsAssign.