TOMLAB OPTIMIZATION ENVIRONMENT: sTrustr

   

sTrustr

Purpose

For solving optimization problems constrained by a convex feasible region.

Syntax

   Result = sTrustr(Prob, varargin);

Description

Structured Trust Region algorithm

Ref. A. R. Conn, Nick Gould, A. Sartenaer, Ph. L. Toint, "Convergence Properties of Minimization Algorithms For Convex Constraints Using A Structured Trust Region", July 4, 1995

sTrustr implements an algorithm for solving linearly constrained minimization problems

It handles nonlinear constraints, but might fail if the constraints are nonconvex.

Run e.g. conSolve or nlpSolve for nonlinearly constrained problems.

sTrustr runs different methods to obtain the gradient g and the Hessian H, dependent on the parameters Prob.Solver.Alg, Prob.NumDiff, Prob.AutoDiff and if a user supplied routine for the Hessian, stored in Prob.USER.H is available.

Solver.Alg=1 gives quasi-Newton BFGS and Solver.Alg=2 gives DFP

The table gives the different possibilities

 Solver.Alg  NumDiff  AutoDiff isempty(USER.H)  Hessian computation
     0          0         0           0         Analytic Hessian
     0          0         0           1         Numerical differences H
     0         >0         0         any         Numerical differences g,H
     0         <0         0         any         Numerical differences H
     0        any         1         any         Automatic differentiation
     1          0         0         any         BFGS
     2          0         0         any         DFP
     1        ~=0         0         any         BFGS, numerical gradient g
     2        ~=0         0         any         DFP,  numerical gradient g
     1        any         1         any         BFGS, automatic diff gradient
     2        any         1         any         DFP,  automatic diff gradient

Problem

	min      f(x) = sum (i=1:M) f_i (x), i.e. f is partially separable

       s/t       x_L <=   x  <= x_U
                 b_L <= A x  <= b_U
                 c_L <= c(x) <= c_U.

Input Parameters

Use conAssign.m (or probAssign) to initialize the Prob structure in the TOMLAB Quick format.

Fields used in structure Prob:

PartSep field for partially separable function (psf) information:

   PartSep.pSepFunc Number of elements M in the psf
   PartSep.index    Index for the function to compute

   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
   ConsDiff Differentiation method for the constraint Jacobian
            0 = analytic, 1-5 different numerical methods
   SolverQP Name of the solver used for QP subproblems. If empty,
            the default solver is used. See GetSolver.m and tomSolve.m

   optParam Optimization parameters
   optParam.QN_InitMatrix  Initial Quasi-Newton matrix, if not empty,

 optParam structure in Prob. Fields used:
    IterPrint     Print short information each iteration
    eps_f         Relative tolerance in f(x)
    eps_g         Gradient convergence tolerance
    eps_x         Convergence tolerance in x
    eps_absf      Lower bound on function value
    size_x        Approximate size of optimal variable values 
    size_f        Approximate size of optimal function value 
    MaxIter       Maximal number of iterations
    wait          Pause after printout if true
    cTol          Constraint violation convergence tolerance
    bTol          Linear constraint violation convergence tolerance
    xTol          Variable violation tolerance
    PriLev        Print level
    IterPrint     Print short information each iteration
    QN_InitMatrix Initial Quasi-Newton matrix, if not empty,
                  Otherwise use identity matrix

The Prob structure could be created in the TOMLAB Quick format with calls to probAssign and mFiles, or in the Init File format, see Users Guide.

Extra Parameters

    VARARGIN: Extra user parameters passed to the computation of f(x) etc

Output Parameters

 Result      Structure with results from optimization
    x_k      Optimal point
    v_k      Lagrange multipliers 
    f_k      Function value at optimum
    g_k      Gradient vector at optimum
    x_0      Starting value vector
    B_k      The Quasi Newton matrix if Result.Solver.Alg > 0
    H_k      The Hessian matrix if Result.Solver.Alg == 0
    xState   Variable: Free==0; On lower == 1; On upper == 2; Fixed == 3;
    Iter     Number of iterations
    ExitFlag Flag giving exit status
    ExitTest Text string giving ExitFlag and Inform information
    Inform   Code telling type of convergence
             1   Iteration points are close.
             2   Projected gradient small.
             3   Iteration points are close and projected gradient small.
             4   Relative function value reduction low for LowIts iterations.
             5   Iteration points are close and relative function value
                 reduction low for LowIts iterations.
             6   Projected gradient small and relative function value
                 reduction low for LowIts iterations.
             7   Iteration points are close, projected gradient small and
                 relative function value reduction low for LowIts iterations.
             8   Too small trust region
           101   Max no of iterations reached.
           102   Function value below given estimate.
           103   Too large trust region, failure

 Printing (PriLev = Prob.PriLevOpt):

 PriLev: < 0: Totally silent,          0: Error messages, 
         1: Final result,              2: Each iteration, short output
         3: Each iteration, more info. 4: Info from QP solver. 5: Hessian

  slsSolve   Tfmin