# The Sequential Quadratic Programming (SQP) Solver

The sequential quadratic programming (SQP) solver is a component of the OPTMODEL procedure that can be used for solving general nonlinear programming (NLP) problems.

The general form of nonlinear optimization problems can be mathematically described as

where : is the nonlinear objective function, : is the set of general nonlinear equality and inequality constraints, and and are lower and upper bounds, respectively, on the decision variable .

The SQP solver uses an augmented Lagrangian penalty function as a merit function. The solver solves a QP subproblem to obtain a search direction, which is an approximation of the Newton direction to the minimum of the merit function. A line-search algorithm is then implemented along the resulting search direction. In the SQP solver, the line search is terminated when Wolfe-Powell conditions are satisfied, thereby ensuring global convergence to a local minimum.

The SQP solver has the following features that make it different from the other NLP solvers in the SAS/OR® suite:

• handles general nonlinear constraints
• exploits the sparsity (of the Jacobian) in NLP problems. This enables the SQP solver to solve fairly large NLP problems
• finds the negative curvature of the NLP problem at a stationary point of the problem, thereby giving the solver a better chance of moving away from a stationary point
• tries to find a good estimate of Lagrange multipliers based on a good starting point for the decision variables

In general, the SQP solver approaches the solution of a NLP problem through a sequence of points that might not be in the feasible region. Therefore, it requires that all the functions in the NLP problem be defined in the entire space, not just at the points that satisfy the constraints.

Another requirement is that all the functions in NLP problems be smooth. However, you do not need to supply the derivatives of these functions because the SQP solver calculates them, if needed.