Davis-Putnam algorithm
From Wikipedia, the free encyclopedia
The Davis-Putnam algorithm was developed by Martin Davis and Hilary Putnam for checking the satisfiability of propositional logic formulae in conjunctive normal form, i.e., sets of clauses. It is a form of resolution in which variables are iteratively chosen and removed by resolving every clause in which the variable is contained positively with any clause in which the variable is negated.
The algorithm works as follows:
- for every variable in the formula
- for every clause c containing the variable and every clause n containing the negation of the variable
- resolve c and n and add the resolvent to the formula
- remove all original clauses containing the variable or its negation
- for every clause c containing the variable and every clause n containing the negation of the variable
The name Davis–Putnam algorithm or DP algorithm is sometimes incorrectly used to refer to the related but distinct DPLL algorithm.
[edit] References
- Davis, Martin, Putnam, Hillary (1960). "A Computing Procedure for Quantification Theory". Journal of the ACM 7 (1): 201–215.
- Davis, Martin, Logemann, George, and Loveland, Donald (1962). "A Machine Program for Theorem Proving". Communications of the ACM 5 (7): 394–397.
- R. Dechter and I. Rish. Directional resolution: The Davis-Putnam procedure, revisited. In Proceedings of the Fourth International Conference on the Principles of Knowledge Representation and Reasoning (KR'94), pages 134–145, 1994.