Boolean satisfiability problem
The Boolean satisfiability problem (SAT) is a decision problem considered in complexity theory. An instance of the problem is defined by a Boolean expression written using only AND, OR, NOT, variables, and parentheses. The question is: given the expression, is there some assignment of TRUE and FALSE values to the variables that will make the entire expression true?SAT is NP-complete. In fact, it was the first known NP-complete problem, as proved by Stephen Cook in 1971. The problem remains NP-complete even if all expressions are written in conjunctive normal form with 3 variables per clause (3-CNF). This means the expression has the form:
- (x11 OR x12 OR x13) AND
- (x21 OR x22 OR x23) AND
- (x31 OR x32 OR x33) AND ...
| Table of contents |
|
2 Extensions of SAT 3 Proof of NP-completeness |
SAT seems to become easier if the formulas are restricted to those in disjunctive normal form, where each clause is an AND of variables (some with NOTs), and all the clauses are ORed together. This is because such a formula is satisfiable iff there is a clause which does not contain x and NOT x, and this can be checked in polynomial time. SAT also seems to be easier if the number of literals in a clause is limited to 2, in which case the problem is called 2SAT. Also this problem can be solved in polynomial time. Note that this does not prove that DNF-SAT and 2SAT are not NP-complete but only that if they are then the Complexity classes P and NP are equal.
The satisifiability problem seems to become more difficult if we allow quantifiers such as "for all" and "there exists" that bind the boolean variables. An example of such an expression would be:
We give here a sketch of the proof of NP-completeness. To prove that SAT is NP-complete we must show that
Next, consider an arbitrary problem X that is in NP. By definition, there must be an algorithm for checking certificates for YES answers to X in polynomial time. Given such an algorithm it is possible to construct a polynomial-time algorithm that, given the size of the certificate, constructs a boolean circuit that is polynomially large in the certificate size and decides whether its input is a binary encoding of a valid certificate or not. This circuit can then be transformed by another polynomial-time algorithm into an equivalent boolean formula that is still polynomially large in the certificate size. It then holds that this formula is satisfiable iff there is a valid certificate, which means that we have reduced the original problem to SAT.Restrictions of SAT
Extensions of SAT
In this case the the problem is called QBF (Quantified Boolean Formula) and it can be shown to be PSPACE-Complete. That is widely thought to be much harder than NP-complete, though that has not yet been proved.
Proof of NP-completeness
First, notice that it is easy to verify a YES answer: simply plug in a given set of variable values and see if they make the expression true. Therefore the problem is in NP.