L1Solve
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:
Failed to parse (unknown function "\multicolumn"): {\displaystyle \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 \\ \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 = 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
Failed to parse (unknown function "\multicolumn"): {\displaystyle \begin{array}{cccccc} \min\limits_x & \multicolumn{5}{l}{\sum_i (y_i+z_i) } \\ \mbox{subject to} & x_L & \leq & x & \leq & x_U \\ {} & 0 & \leq & y & \leq & \infty \\ {} & 0 & \leq & z & \leq & \infty \\ {} & b_L & \leq & Ax & \leq & b_U \\ {} & c_L & \leq & c(x) & \leq & c_U \\ {} & 0 & \leq & r(x)+y-z & \leq & 0 \\ \end{array} }
A problem with N residuals is extended with 2N nonnegative variables Failed to parse (unknown function "\MATHSET"): {\displaystyle y,z \in \MATHSET{R}^{N}}
along with N equality constraints .