Quadratic programming (QP) is the process of solving a special type of mathematical optimization problem—specifically, a (linearly constrained) quadratic optimization problem, that is, the problem of optimizing (minimizing or maximizing) a quadratic function of several variables subject to linear constraints on these variables. Quadratic programming is a particular type of nonlinear programming.
The quadratic programming problem with n variables and m constraints can be formulated as follows. Given:
the objective of quadratic programming is to find an n-dimensional vector x, that will
where xT denotes the vector transpose of . The notation Ax ≤ b means that every entry of the vector Ax is less than or equal to the corresponding entry of the vector b.
A related programming problem, quadratically constrained quadratic programming, can be posed by adding quadratic constraints on the variables.
For general problems a variety of methods are commonly used, including
In the case in which Q is positive definite, the problem is a special case of the more general field of convex optimization.