Theorem 3.2 — the simplex method terminates under the lexicographic rule
OpenVanderbeiLP.Simplex.lexicographic_rule_terminatesConsider a standard-form linear program with data , , , and a feasible dictionary . Run the simplex method from with any entering candidate at each step and the leaving variable selected by the lexicographic rule: the right-hand sides of are perturbed by symbols all data, and the leaving variable minimizes the perturbed ratio. Then the method terminates: there is no infinite sequence
of such pivots.
The lexicographic rule is the first of the two anticycling rules of the chapter; it fixes the leaving variable and leaves the entering variable free.
Formalization Note The symbolic perturbation is encoded by the coefficient vectors compared lexicographically (see the definition PivotRules); no real value of is fixed. The -th symbol is attached in to the row of its -th basic variable in increasing index order.
import Mathlib import Definitions.Def_VanderbeiLP_Simplex_Dictionary import Definitions.Def_VanderbeiLP_Simplex_PivotRules
namespace VanderbeiLP.Simplex
/-- **Vanderbei, Theorem 3.2 (p. 30).** The simplex method always terminates provided that the
leaving variable is selected by the lexicographic rule: started at any feasible dictionary
`D₀`, there is no infinite sequence of pivots in which each entering variable is an entering
candidate and each leaving variable is chosen by the lexicographic rule of the run started
at `D₀`. -/
theorem lexicographic_rule_terminates {m n : ℕ} (A : Matrix (Fin m) (Fin n) ℝ)
(b : Fin m → ℝ) (c : Fin n → ℝ) (D₀ : Dictionary A) (h0 : D₀.IsFeasible b) :
¬ ∃ D : ℕ → Dictionary A, D 0 = D₀ ∧
∀ t, Dictionary.IsLexPivot D₀ b c (D t) (D (t + 1)) := by sorry
end VanderbeiLP.Simplex
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.