Lukas' Notes

Definition

Conflict-Driven Clause Learning

Let be a CNF formula and let be a trail of decisions and propagated literals. Conflict-driven clause learning (CDCL) extends the DPLL algorithm as follows: when unit propagation falsifies a clause, the solver resolves that conflict clause with the reason clauses recorded in to derive a learned clause satisfying

It adds to and backtracks directly to a decision level at which becomes unit. The conflict therefore becomes a reusable constraint rather than a failed branch that may be explored again.

Mechanism

CDCL repeats the cycle

CDCL cycle

  1. Decide: assign an unassigned variable and begin a new decision level.
  2. Propagate: apply unit propagation and record the reason clause for every forced literal.
  3. Analyse: when a clause becomes false, resolve it with reason clauses to obtain a learned clause.
  4. Backjump: undo assignments to the highest earlier level occurring in the learned clause; the clause then propagates immediately.

A conflict at decision level proves unsatisfiability. If every variable is assigned without conflict, the trail is a satisfying assignment.

Correctness

Every learned clause is obtained by resolution, so adding it preserves the models of :

CDCL remains complete, but avoids repeating conflicts. Restarts may discard the current trail while retaining learned clauses, so earlier conflicts continue to constrain later search.

Example

Propagation reaches a conflict

Consider

Suppose the solver decides

where parentheses indicate decision levels. Unit propagation gives

Thus is the conflict clause.

The implication graph records which clause forced each assignment. The highlighted assignment is the first unique implication point: every path from the current decision to the conflict passes through it.

Resolve first with the reason for , then with the reason for :

The learned first-UIP clause is therefore

Only belongs to the current level. CDCL backjumps from level to level , where makes unit and forces .

If resolution continues to the decisions, it instead yields

This clause states that , , and cannot hold simultaneously. Both clauses are consequences of ; modern solvers usually stop at the first UIP.