Implication graph explained

In mathematical logic and graph theory, an implication graph is a skew-symmetric, directed graph composed of vertex set and directed edge set . Each vertex in represents the truth status of a Boolean literal, and each directed edge from vertex to vertex represents the material implication "If the literal is true then the literal is also true". Implication graphs were originally used for analyzing complex Boolean expressions.

Applications

A 2-satisfiability instance in conjunctive normal form can be transformed into an implication graph by replacing each of its disjunctions by a pair of implications. For example, the statement

(x0\lorx1)

can be rewritten as the pair

(\negx0x1),(\negx1x0)

. An instance is satisfiable if and only if no literal and its negation belong to the same strongly connected component of its implication graph; this characterization can be used to solve instances in linear time.[1]

In CDCL SAT-solvers, unit propagation can be naturally associated with an implication graph that captures all possible ways of deriving all implied literals from decision literals,[2] which is then used for clause learning.

References

  1. Aspvall, Bengt . . . A linear-time algorithm for testing the truth of certain quantified boolean formulas. Information Processing Letters . 8 . 3 . 121–123. 1979. 10.1016/0020-0190(79)90002-4.
  2. Paul Beame . Henry Kautz . Ashish Sabharwal . Understanding the Power of Clause Learning. IJCAI . 1194–1201. 2003.