| The Sequential Quadratic Programming Solver |
The following example illustrates how the HESCHECK option could be useful:
![]() |
Use the following SAS code to solve the problem:
proc optmodel;
var x {1..2} <= 8 >= 0 /* variable bounds */
init 0; /* starting point */
minimize obj = x[1]^2 + x[2]^2;
con cons:
x[1] + x[2]^2 >= 1;
solve with sqp / printfreq = 5;
print x;
quit;
When
= (0, 0) is chosen as the starting point, the SQP solver converges to (1, 0), as displayed in Output 15.2.1. It can be easily verified that (1, 0) is a stationary point and not an optimal solution.
| Problem Summary | |
|---|---|
| Objective Sense | Minimization |
| Objective Function | obj |
| Objective Type | Quadratic |
| Number of Variables | 2 |
| Bounded Above | 0 |
| Bounded Below | 0 |
| Bounded Below and Above | 2 |
| Free | 0 |
| Fixed | 0 |
| Number of Constraints | 1 |
| Linear LE (<=) | 0 |
| Linear EQ (=) | 0 |
| Linear GE (>=) | 0 |
| Linear Range | 0 |
| Nonlinear LE (<=) | 0 |
| Nonlinear EQ (=) | 0 |
| Nonlinear GE (>=) | 1 |
| Nonlinear Range | 0 |
To resolve this issue, you can use the HESCHECK option in the SOLVE statement as follows:
proc optmodel;
...
solve with sqp / printfreq = 1 hescheck;
...
quit;
For the same starting point
= (0, 0), the SQP solver now converges to the optimal solution,
, as displayed in Output 15.2.2.
proc optmodel;
var x {1..2} <= 8 >= 0 /* variable bounds */
init 0; /* starting point */
minimize obj = x[1]^2 + x[2]^2;
con cons:
x[1] + x[2]^2 >= 1;
solve with sqp / printfreq = 5 hescheck;
print x;
quit;
| Problem Summary | |
|---|---|
| Objective Sense | Minimization |
| Objective Function | obj |
| Objective Type | Quadratic |
| Number of Variables | 2 |
| Bounded Above | 0 |
| Bounded Below | 0 |
| Bounded Below and Above | 2 |
| Free | 0 |
| Fixed | 0 |
| Number of Constraints | 1 |
| Linear LE (<=) | 0 |
| Linear EQ (=) | 0 |
| Linear GE (>=) | 0 |
| Linear Range | 0 |
| Nonlinear LE (<=) | 0 |
| Nonlinear EQ (=) | 0 |
| Nonlinear GE (>=) | 1 |
| Nonlinear Range | 0 |
| Solution Summary | |
|---|---|
| Solver | SQP |
| Objective Function | obj |
| Solution Status | Optimal |
| Objective Value | 0.7499999978 |
| Iterations | 38 |
| Infeasibility | 2.2304958E-9 |
| Optimality Error | 2.3153477E-6 |
| Complementarity | 2.2304958E-9 |
Copyright © SAS Institute, Inc. All Rights Reserved.