TOMLAB OPTIMIZATION ENVIRONMENT: qpSolve

   

qpSolve

Purpose

For solving quadratic programming problems.

Syntax

   Result = qpSolve(Prob)

Description

Active set strategy for Quadratic Programming.

Problem

        min   0.5 * x' * F * x + c' * x.  x in R^n
         x
        s/t   x_L <=   x  <= x_U
              b_L <= A x  <= b_U

 Equality equations: Set b_L==b_U
 Fixed    variables: Set x_L==x_U

Input Parameters

Fields in Prob:

   QP.F:   The matrix F in 0.5 x' F x
   QP.c:   The vector c in c'x
   A:      The linear constraint matrix 
   b_L:    The lower bounds for the linear constraints
   b_U:    The upper bounds for the linear constraints
   x_L:    Lower bounds on x
   x_U:    Upper bounds on x
           b_L, b_U, x_L, x_U must either be empty or of full length
   x_0:    Starting point x
PriLevOpt  Print level: 0 None, 1 Final result, 2 Each iteration, short
           3 More information each iteration

 optParam struct:
   wait:   Pause at each iteration if wait is true ( = 1)
   MaxIter max([500,3*n,optParam.MaxIter]);  Maximal number of iterations
   epsRank Rank tolerance
   xTol    Tolerance to judge that x are close
   bTol    Linear feasibility tolerance
   
 -----------------------------------------------------------------------

Hot basis (Warm start) variables:

 Prob.QP.UseHot   If > 0, Uses a warm start basis, either from file or from 
                  the structure Prob
 Prob.QP.HotFile  If nonempty, a warm start basis are read from this file

If Prob.QP.HotFile is empty, read warm start basis from structure Prob:

 x = Prob.QP.Hot.x; B = Prob.QP.Hot.B; 
 Q = Prob.QP.Hot.Q; R = Prob.QP.Hot.R; E = Prob.QP.Hot.E;

 Prob.QP.HotFreq  If > 0, a warm start basis are saved, either on a file

HotP1xxx or HotP2xxx, where HotP1 is used when solving PhaseI problems, and HotP2 when solving PhaseII problems. xxx is a number.

 Prob.QP.HotN     The number of warm start basis files, xxx=mod(Freq,HotN),
                    where xxx is a number from 0 to HotN-1

 -----------------------------------------------------------------------

Output Parameters

Structure Result. Fields used:

   Iter     Number of iterations
   ExitFlag Exit flag 
            == 0  => OK
            == 1  => Maximal number of iterations reached. No bfs found. 
            == 2  => Unbounded feasible region.
            == 3  => Rank problems
            == 4  => No feasible point found with lpSolve
            == 10 => Errors in input parameters
   ExitTest Text string giving ExitFlag and Inform information
   Inform   If ExitFlag > 0, Inform=ExitFlag, otherwise Inform show type
            of convergence:
            0 = Unconstrained solution
            1 = lambda >= 0. 
            2 = lambda >= 0. No 2nd order Lagrange mult. estimate available
            3 = lambda and 2nd order Lagrange mult. positive, problem is
                not negative definite.
            4 = Negative definite problem. 2nd order Lagrange mult. positive, 
                but releasing variables leads to same working set.
   x_k      Solution
   v_k      Lagrange parameters; lower/upper bounds, then linear constraints 
   p_dx     Search steps in x
   alphaV   Step lengths for each search step
   f_k      Function value 0.5*x'*F*x+c'*x
   g_k      Gradient F*x+c
   H_k      Hessian F (constant)
   Solver   qpSolve
   x_0      Starting point x_0
   xState   State variable: Free==0; On lower == 1; On upper == 2; Fixed == 3;

  qld   slsSolve