Preprocessing Pipeline (IPPMode)

Other Algorithms 1 implementation

Controls integer preprocessing before B&C: - Probing: fix variables by logical implication - Clique detection: identify mutual exclusion constraints - Coefficient strengthening: tighten constraint coefficients - SOS extraction: identify special ordered sets from structure

Implementations

Cbc

  • CbcParameters.hpp - Central parameter collection for Cbc algorithm control Copyright (C) 2007, Lou Hafer, IBM Corporation and others. This code is licensed under the terms of the Eclipse Public License (EPL).

CbcParameters: Master class holding all Cbc solver parameters. Used by cbc-generic to configure and control the MIP solver.

Major subsystems configured:

  • Cut generators: Gomory, MIR, Probing, Clique, FlowCover, etc.
  • Heuristics: FPump, RINS, RENS, DINS, Diving variants, VND, etc.
  • Search strategy: Node selection, preprocessing, orbital branching
  • Limits: Time, nodes, gap tolerance, solution count

Includes instances of CGL cut generators and Cbc heuristics. Links to ClpParameters for underlying LP solver control.

Key methods:

  • init(): Initialize with strategy preset
  • setModel(): Associate with CbcModel
  • Various getters/setters for each parameter category

Strategy presets provide common configurations:

  • Default aggressive cutting at root
  • Balanced cut/heuristic emphasis
  • Heuristic-focused for quick solutions

References

  • Margot, F. (2002). "Pruning by isomorphism in branch-and-cut". Math. Programming 94:71-90. (Orbital branching foundations)