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