L1Solve: Difference between revisions

From TomWiki
Jump to navigationJump to search
(Created page with "==Purpose== Find a constrained L1 solution of a function of several variables with the use of any suitable nonlinear TOMLAB solver. ''L1Solve ''solves problems of the type: <...")
 
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Solvers]]
==Purpose==
==Purpose==


Line 8: Line 9:
<math>
<math>
\begin{array}{cccccc}
\begin{array}{cccccc}
\min\limits_x & \multicolumn{5}{l}{\sum_i |r_i(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 \\
\min\limits_x & {\sum_i |r_i(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}
\end{array}
</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 \mathbb{R}^{n}</math> , <math>r(x) \in \mathbb{R}^{N}</math> , <math>c(x),c_L,c_U\in \mathbb{R}^{m_1}</math> , <math>b_L,b_U \in \mathbb{R}^{m_2}</math> and <math>A\in \mathbb{R}^{m_2 \times n}</math>.
 


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


<source lang="matlab">
Result = L1Solve(Prob,PriLev)
Result = L1Solve(Prob,PriLev)
</source>


===Description of Inputs===
==Inputs==


{|
{| class="wikitable"
|-valign="top"
|-valign="top"
|''Prob ''||colspan="2"|Problem description structure. ''Prob ''should be created in the '''cls '''constrained nonlinear format.
!Prob
!colspan="2"|Problem description structure. ''Prob ''should be created in the cls constrained nonlinear format.
|-
|-
|||colspan="2"|''L1Solve'' uses one special field in ''Prob'':
|||colspan="2"|''L1Solve'' uses one special field in ''Prob'':
Line 51: Line 54:
|-valign="top"
|-valign="top"
|||''JacPattern''||Prob.LS.y must have the correct residual length if ''JacPattern ''is empty  but ''ConsPattern ''is not.
|||''JacPattern''||Prob.LS.y must have the correct residual length if ''JacPattern ''is empty  but ''ConsPattern ''is not.
|-valign="top"
 
|||||''L1Solve ''will create the new patterns for the sub-solver using the information supplied in these two fields.
''L1Solve ''will create the new patterns for the sub-solver using the information supplied in these two fields.
|-
|-
|||''PriLev''||Print level in ''L1Solve''.
|||''PriLev''||Print level in ''L1Solve''.
|-
|-
|||= 0||silent except for error messages.
|||= 0||silent except for error messages.
|-
|-valign="top"
|||''> ''0||print summary information about problem transformation.
|||''> ''0||print summary information about problem transformation.
|-
 
|||||Calls ''PrintResult ''with specified ''PriLev''.
Calls ''PrintResult ''with specified ''PriLev''.
|-
|-
|||= 2||standard output from ''PrintResult''.
|||= 2||standard output from ''PrintResult''.
|}
|}


===Description of Outputs===
==Outputs==


{|
{| class="wikitable"
|''Result''||Structure with results from optimization. Fields changed depends on which solver was used for the extended problem.
|- valign="top"
|-
|Result''||Structure with results from optimization.  
|||The fields ''x_k'', ''r_k'', ''J_k'', ''c_k'', ''cJac'', ''x_0'', ''xState'', ''cState'', ''v_k'', are transformed back to the format of the original L1 problem. ''g k ''is calculated as <math>{J\_k</math><math>$^T$</math><math>}</math> · ''r k''.  The returned problem structure ''Result.Prob ''is the result after ''L1Solve ''transformed the problem, i.e. the altered ''Prob ''structure.
 
Fields changed depends on which solver was used for the extended problem.
 
The fields ''x_k'', ''r_k'', ''J_k'', ''c_k'', ''cJac'', ''x_0'', ''xState'', ''cState'', ''v_k'', are transformed back to the format of the original L1 problem. ''g k ''is calculated as ''J_k<sup>T</sup> · r k''.  The returned problem structure ''Result.Prob ''is the result after ''L1Solve ''transformed the problem, i.e. the altered ''Prob ''structure.
|}
|}


==Description==
==Description==


L1Solve solves the L1 problem by reformulating it as the  
L1Solve solves the L1 problem by reformulating it as the general constrained optimization problem
 
general constrained optimization problem




<math>
<math>
\begin{array}{cccccc}
\begin{array}{cccccc}
\min\limits_x & \multicolumn{5}{l}{\sum_i (y_i+z_i) }  \\
\min\limits_x & {\sum_i (y_i+z_i) }  \\
\mbox{subject to} & x_L & \leq & x        & \leq & x_U    \\
\mbox{subject to} & x_L & \leq & x        & \leq & x_U    \\
{}                & 0  & \leq & y        & \leq & \infty \\
{}                & 0  & \leq & y        & \leq & \infty \\
Line 93: Line 97:




A problem with ''N ''residuals is extended with 2''N ''nonnegative variables <math>$y,z \in \Rdim{N}$</math> along with ''N'' equality constraints <math>$r_i(x) + y_i - z_i = 0$</math>.
A problem with ''N ''residuals is extended with 2''N ''nonnegative variables <math>y,z \in \mathbb{R}^{N}</math> along with ''N'' equality constraints <math>r_i(x) + y_i - z_i = 0</math>.


==See Also==
==See Also==


[[infSolve|''infSolve'']]
[[infSolve|''infSolve'']]

Latest revision as of 08:13, 16 January 2012

Purpose

Find a constrained L1 solution of a function of several variables with the use of any suitable nonlinear TOMLAB solver.

L1Solve solves problems of the type:



where , , , and .

Calling Syntax

Result = L1Solve(Prob,PriLev)

Inputs

Prob Problem description structure. Prob should be created in the cls constrained nonlinear format.
L1Solve uses one special field in Prob:
SolverL1 Name of the TOMLAB solver used to solve the augmented general nonlinear problem generated by L1Solve.
Any other fields are passed along to the solver specified by Prob.SolverL1. In particular:
A Linear constraint matrix.
b_L Lower bounds on variables.
b_U Upper bounds on variables.
c_L Lower bounds for nonlinear constraints.
c_U Upper bounds for nonlinear constraints..
x_L Lower bounds on variables.
x_U Upper bounds on variables.
x_0 Starting point.
ConsPattern Nonzero patterns of constraint and residual Jacobians.
JacPattern Prob.LS.y must have the correct residual length if JacPattern is empty but ConsPattern is not.

L1Solve will create the new patterns for the sub-solver using the information supplied in these two fields.

PriLev Print level in L1Solve.
= 0 silent except for error messages.
> 0 print summary information about problem transformation.

Calls PrintResult with specified PriLev.

= 2 standard output from PrintResult.

Outputs

Result Structure with results from optimization.

Fields changed depends on which solver was used for the extended problem.

The fields x_k, r_k, J_k, c_k, cJac, x_0, xState, cState, v_k, are transformed back to the format of the original L1 problem. g k is calculated as J_kT · r k. The returned problem structure Result.Prob is the result after L1Solve transformed the problem, i.e. the altered Prob structure.

Description

L1Solve solves the L1 problem by reformulating it as the general constrained optimization problem



A problem with N residuals is extended with 2N nonnegative variables along with N equality constraints .

See Also

infSolve