|
TOMLAB OPTIMIZATION ENVIRONMENT: L1LinSolve |
![]() |
L1LinSolve
Purpose
For finding a linearly constrained L1 solution of a function of several variables with the use of any suitable TOMLAB LP solver
Syntax
Result = L1LinSolve(Prob, PriLev);
Description
Finds a linearly constrained L1 solution of a function of several variables with the use of any suitable TOMLAB LP solver
Problem
min sum_i |Cx - y| + alpha*|Lx|, where y is in R^m
x
s/t x_L <= x <= x_U, x is in R^n
b_L <= A x <= b_U
The L1 problem is solved in L1LinSolve by rewriting the problem as
a linear programming problem.
A set of m additional variables v, stored as x(n+1:m), and a set of m additional variables z, stored as x(n+m+1:n+2*m), is added
If damping alpha is nonzero and nonempty:
A set of n additional variables r, stored as x(n+2m+1:n+2m+n), and
a set of n additional variables s, stored as x(n+2m+n+1:n+2m+2*n), is added
min sum_i(v_i+z_i + alpha(r_i+s_i))
x
s/t x_L <= x <= x_U
0 <= y <= Inf
0 <= z <= Inf
0 <= r <= Inf
0 <= s <= Inf
b_L <= A x <= b_U
y <= C x + v - z <= y
0 <= L x + r - s <= 0
Example
See L1LinDemo.m in tomlab\examples
Input Parameters
Prob Structure Prob. Prob must be defined!!!
Best is to use Prob = llsAssign(.....), if using the TQ format.
The problem should be created in the Tomlab linear
least squares format (lls)
PriLev The second input argument. Default == 2.
If PriLev == 0, L1LinSolve is silent, except for error messages.
If > 0, L1LinSolve prints summary output about problem
transformation
L1LinSolve calls PrintResult(Result,PriLev), i.e. printing in
PrintResult is made if PriLev > 0.
PriLev == 2 displays standard output in PrintResult.
Extra fields used in Prob:
SolverL1 Name of the Tomlab solver. Valid names are:
lpSolve, qld
If Tomlab /MINOS is installed: minos, lpopt, qpopt
If Tomlab /SOL is installed: sqopt, snopt, npopt
If Tomlab /Xpress is installed: xpress-mp
If Tomlab /Cplex is installed: cplex
If Tomlab /MINLP is installed: bqpd
LS.C Linear matrix C m x n
LS.y Data vector y m x 1
LS.damp Damping parameter alpha
LS.L Damping matrix L in damping term alpha*||Lx||
The rest of the fields in Prob should be defined as wanted by
the selected solver. See the help for the solver.
In particular:
x_0: Starting point x_L: Lower bounds for x x_U: Upper bounds for x b_L: Lower bounds for linear constraints b_U: Upper bounds for linear constraints A: Linear constraint matrix
Output Parameters
Result Structure with results from optimization. See help for the used solver
The output in Result, i.e. fields Result.x_k, Result.r_k, Result.J_k,
Result.x_0, Result.xState, Result.cState,
Result.v_k, is transformed back to the original problem.
Result.g_k is Result.J_k'*Result.r_k.
The output in Result.Prob is the result after L1LinSolve
transformed the problem, i.e. the altered Prob structure
![]() |
infSolve | L1Solve | ![]() |