| The Sequential Quadratic Programming Solver |
To solve a constrained nonlinear optimization problem, both the optimal primal and optimal dual variables have to be computed. Therefore, a good estimate of both the primal and dual variables is essential for fast convergence. An important feature of the SQP solver is that it computes a good estimate of the dual variables if an estimate of the primal variables is known.
The following example illustrates how a good initial starting point helps in securing the desired optimum:

Assume the starting point
= (30, - 30). The SAS code is as follows:
proc optmodel;
var x {1..2} <= 8 >= -10; /* variable bounds */
minimize obj =
exp(x[1])*(4*x[1]^2 + 2*x[2]^2 + 4*x[1]*x[2] + 2*x[2] + 1);
con consl:
x[1]*x[2] -x[1] - x[2] <= -1.5;
con cons2:
x[1]*x[2] >= -10;
x[1] = 30; x[2] = -30; /* starting point */
solve with sqp / printfreq = 5 ;
print x;
The solution (a local optimum) obtained by the SQP solver is displayed in Output 13.3.1.
Output 13.3.1: Solution Obtained with the Starting Point (30, - 30)You can find a solution with a smaller objective value by assuming a starting point of ( - 10, 1). Continue to submit the following code:
/* starting point */
x[1] = -10;
x[2] = 1;
solve with sqp / printfreq = 5 ;
print x;
quit;
The corresponding solution is displayed in Output 13.3.2.
Output 13.3.2: Solution Obtained with the Starting Point ( - 10,1)The OPTMODEL Procedure
The OPTMODEL Procedure
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
The preceding illustration demonstrates the importance of a good starting point in obtaining the optimal solution. The SQP solver ensures global convergence only to a local optimum. Therefore you need to have sufficient knowledge of your problem in order to be able to get a "good" estimate of the starting point.
Copyright © 2008 by SAS Institute Inc., Cary, NC, USA. All rights reserved.