Verifying Correctness of a Benders or Column Generation Implementation
Use invariants — monotonic bounds, lower/upper bound consistency, and reduced-cost audits — to detect bugs in Benders decomposition and column generation implementations.
Tutorial
Master Bound Monotonicity
Decomposition methods like Benders decomposition and column generation are easy to implement almost correctly. A single sign error in a cut, a wrong dual handoff, or an omitted column can silently corrupt the algorithm while still producing plausible-looking output. To catch these bugs, we monitor invariants — properties any correct run must satisfy at every iteration.
The first invariant follows from the relaxation property. In Benders decomposition for a minimization problem, the master problem is a relaxation of the original. Each Benders cut removes master solutions whose recourse cost was underestimated, but never excludes the true optimum. Therefore, if denotes the master objective at iteration , we have
i.e., is monotonically non-decreasing. If any consecutive pair satisfies , the implementation is buggy — usually the cut at iteration was added with the wrong inequality direction, the wrong sign on the dual multipliers, or to the wrong row of the master.
For instance, an output trace flags a bug at iteration , because the master objective cannot lose value as cuts are appended.