16.01.2015 Views

GAMS — The Solver Manuals - Available Software

GAMS — The Solver Manuals - Available Software

GAMS — The Solver Manuals - Available Software

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

524 SNOPT<br />

2.2 Constraints and slack variables<br />

Problem (32.1) contains n variables in x. Let m be the number of components of f(x) and A L x combined.<br />

<strong>The</strong> upper and lower bounds on those terms define the general constraints of the problem. SNOPT converts<br />

the general constraints to equalities by introducing a set of slack variables s = (s 1 , s 2 , ..., s m ) T . For example,<br />

the linear constraint 5 ≤ 2x 1 + 3x 2 ≤ +∞ is replaced by 2x 1 + 3x 2 − s 1 = 0 together with the bounded slack<br />

5 ≤ s 1 ≤ +∞. Problem (32.1) can be written in the equivalent form<br />

minimize<br />

x,s<br />

subject to<br />

f 0 (x)<br />

( )<br />

f(x)<br />

− s = 0,<br />

A L x<br />

l ≤<br />

(<br />

)<br />

x<br />

≤ u.<br />

s<br />

where a maximization problem is cast into a minimization by multiplying the objective function by −1.<br />

<strong>The</strong> linear and nonlinear general constraints become equalities of the form f(x) − s N = 0 and A L x − s L = 0,<br />

where s L and s N are known as the linear and nonlinear slacks.<br />

2.3 Major iterations<br />

<strong>The</strong> basic structure of SNOPT’s solution algorithm involves major and minor iterations. <strong>The</strong> major iterations<br />

generate a sequence of iterates (x k ) that satisfy the linear constraints and converge to a point that satisfies the<br />

first-order conditions for optimality. At each iterate {x k } a QP subproblem is used to generate a search direction<br />

towards the next iterate {x k+1 }. <strong>The</strong> constraints of the subproblem are formed from the linear constraints<br />

A L x − s L = 0 and the nonlinear constraint linearization<br />

f(x k ) + f ′ (x k )(x − x k ) − s N = 0,<br />

where f ′ (x k ) denotes the Jacobian: a matrix whose rows are the first derivatives of f(x) evaluated at x k . <strong>The</strong><br />

QP constraints therefore comprise the m linear constraints<br />

f ′ (x k )x −s N = −f(x k ) + f ′ (x k )x k ,<br />

A L x −s L = 0,<br />

where x and s are bounded by l and u as before. If the m × n matrix A and m-vector b are defined as<br />

( )<br />

(<br />

)<br />

f ′ (x k )<br />

−f(x k ) + f ′ (x k )x k<br />

A =<br />

and b =<br />

,<br />

A L 0<br />

then the QP subproblem can be written as<br />

QP k<br />

minimize q(x, x k ) = gk T (x − x k ) + 1<br />

x,s<br />

2 (x − x k) T H k (x − x k )<br />

( )<br />

x<br />

subject to Ax − s = b, l ≤ ≤ u,<br />

s<br />

(32.2)<br />

where q(x, x k ) is a quadratic approximation to a modified Lagrangian function [6]. <strong>The</strong> matrix H k is a quasi-<br />

Newton approximation to the Hessian of the Lagrangian. A BFGS update is applied after each major iteration.<br />

If some of the variables enter the Lagrangian linearly the Hessian will have some zero rows and columns. If the<br />

nonlinear variables appear first, then only the leading n 1 rows and columns of the Hessian need be approximated,<br />

where n 1 is the number of nonlinear variables.<br />

2.4 Minor iterations<br />

Solving the QP subproblem is itself an iterative procedure. Here, the iterations of the QP solver SQOPT[8] form<br />

the minor iterations of the SQP method.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!