Specifically, one seeks to optimize (minimize or maximize) a multivariate quadratic function subject to linear constraints on the variables.
"Programming" in this context refers to a formal procedure for solving mathematical problems.
This usage dates to the 1940s and is not specifically tied to the more recent notion of "computer programming."
As a special case when Q is symmetric positive-definite, the cost function reduces to least squares: where Q = RTR follows from the Cholesky decomposition of Q and c = −RT d. Conversely, any such constrained least squares program can be equivalently framed as a quadratic programming problem, even for a generic non-square R matrix.
Quadratic programming is particularly simple when Q is positive definite and there are only equality constraints; specifically, the solution process is linear.
By using Lagrange multipliers and seeking the extremum of the Lagrangian, it may be readily shown that the solution to the equality constrained problem is given by the linear system where λ is a set of Lagrange multipliers which come out of the solution alongside x.
The easiest means of approaching this system is direct solution (for example, LU factorization), which for small problems is very practical.
Finding such Z entails finding the null space of E, which is more or less simple depending on the structure of E. Substituting into the quadratic form gives an unconstrained minimization problem: the solution of which is given by: Under certain conditions on Q, the reduced matrix ZTQZ will be positive definite.
On a system with n variables and L input bits, their algorithm requires O(L n) iterations, each of which can be done using O(L n3) arithmetic operations, for a total runtime complexity of O(L2 n4).
[12] Applications of MIQP include water resources[13] and the construction of index funds.