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.