Lably
Skip to content

Conflict-driven clause learning

SAT solving algorithm

  • 6 min read
  • 6 chapters

Related on Lably

Through Computer science, Logical disjunction and Logical conjunction

Conflict-driven clause learning was proposed by Marques-Silva and Karem A. Sakallah (1996, 1999) and Bayardo and Schrag (1997).

Background

Boolean satisfiability problem

The satisfiability problem consists in finding a satisfying assignment for a given formula in conjunctive normal form (CNF).

An example of such a formula is:

( (not A) or (not C) ) and (B or C),

or, using a common notation:

(¬A∨¬C)∧(B∨C)

where A,B,C are Boolean variables, ¬A, ¬C, B, and C are literals, and ¬A∨¬C and B∨C are clauses.

A satisfying assignment for this formula is e.g.:

A=False,B=False,C=True

since it makes the first clause true (since ¬A is true) as well as the second one (since C is true).

This example uses three variables (A, B, C), and there are two possible assignments (True and False) for each of them. So one has 23=8 possibilities. In this small example, one can use brute-force search to try all possible assignments and check if they satisfy the formula. But in realistic applications with millions of variables and clauses brute force search is impractical. The responsibility of a SAT solver is to find a satisfying assignment efficiently and quickly by applying different heuristics for complex CNF formulas.

Unit clause rule (unit propagation)

If a clause has all but one of its literals or variables evaluated at False, then the free literal must be True in order for the clause to be True. For example, if the below unsatisfied clause is evaluated with A=False and B=False we must have C=True in order for the clause (A∨B∨C) to be true.

The iterated application of the unit clause rule is referred to as unit propagation or Boolean constraint propagation (BCP).

Resolution

Consider two clauses (A∨B∨C) and (¬C∨D∨¬E). The clause (A∨B∨D∨¬E), obtained by merging the two clauses and removing both ¬C and C, is called the resolvent of the two clauses.

The resolvent is equisatisfiable with its premises (that is, the resolvent is satisfiable if and only if both its premises are satisfiable).

Sign in to keep reading

5 more chapters are free with a Lably account.

More in Computing and communication