MathLabs
TheoremProved

Duality of linear programs

Statement

For the primal program max⁡{cTx:Ax≤b,x≥0}\max\{c^{\mathsf{T}}x : Ax\le b, x\ge 0\}, define the dual program min⁡{bTy:ATy≥c,y≥0}\min\{b^{\mathsf{T}}y : A^{\mathsf{T}}y\ge c, y\ge 0\}. Then (weak duality) cTx≤bTyc^{\mathsf{T}}x\le b^{\mathsf{T}}y for every primal-feasible xx and dual-feasible yy, and (strong duality) if the primal has an optimal solution x∗x^{*}, the dual has an optimal solution y∗y^{*} with cTx∗=bTy∗c^{\mathsf{T}}x^{*}=b^{\mathsf{T}}y^{*}.

Why is it true?

Duality says the primal maximization and the dual minimization are two views of the same number: the dual variables yy act as prices on the resources, and weak duality says no feasible production plan can ever earn more than the value of the resources it uses at any valid pricing, while strong duality says that at the optimum, the best production plan and the cheapest valid pricing agree exactly.

Proof sketch

(Weak duality.) Let xx be any primal-feasible point (Ax≤bAx\le b, x≥0x\ge 0) and yy any dual-feasible point (ATy≥cA^{\mathsf{T}}y\ge c, y≥0y\ge 0). Since x≥0x\ge 0 and ATy≥cA^{\mathsf{T}}y\ge c, multiplying the inequality by the nonnegative vector xx preserves it: cTx≤(ATy)Tx=yTAxc^{\mathsf{T}}x\le \left(A^{\mathsf{T}}y\right)^{\mathsf{T}}x=y^{\mathsf{T}}Ax. Since y≥0y\ge 0 and Ax≤bAx\le b, the same argument gives yTAx≤yTb=bTyy^{\mathsf{T}}Ax\le y^{\mathsf{T}}b=b^{\mathsf{T}}y. Chaining the two inequalities, cTx≤bTyc^{\mathsf{T}}x\le b^{\mathsf{T}}y for every feasible pair, which is weak duality.

(Strong duality.) Run the simplex method on the primal until it terminates at an optimal basic feasible solution x∗x^{*} with optimal basis matrix BB, so that xB∗=B−1bx^{*}_B=B^{-1}b and the reduced costs of every non-basic variable are non-negative — this termination condition is equivalent to defining y∗T=cBTB−1y^{*\mathsf{T}}=c_B^{\mathsf{T}}B^{-1}, which one can check satisfies ATy∗≥cA^{\mathsf{T}}y^{*}\ge c and y∗≥0y^{*}\ge 0, i.e. y∗y^{*} is dual-feasible.

Substituting, the primal optimal value is cTx∗=cBTxB∗=cBTB−1b=y∗Tb=bTy∗c^{\mathsf{T}}x^{*}=c_B^{\mathsf{T}}x^{*}_B=c_B^{\mathsf{T}}B^{-1}b=y^{*\mathsf{T}}b=b^{\mathsf{T}}y^{*}. Combined with weak duality (cTx∗≤bTy∗c^{\mathsf{T}}x^{*}\le b^{\mathsf{T}}y^{*} always), equality here forces y∗y^{*} to be dual-optimal as well, so cTx∗=bTy∗c^{\mathsf{T}}x^{*}=b^{\mathsf{T}}y^{*}, proving strong duality.

Topics that use this theorem

Step-by-step proofs

No step-by-step proof yet for this theorem.

References

  1. George B. Dantzig (1963). Linear Programming and Extensions
  2. Dimitris Bertsimas, John N. Tsitsiklis (1997). Introduction to Linear Optimization