CglFlowCover
Lifted Simple Generalized Flow Cover cuts
Algorithm
Row Classification (determineOneRowType): Categories for cut generation:
- VARUB/VARLB: Two-variable rows defining variable bounds
- MIXUB/MIXEQ: Main candidates for flow cover generation
- NOBINUB: No binary → cannot generate flow cuts
VUB enables stronger cuts than simple bounds: $$x_{j} ≤ u_{j} vs x_{j} ≤ u_{j} d_{j} gives tighter when d_{j} = 0$$ Stored in vubs_[] array indexed by continuous variable.
Complexity: $O(nnz)$ per row for classification
References:
- Padberg, Van Roy, Wolsey (1985) - Valid inequalities for 0-1 programs
- Gu, Nemhauser, Savelsbergh (1999) - Lifted flow cover inequalities
See Also
- CglMixedIntegerRounding for general MIR approach
- CglKnapsackCover for simpler cover cuts
Source
Header file: `src/CglFlowCover/CglFlowCover.hpp`