140 likes | 313 Views
Solving the Logic Satisfiability problem. Jesus De Loera. Overview. The Satisfiability Problem in its most general form is determining whether it is possible to satisfy a given set of logical constraints Could take many forms: Boolean expressions & logic circuits
E N D
Solving the Logic Satisfiability problem Jesus De Loera
Overview • The Satisfiability Problem in its most general form is determining whether it is possible to satisfy a given set of logical constraints • Could take many forms: • Boolean expressions & logic circuits • Many other applications as well (e.g. Artificial Intelligence) • Was the original NP-Complete Problem • Shown in 1970 by Stephen Cook
CNF-SAT Problem • CNF – Acronym for Conjunctive Normal Form which is a boolean expression given as a product of sums • Let us consider the example: (A B) (B ¬C) (A ¬B) • Could easily use an exhaustive search in the form of a truth table to solve this problem
Davis-Putnam Algorithm • Recursive Algorithm that creates a search tree by making assignments to the remaining variables at each stage of the algorithm • Performs better on average than an exhaustive search • Effectively prunes failed branches from the search tree
Davis-Putnam Algorithm Continued • Let’s apply the Davis-Putnam Algorithm to our example: (A B) (B ¬C) (A ¬B) Davis-Putnam Algorithm: procedure split(E) { if E has an empty clause, then return if E has no clauses, then exit with current partial assignment select next unassigned variable, xi in E split(E(xi=0)) split(E(xi=1)) }
Davis-Putnam Algorithm Continued Application to: (A B) (B ¬C) (A ¬B) (A B) (B ¬C) (A ¬B) A=0 A=1 B (B ¬C) ¬B B ¬C B=0 B=1 B=0 B=1 () () ¬C C=0 C=1 () = Failed Partial Assignment = Successful Partial Assignment ()
Davis-Putnam Algorithm Continued • Unfortunately in the worse case the Davis-Putnam Algorithm is still exponential • Currently there is no known solution that provides a worse case performance better than exponential
Other Applications? • So far we have seen instances of the Satisfiability problem to pure logic applications • However it is possible to apply to many other types of problems as well • In fact the problem of Satisfiability is a “central” problem and has limitless applications
Complexity Classes • Review • P – Problems which can be solved in polynomial time • NP – Problems which can be solved in non-deterministic polynomial time • All problems in the NP class can be reduced (in polynomial time) to problems which are said to be NP-Complete • P = NP??? – Could be shown if one could find a polynomial time solution for a NP-Complete problem such as the Satisfiability problem.
Complexity Classes Continued… Intractable Problems Class NP Can be visualized in the form of a set chart with problem hardness increasing radially Class P Increasing Hardness NP-Complete Problems exist at very edge of Class NP
Transformation Of Other NP Problems Into SAT Problems Provides a method to transform any problem in NP class into an instance of the Satisfiability problem. Therefore, we can say that the Satisfiability problem is NP-Complete. Instance of the Satisfiability Problem Any Problem In Complexity Class NP Transformation Some Examples Include: Hamiltonian cycle traveling salesperson, 3-graph coloring, partition problem, etc… Transform the problem to be solved from an optimization to a decision. This can be done in polynomial time Output is a series of “true” or “false”
Implications • Since the Satisfiability problem is NP-Complete, if a polynomial time solution for the Satisfiability problem was known then we could solve all the problems in the NP complexity class in polynomial time. • This would essentially collapse the complexity class NP into P