Major iterations

The basic structure of SNOPT involves major and minor iterations.  The major iterations generate a sequence of iterates (xk) that satisfy the linear constraints and converge to a point that satisfies the first-order conditions for optimality.  At each iterate a QP subproblem is used to generate a search direction towards the next iterate (xk-1).  The constraints of the subproblem are formed from the linear constraints Gx - sL= 0  and the nonlinear constraint linearization

F(xk) + F '(xk)(x - xk) - sN = 0,

where F'(xk) denotes the Jacobian matrix, whose rows are the first derivatives of F(x) evaluated at xk.  The QP constraints therefore comprise the m linear constraints

F'(xk)x - sN

    = - F(xk) + F '(xk) xk

Gx  -sL

    = 0

where x and s are bounded above and below by u and l as before.  If the mxn matrix A and m-vector b are defined as

 

 

 

 

then the QP subproblem can be written as

where q(x) is a quadratic approximation to a modified Lagrangian function (refer to [6]).  The linear constraint matrix A above is input to SNOPT by means of the arguments a(*), ha(*) and ka(*) (see Section Subroutine snopt). Access to this matrix allows the user to specify the pattern of nonzero elements in F'(x) and G,  and to identify any nonzero elements that remain constant throughout the minimization.