Quadratic programming
|
Quadratic programming (QP) is a special type of mathematical optimization problem.
The quadratic programming problem can be formulated like this:
Assume x belongs to <math>\mathbb{R}^{n}<math> space. The n×n matrix E is positive semidefinite and h is any n×1 vector.
Minimize (with respect to x)
- <math>f(\mathbf{x}) = \frac{1}{2} \mathbf{x}^{\mathrm{T}} E\mathbf{x} + \mathbf{h}^{\mathrm{T}} \mathbf{x}<math>
(Here <math>\mathbf{v}^{\mathrm{T}}<math> indicates the matrix transpose of v.)
A quadratic programming problem has at least one of the following kinds of constraints:
- Ax ≤ b (inequality constraint)
- Cx = d (equality constraint)
If E is positive definite, then f(x) is a convex function and constraints are linear functions. We have from optimization theory that for point x to be an optimum point it is necessary and sufficient that x is a Karush-Kuhn-Tucker (KKT) point.
If there are only equality constraints, then the QP can be solved by a linear system. Otherwise, the most common method of solving a QP is an interior point method, such as LOQO (http://www.orfe.princeton.edu/~loqo). Active set methods are also commonly used.
External links
- A page about QP (http://www.numerical.rl.ac.uk/qp/qp.html)
- NEOS guide to QP (http://www-fp.mcs.anl.gov/otc/Guide/OptWeb/continuous/constrained/qprog)