|
TOMLAB OPTIMIZATION ENVIRONMENT: infSolve |
![]() |
infSolve
Purpose
For finding a constrained minimax solution with the use of any suitable
TOMLAB solver.
Syntax
Result = infSolve(Prob, PriLev);
Description
Finds a constrained minimax solution of a function of several variables with
the use of any suitable TOMLAB solver
Problem
min max r(x), where r(x) is in R^m
x
s/t x_L <= x <= x_U, x is in R^n
b_L <= A x <= b_U
c_L <= c(x) <= c_U
The minimax problem is solved in infSolve by rewriting the problem
as a general constrained optimization problem.
One additional variable z, stored as x(n+1), is added
min z, where r(x) is in R^m (infType == 1)
x
s/t x_L <= x(1:n) <= x_U
-Inf <= z <= Inf
b_L <= A x <= b_U
c_L <= c(x) <= c_U
-Inf <= r(x) - z*e <= 0, e is in R^m, e(i)=1 for all i
To handle cases where an element i in r(x), r_i(x) is
taken the absolute value of: min max |r_i(x)|, expand the problem
with extra residuals with the opposite sign: [r_i(x); -r_i(x)]
Example
See minimaxDemo.m in tomlab\examples
Input Parameters
Prob Structure Prob. Prob must be defined!!!
Best is to use Prob = clsAssign(.....), if using the TQ format.
The problem should be created in the Tomlab constrained
nonlinear least squares format (cls)
This format is aimed for a vector valued function, with a
Jacobian matrix as the derivative.
PriLev The second input argument. Default == 2.
If PriLev == 0, infSolve is silent, except for error messages.
If > 0, infSolve prints summary output about problem
transformation
infSolve 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:
SolverInf Name of the Tomlab solver. Valid names are:
conSolve, nlpSolve, sTrustr, clsSolve
If Tomlab /SOL is installed: minos, snopt, npopt
If clsSolve or NLSSOL is used, a LS approach is used
InfType =1 constrained formulation. = 2 LS penalty approach (NOT OK)
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 c_L: Lower bounds for nonlinear constraints c_U: Upper bounds for nonlinear constraints ConsPattern The pattern of the constraint Jacobian (derivatives of c(x)) JacPattern The pattern of the residual Jacobian (derivatives of r(x))
infSolve will create the new Prob.ConsPattern to be
used by the solver using the information in ConsPattern and
JacPattern.
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.c_k, Result.cJac, 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 infSolve
transformed the problem, i.e. the altered Prob structure
![]() |
goalSolve | L1LinSolve | ![]() |