DPLL Algorithm

The Davis-Putnam-Logemann-Loveland (DPPL) algorithm was proposed in the 1962. It is a divide-and-conquer backtrack-search type algorithm, it works as follows:

  • Run pure literal elimination and unit clause propagation.
  • If any clauses remain unsatisfied, we branch on any remaining variable :
    • Choose to make by adding to
    • Choose to make by adding to
  • We can achieve this by recursively calling the DPLL Algorithm until either:
    • all clauses are satisfied and
    • a conflict is detected in the partial assignment
Link to original

greedy sat algo

unit clause

A unit clause is any clause that contains only a single literal:

We have no choice in the assignment of unit clauses:

We can now eliminate these literals:

Furthermore, we can simplify the remaining clauses:

We may find this leads to further assignments, repeating the process, we find:

Link to original