Theorem 5.3 — Complementary Slackness Theorem
ProvedVanderbeiLP.StrictComp.complementary_slacknesscomplementary-slacknessdualitylinear-programmingp2o-batch-b23ap2o-gran-per-chapterp2o-plan-bookp2o-v1
Consider the standard-form linear program "maximize subject to , " with , , , and its dual "minimize subject to , ". Suppose is primal feasible and is dual feasible, and let
- () be the corresponding primal slack variables,
- () be the corresponding dual slack variables.
Then and are optimal for their respective problems if and only if
The theorem turns optimality into a finite system of equations, which is how an optimal dual solution is recovered from an optimal primal one.
Preamble
import Mathlib import Definitions.Def_VanderbeiLP_StrictComp_PrimalDualPair open Matrix
Formal statement
namespace VanderbeiLP.StrictComp
/-- **Vanderbei, Theorem 5.3 (p. 63).** Complementary slackness: for primal feasible `x` with
slack `w = b - Ax` and dual feasible `y` with slack `z = Aᵀy - c`, `x` and `y` are optimal
for their respective problems iff `xⱼzⱼ = 0` for all `j` and `wᵢyᵢ = 0` for all `i` (5.7). -/
theorem complementary_slackness {m n : ℕ} (A : Matrix (Fin m) (Fin n) ℝ) (b : Fin m → ℝ)
(c : Fin n → ℝ) (x : Fin n → ℝ) (y : Fin m → ℝ)
(hx : PrimalFeasible A b x) (hy : DualFeasible A c y) :
(PrimalOptimal A b c x ∧ DualOptimal A b c y) ↔
((∀ j, x j * dualSlack A c y j = 0) ∧ ∀ i, primalSlack A b x i * y i = 0) := by sorry
end VanderbeiLP.StrictComp
Source
Vanderbei, Linear Programming: Foundations and Extensions, 4th ed., Springer 2014, p. 63, Theorem 5.3, Eq. (5.7) (PDF p. 79)
Human review
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.