The.Algorithm.Design.Manual.Springer-Verlag.1998

The.Algorithm.Design.Manual.Springer-Verlag.1998 The.Algorithm.Design.Manual.Springer-Verlag.1998

18.04.2013 Views

Satisfiability Next: The Theory of NP-Completeness Up: Intractable Problems and Approximations Previous: Clique and Independent Set Satisfiability To prove the hardness of different problems using reductions, we need to start with a single problem that is absolutely, certifiably, undeniably hard. The mother of all NP-complete problems is a logic problem named satisfiability: Input: A set of Boolean variables V and a set of clauses C over V. Output: Does there exist a satisfying truth assignment for C, i.e. a way to set the variables either true or false so that each clause contains at least one true literal? This can be made clearer with two examples. Suppose that over the Boolean variables . We use to denote the complement of the variable , so we would get credit for satisfying a particular clause containing if , or a clause containing if . Therefore, satisfying a particular set of clauses involves making a series of n true or false decisions, trying to find the right truth assignment to satisfy all of them. This example set of clauses can be satisfied by simply setting or . However, consider the set of clauses . There can be no satisfying assignment because must be in order to satisfy the third clause, which means that must be to satisfy the second clause, which then leaves the first clause unsatisfiable. Although you try, and you try, and you try and you try, you can't get no satisfaction. ● The Theory of NP-Completeness ● 3-Satisfiability Algorithms file:///E|/BOOK/BOOK3/NODE110.HTM (1 of 2) [19/1/2003 1:29:48]

Satisfiability Mon Jun 2 23:33:50 EDT 1997 file:///E|/BOOK/BOOK3/NODE110.HTM (2 of 2) [19/1/2003 1:29:48]

Satisfiability<br />

Next: <strong>The</strong> <strong>The</strong>ory of NP-Completeness Up: Intractable Problems and Approximations Previous: Clique<br />

and Independent Set<br />

Satisfiability<br />

To prove the hardness of different problems using reductions, we need to start with a single problem that<br />

is absolutely, certifiably, undeniably hard. <strong>The</strong> mother of all NP-complete problems is a logic problem<br />

named satisfiability:<br />

Input: A set of Boolean variables V and a set of clauses C over V.<br />

Output: Does there exist a satisfying truth assignment for C, i.e. a way to set the variables either<br />

true or false so that each clause contains at least one true literal? This can be made clearer with two<br />

examples. Suppose that over the Boolean variables . We use to<br />

denote the complement of the variable , so we would get credit for satisfying a particular clause<br />

containing if , or a clause containing if . <strong>The</strong>refore, satisfying a particular set of<br />

clauses involves making a series of n true or false decisions, trying to find the right truth assignment to<br />

satisfy all of them.<br />

This example set of clauses can be satisfied by simply setting or<br />

. However, consider the set of clauses . <strong>The</strong>re can be no<br />

satisfying assignment because must be in order to satisfy the third clause, which means that<br />

must be to satisfy the second clause, which then leaves the first clause unsatisfiable. Although you<br />

try, and you try, and you try and you try, you can't get no satisfaction.<br />

● <strong>The</strong> <strong>The</strong>ory of NP-Completeness<br />

● 3-Satisfiability<br />

<strong>Algorithm</strong>s<br />

file:///E|/BOOK/BOOK3/NODE110.HTM (1 of 2) [19/1/2003 1:29:48]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!