Auditing a MIP Formulation for Correctness
Audit mixed-integer programming formulations by checking Big-M validity and tightness, using arc/plant capacity as the natural Big-M, verifying logical linearizations via truth tables, and preferring disaggregated activation constraints over aggregated ones for a stronger LP relaxation.
Tutorial
Validity and Tightness of a Big-M
After a MIP is written down, we audit it before sending it to the solver. The audit verifies that every feasible integer assignment encodes a feasible solution of the original problem, and vice versa. A formulation that is logically correct but uses loose Big-M values is still valid — it just has a weak LP relaxation and will solve slowly inside branch-and-cut.
For any constraint of the form
the audit asks two questions:
- Validity. Is at least as large as the maximum value can take when ? If is too small, legitimate solutions are cut off.
- Tightness. Is as small as possible while remaining valid? Any slack inflates the LP relaxation and weakens the cuts that branch-and-cut can generate.
For example, if every is valid, and is the tightest valid choice. Choosing is valid but extremely loose.