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

Source

Header file: `src/CglFlowCover/CglFlowCover.hpp`