Disjunctive Programming X: Solving the Cut-Generating LP on the Simplex TableauTextbook
Motivation
Chapter 8 established an exact correspondence between lift-and-project cuts and simple disjunctive
cuts, but its practical payoff is what this chapter develops: the cut-generating LP (CGLP)_k
never needs to be formulated or solved on its own. Every pivot of (CGLP)_k can instead be
mimicked directly on the much smaller simplex tableau of the original LP relaxation — replacing a
large auxiliary linear program with bookkeeping on a tableau the solver already has. This chapter
works out that correspondence at the level of individual pivots: which tableau pivot improves the
resulting cut, and by how much, answered entirely in terms of ordinary tableau coefficients and
two closed-form evaluation functions.
Setting
S:={1,…,m+p} and N:={m+p+1,…,m+p+n} index the surplus and structural variables of (LP)
respectively — giving a direct correspondence between (LP)'s own variables and the surplus
variables of Ãx≥b̃. For a basic solution with nonbasic set J (row set M1∪M2 from Chapter 8),
Â:=Ã_J is the resulting nonsingular submatrix, and row k of the tableau reads x_k+ Σ_{j∈J}ā_{kj}s_j=ā_{k0}. Adding γ times row i to row k gives the composite row (9.10),
x_k+γx_i+Σ_{j∈J}(ā_{kj}+γā_{ij})s_j=ā_{k0}+γā_{i0}, from which a new simple disjunctive cut can
be read off whenever 0<ā_{k0}+γā_{i0}<1.
Formalization targets
Theorem 9.3 (goal) — the most-improving pivot column
The pivot column in row i most improving the cut from row k is indexed by l*∈J minimizing
f⁺(γ_l) (if ā_{kl}ā_{il}<0) or f⁻(γ_l) (if ā_{kl}ā_{il}>0), over all l∈J with
-ā_{k0}/ā_{i0}<γ_l<(1-ā_{k0})/ā_{i0}, γ_l:=-ā_{kl}/ā_{il}.
The chain of results building toward it
Lemma 9.1 (the tableau coefficients' closed form, eq. (9.4)-(9.5)) and Theorem 9.2 (the reduced
costs of the CGLP columns u_i,v_i in terms of tableau coefficients, eq. (9.6)) are the two
milestones the goal's own machinery is built from. Proposition 9.4, a bridge to Chapters 10-11's
general split disjunctions, is included as a genuine milestone despite its payoff lying mostly
outside this chapter.
Significance
The results themselves. This chapter is what makes lift-and-project cuts practical: instead
of solving an (m+p+n)-row auxiliary LP from scratch for every candidate cut, a single pivot on
the (LP)'s own tableau — guided by reduced costs that are themselves closed-form functions of
tableau entries — identifies whether an improving cut exists and which one it is. Theorem 9.3's
evaluation functions f⁺,f⁻ are exactly the tool a cutting-plane implementation would compute at
every candidate pivot.
Formalizing it. No object in this mission exists on the platform prior to it or in Mathlib.
This mission restates 08-cut-correspondence's (CGLP)_k apparatus locally, per the series
convention and BRIEF.md's explicit instruction, and extends it with this chapter's own
generalization to an arbitrary tableau row (needed since Lemma 9.1/Theorem 9.2 concern every basic
variable's row, not only the disjunction row k).
Difficulty
Lemma 9.1's book proof is a four-case block-matrix verification (structural/surplus,
basic/nonbasic); this mission instead states its content as the identity it is actually for —
that the closed-form coefficients express every row's slack as an affine function of the nonbasic
rows' slacks, for every point x — which follows tautologically from x=Â⁻¹b̂+Â⁻¹s_J's own
definition once stated this way, without needing to reconstruct the block-matrix case analysis.
Theorem 9.2's difficulty is that "reduced cost" is not already available as a formalized LP
concept in this mission's apparatus; rather than build a generic LP reduced-cost theory, this
mission follows the book's own derivation directly — explicitly constructing the pivoted-out
extension of a basic solution (eq. (9.7)-(9.9)) and asserting that its objective value decomposes
with r_{u_i},r_{v_i} as coefficients, which is genuine, non-circular content matching the proof's
own final step ("we can then read the reduced costs... as the coefficients").
Formalization scope
This chapter makes the row/variable identification of Chapters 6-8 fully explicit (N directly
indexes the structural variables), but no theorem's own displayed formula in this chunk needs
that correspondence beyond what SurplusM's row-general treatment (this chunk's own
generalization of 08-cut-correspondence's Surplus) already provides — see
MODERATION_NOTES.md for why the S/N/B/R/P/Q block structure is proof machinery, not
part of the stated content, throughout.
Theorem 9.3's range condition on γ_l, truncated in BRIEF.md's own excerpt, was completed by
reading the PDF directly (confirmed identical to the range derived earlier in the same section):
-ā_{k0}/ā_{i0}<γ_l<(1-ā_{k0})/ā_{i0}.
Selected references
- E. Balas, Disjunctive Programming, Springer, 2018. DOI: 10.1007/978-3-030-00148-3, Chapter 9.
- E. Balas, M. Perregaard, A precise correspondence between lift-and-project cuts, simple disjunctive cuts, and mixed integer Gomory cuts for 0-1 programming, Mathematical Programming B 94 (2003), 221–245 (cited in the text as [33], the origin of the tableau-pivoting procedure this chapter derives Lemma 9.1 and Theorem 9.2 from).