Proposition 8.7.2 — Karush–Kuhn–Tucker conditions for convex programs in equational form
ProvedMatousekLP.SmallestBall.kkt_conditionsLet be a real matrix with columns , let , and let be convex and differentiable with continuous partial derivatives. Consider the convex program
A feasible solution is optimal if and only if there is a vector such that for all ,
Here at . The components of are the Karush–Kuhn–Tucker multipliers.
The KKT conditions are the optimality certificate for convex programs; in this section they are the step that turns the smallest-ball program (8.15) into the geometry of Lemma 8.7.3.
Formalization Note is the derivative of at applied to the th unit vector, and is the th entry of the row vector . "Continuous partial derivatives" is ContDiff ℝ 1 f. "Otherwise" is read as , which for a feasible means .
import Mathlib import Definitions.Def_MatousekLP_SmallestBall_Basic open Matrix
namespace MatousekLP.SmallestBall
/-- Proposition 8.7.2 (Karush–Kuhn–Tucker conditions; Matoušek & Gärtner, p. 187). Consider the
convex program "minimize `f(x)` subject to `Ax = b`, `x ≥ 0`" with `f` convex and differentiable
with continuous partial derivatives. A feasible `x*` is optimal iff there is `ỹ ∈ ℝ^m` such that
for all `j`, `∇f(x*)ⱼ + ỹᵀaⱼ = 0` if `x*ⱼ > 0` and `≥ 0` otherwise, where `aⱼ` is the `j`th column
of `A`. Here `∇f(x*)ⱼ = fderiv ℝ f x* (eⱼ)` and `ỹᵀaⱼ = ∑ᵢ ỹᵢ Aᵢⱼ = (ỹ ᵥ* A) j`. -/
theorem kkt_conditions {m n : ℕ} (A : Matrix (Fin m) (Fin n) ℝ) (b : Fin m → ℝ)
(f : (Fin n → ℝ) → ℝ) (hfc : ConvexOn ℝ Set.univ f) (hf : ContDiff ℝ 1 f)
(xstar : Fin n → ℝ) (hxstar : MatousekLP.BFS.IsFeasible A b xstar) :
IsOptimal f A b xstar ↔
∃ y : Fin m → ℝ, ∀ j : Fin n,
(0 < xstar j → fderiv ℝ f xstar (Pi.single j 1) + (y ᵥ* A) j = 0) ∧
(¬ 0 < xstar j → 0 ≤ fderiv ℝ f xstar (Pi.single j 1) + (y ᵥ* A) j) := by sorry
end MatousekLP.SmallestBall
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.