LP Relaxation Inside CP-SAT
How CP-SAT uses an LP relaxation alongside CDCL to compute dual bounds for pruning search nodes, linearizes logical constraints to feed the LP, and applies reduced-cost fixing to permanently eliminate variable assignments in a subtree.
Tutorial
How CP-SAT Uses an LP Relaxation
CP-SAT combines CDCL with constraint propagation, but for problems with an objective function it also maintains a linear programming (LP) relaxation of (a portion of) the integer model. The LP relaxation drops integrality on the integer variables and is solved at search nodes to produce strong dual bounds.
For a minimization problem with optimal LP value and optimal integer value , the LP value is a valid lower bound on the integer optimum:
CP-SAT uses this bound in two ways:
- Node pruning. If the incumbent (best feasible integer solution found so far) has objective , then any node whose LP relaxation satisfies cannot contain a strictly improving integer solution and is discarded. When the integer objective is integer-valued, the bound tightens to
- Search guidance. The fractional LP optimum suggests which variables are most informative to branch on next.
Example. At a node, the LP relaxation gives and the incumbent is . Since , no integer solution in this subtree can strictly improve on , so CP-SAT prunes the node.