Eq. (4.5) — the indicator of the n largest m_i(k) solves the seat-allocation LP
ProvedSeatInventory.Distinct.lp_top_n_optimalLet a leg have capacity and fare classes with fares and integer-valued request laws, and let for . Consider the linear program
Let be any set of pairs carrying largest values of . Then the 0–1 vector with for and otherwise is feasible, and its objective value is at least that of every feasible : the program has an integer optimal solution given by the largest .
This is the LP formulation of the single-leg seat-allocation problem with probabilistic demand surveyed in Sect. 4.2; its integrality is what lets a simple ranking replace a general LP solver.
Formalization Note When several pairs tie in value, the LP may also have fractional optimal solutions, so "the solution will be integer" is stated as: the indicator of every set of largest values is optimal. Fares are assumed nonnegative, which makes every ; with a negative value the inequality would not bind. Discrete reading of as in the demand model.
import Mathlib import Definitions.Def_SeatInventory_Distinct_DemandModel import Definitions.Def_SeatInventory_Distinct_MarginalAllocation
namespace SeatInventory.Distinct
/-- Belobaba 1987, Eq. (4.5) and the sentence after it, p. 90: for the linear program
maximising `Σ_i Σ_k X_ik · m_i(k)` over `(i, k) ∈ classes × {1, …, n}` subject to
`Σ X_ik ≤ n`, `0 ≤ X_ik ≤ 1`, the 0–1 vector equal to `1` exactly on a set `T` of `n` largest
values `m_i(k)` is feasible and optimal. Fares are nonnegative. -/
theorem lp_top_n_optimal {ι : Type*} [Fintype ι] [DecidableEq ι] (f : ι → ℝ)
(hf : ∀ i, 0 ≤ f i) (d : ι → PMF ℕ) (n : ℕ) (T : Finset (ι × ℕ))
(hT : IsTopN (marginalRevenue f d) (seatPairs ι n) T n) :
IsLPFeasible (seatPairs ι n) n (fun a => if a ∈ T then (1 : ℝ) else 0) ∧
∀ X : ι × ℕ → ℝ, IsLPFeasible (seatPairs ι n) n X →
lpObjective (marginalRevenue f d) (seatPairs ι n) X ≤
lpObjective (marginalRevenue f d) (seatPairs ι n)
(fun a => if a ∈ T then (1 : ℝ) else 0) := by sorry
end SeatInventory.Distinct
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.