Sequential quadratic programming
This article provides insufficient context for those unfamiliar with the subject.Learn how and when to remove this template message)(October 2009) (
Sequential quadratic programming (SQP) is an iterative method for constrained nonlinear optimization. SQP methods are used on mathematical problems for which the objective function and the constraints are twice continuously differentiable.
SQP methods solve a sequence of optimization subproblems, each of which optimizes a quadratic model of the objective subject to a linearization of the constraints. If the problem is unconstrained, then the method reduces to Newton's method for finding a point where the gradient of the objective vanishes. If the problem has only equality constraints, then the method is equivalent to applying Newton's method to the first-order optimality conditions, or Karush–Kuhn–Tucker conditions, of the problem.
Consider a nonlinear programming problem of the form:
The Lagrangian for this problem is
Note that the term in the expression above may be left out for the minimization problem, since it is constant.
- SciPy (de facto standard for scientific Python) has scipy.optimize.minimize(method=’SLSQP’) solver
- NLopt (C/C++ implementation, numerous interfaces including Python, R, MATLAB/Octave)
and proprietary/commercial ones
- KNITRO (C, C++, C#, Java, Python, Fortran)
- NPSOL (Fortran)
- SNOPT (Fortran)
- NLPQL (Fortran)
- SuanShu (Java)
- Bonnans, J. Frédéric; Gilbert, J. Charles; Lemaréchal, Claude; Sagastizábal, Claudia A. (2006). Numerical optimization: Theoretical and practical aspects. Universitext (Second revised ed. of translation of 1997 French ed.). Berlin: Springer-Verlag. pp. xiv+490. doi:10.1007/978-3-540-35447-5. ISBN 3-540-35445-X. MR 2265882.
- Jorge Nocedal and Stephen J. Wright (2006). Numerical Optimization. Springer. ISBN 0-387-30303-0.
|This applied mathematics-related article is a stub. You can help Wikipedia by expanding it.|