CbcCutGenerator

Interface between Cbc and Cut Generation Library (CGL)

Interface between Cbc and Cut Generation Library (CGL) Copyright (C) 2003, IBM Corporation and others. All Rights Reserved. This code is licensed under the terms of the Eclipse Public License (EPL).

CbcCutGenerator: Wraps a CglCutGenerator with Cbc-specific controls. Manages when and how cut generation is called during B&C search.

Key control parameters:

Statistics tracked:

Supports adaptive behavior:

Algorithm

Root Node vs. Tree Strategy:

  • Root: Aggressive cuts (high whenCutGenerator_, all generators active)
  • Tree: Selective cuts (numberActiveCutsAtRoot_ guides which to keep)
  • Deep tree: Often disable most generators (computational cost) Trade-off: Stronger root LP → fewer nodes vs. more time per node.

Complexity: generateCuts: $O(generator_cost × frequency)$ Generator costs vary: Clique $O(n)$, Gomory $O(n²)$, Probing $O(n × LP_solve)$ Overall B&C impact: cuts reduce nodes but add per-node overhead

References:

  • Cornuejols, G. (2008). "Valid Inequalities for Mixed Integer Linear Programs". Math. Programming 112(1):3-44.

See Also

Source

Header file: `src/CbcCutGenerator.hpp`