The big picture is: a quadratic programming problem can be reduced to be a linear programming problem.
Here is how:
(1) KTT conditions
For any non-linear programming:
max: f(x), s.t: g(x) <=0
It has been proved that it needs to meet Karush–Kuhn–Tucker (KKT) conditions provided that some regularity conditions are satisfied
how it is being proved? it is something like using Lagrange multiplier: f(x) – Lamda * ( g(x) + slack ) then do some smart deductions, we can get those conditions.
One example of KTT is:
Lamda >=0
Delta f(x) – Lamda Delta g(x) = 0 ( Delta is derivertive)
Lamda g(x) = 0
g(x) <=0
(2) Quadratic Programming
Quadratic programming belongs to non-linear programming, so KKT conditions applies here.
The general quadratic programming can be expressed as:
Max: cx + c^T D x
s.t: Ax <= b, x>=0
by applying (1)’s KTT, in short we can get some linear questions with some constraints.
Then we introduce +A in the linear equations, then try to minimize sum(A) with those constraints,
now the problem become a linear programming issue (with minimized target to be 0) .
References:
https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions
http://www.comrite.com/wp/linear-programming-in-plain-english/