Lemma 3 — an optimal ordering can be reached with the same ordering on each machine
ProvedJohnsonFlowShop.ThreeStage.same_ordering_dominantLet be the processing times of items on machines 1, 2, 3. For every feasible three-machine schedule , in which the three machines may process the items in different orders, there is an ordering of the items such that the as-soon-as-possible schedule of (same order on all three machines) is feasible and
So in minimizing the total elapsed time on three machines one may restrict attention to a single common ordering, processed as early as possible. This reduction is what makes the comparison of orderings in Theorem 2 a comparison against all feasible schedules. It fails for four or more machines (p. 65).
Formalization Note The page's proof says "By Lemma 2"; the argument applies Lemma 1 (the same-sequence lemma, p. 61) to machines 1–2 and to machines 2–3, and Lemma 2 is the transitivity of relation (II). This is a misprint in the source. The "as soon as possible" part is the page 62 step that Lemma 3 inherits from the two-stage argument.
import Mathlib import Definitions.Def_JohnsonFlowShop_ThreeStage_IsFeasible import Definitions.Def_JohnsonFlowShop_Shared_makespan import Definitions.Def_JohnsonFlowShop_ThreeStage_asapSchedule
namespace JohnsonFlowShop.ThreeStage
/-- Lemma 3 (Johnson 1954, p. 65): an optimal ordering can be reached with the same ordering of
the items on all three machines. For positive processing times and every feasible three-machine
schedule `(s₁, s₂, s₃)` (whose machine orders may differ), there is an order `σ` whose
as-soon-as-possible schedule is feasible and has total elapsed time at most that of
`(s₁, s₂, s₃)`. -/
theorem same_ordering_dominant {n : ℕ} (A B C : Fin n → ℝ)
(hA : ∀ i, 0 < A i) (hB : ∀ i, 0 < B i) (hC : ∀ i, 0 < C i)
(s₁ s₂ s₃ : Fin n → ℝ) (hs : IsFeasible A B C s₁ s₂ s₃) :
∃ σ : Equiv.Perm (Fin n),
IsFeasible A B C (asapStart1 A B C σ) (asapStart2 A B C σ) (asapStart3 A B C σ) ∧
Shared.makespan C (asapStart3 A B C σ) ≤ Shared.makespan C s₃ := by sorry
end JohnsonFlowShop.ThreeStage
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.