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.