«GreetingLine» January 30, 2007 Chapter 10: Intractable Problems Summary Chapter 10 is divided into four major sections: “The Classes P and NP”, “An NP-Complete Problem”, “A Restricted Satisfiability Problem”, and “Additional NP-Complete Problems”. The main purpose of chapter 10 is to introduce the concept of intractability. Intractability is a problem that cannot be solved in polynomial time. This leads into the introduction of the Satisfiability (SAT) problem and the proof of Cook’s theorem. The proof of Cook’s theorem, that the SAT problem is NP-Complete, will enable reduction proofs to be used to show how other problems are also intractable. Section 1 begins by introducing two important classes of problems: P and NP. P is the class of problems solvable in polynomial time by deterministic Turing Machines (TM). Or more formally, P is the class of problems that, given a language L, there is a polynomial T(n) such that L = L(M) for a deterministic TM M of T(n). T(n) is the time complexity. T(n) is defined as the running time of a TM M whenever M is given an input of w (with length n) and halts after making at most T(n) moves (even if M does not accept). An example of an algorithm that belongs to P is Kruskal’s greedy algorithm to find a minimum-weight spanning tree of a graph. NP is the class of problems solvable in polynomial time by nondeterministic TMs. Or more formally, NP is the class of problems, given a language L, there is a nondeterministic TM M and a polynomial time complexity T(n) such that L = L(M) and when M is given an input of length n, there are no sequences of more than T(n) moves of M. The definitions of P and NP lead to one of the most studied and open-ended questions in mathematics (and computer science): Is P = NP? Polynomial-time reductions are the primary method used to demonstrate if a given problem is NP. A reduction is done by taking a known NP problem and making a reduction to the unknown problem in question. This concept, polynomial-time reductions, will also be used to demonstrate that a given problem is NP-Complete. NP-Complete is a problem that is NP, but not P. More formally, NP-Complete is the class of problems, given a language L, L is in NP and for every language L’ in NP there is a polynomial-time reduction of L’ to L. From this «GreetingLine» January 30, 2007 definition theorem 10.4 and theorem 10.5 can be derived. Theorem 10.4 states: If P1 is NP-Complete, P2 is in NP and there is a polynomial-time reduction of P1 to P2, then P2 is NP-Complete. Theorem 10.5 states: If some NP-Complete problem P is in P, then P = NP. The section ends with the definition of NP-Hard. NP-Hard is a problem where it can be shown for that problem that for every language L’ in NP, there is a polynomial-time reduction of L’ to L, but it cannot be shown that L is in NP. Section 2 focuses on the Satisfiability Problem (SAT) and the proof of Cook’s theorem. The SAT problem is determining whether or not a Boolean expression is satisfiable. Boolean expressions consist of four parts: Variables (with the value 1 or 0) Binary operators (logical AND, logical OR) Unary operator (logical negation) Parentheses (used for grouping) A truth assignment for a given Boolean expression, E, is where each variable in E is assigned either “True” or “False”. E(T) denotes the value of E for a given truth assignment T. When E(T) = 1 it is said that truth assignment T satisfies Boolean expression E or that truth assignment T makes Boolean expression E true. A problem is said to be satisfiable if there exists at least one truth assignment T that satisfies Boolean expression E. Cook’s theorem (theorem 10.9 in the book) states: SAT is NP-Complete. Proving Cook’s theorem is done in two steps. Step 1 is to demonstrate that SAT is NP. Step 2 is to show that every language in NP reduces to SAT. Step 1 is fairly straightforward since SAT is NP because a non-deterministic TM can: Guess a truth assignment Determine the value of the Boolean expression given the truth assignment Accept if the truth assignment evaluates the Boolean expression to be “True” In other words, a guess can be created and evaluated to either “True” or “False” in polynomial time (and there is a finite number of guesses). Step 2, on the other hand, is very complex. The major undertaking in step 2 is the construction of Boolean Expression EM,w. EM,w is the logical AND of four components: «GreetingLine» January 30, 2007 S (start right), N (more right), F (finish right), and U (unique symbol in each cell). Once the Boolean expression is constructed the rest of the proof just falls into place. Section 3 introduces two variations of the SAT problem: 3SAT and CSAT. The CSAT is introduced as an intermediate step so that it can be shown that SAT can be reduced to 3SAT. 3SAT is defined as a problem similar to SAT but the Boolean expressions have a regular form: the logical AND of “clauses”, where each clause is the OR of three variables (could be negated variables). Reducing SAT to 3SAT is done by converting each Boolean expression E into a new Boolean expression F in the form required by 3SAT. Hence, F is satisfiable iff E is satisfiable. In order to reach the objective of this section, there are three important concepts that need to be defined: Literal – a variable (could be negated) Clause – logical OR of one or more literals CNF – conjunctive normal form, logical AND of clauses Two Boolean expressions are equivalent if two Boolean expressions have the same result on any truth assignment to their variables. CSAT is a Boolean expression in CNF that is satisfiable. The reduction of SAT to CSAT is done in two parts. The first part is to “push” the negations through the Boolean expression so that variables are the only thing with negations. The second part is to write the Boolean expressions in CNF form. This leads to three theorems: theorem 10.12, theorem 10.13, and theorem 10.15. Theorem 10.12 states: Every Boolean expression E is equivalent to an expression F in which the only negation occurs in literals. Moreover, the length of F is linear in the number of symbols of E and F can be constructed from E in polynomial time. Theorem 10.13 states: CSAT is NPComplete. Theorem 10.15 states: 3SAT is NP-Complete (which is proven by reducing CSAT to 3SAT). Section 4 introduces the format for NP-Complete problem definitions and a list of known NP-Complete problems. Each NP-Complete problem definition contains four parts: Name Input Output Problem to which the reduction was made «GreetingLine» January 30, 2007 Known NP-Complete problems (and the theorems) are summarized in the table below: Problem: Independent Set (IS) Node-cover (NC) Directed HamiltonCircuit (DHC) Hamilton-Circuit (HC) Traveling Salesman Theorem: 10.18: IS problem is NP-Complete 10.20: NC problem is NP-Complete 10.21: DHC problem is NP-Complete 10.23: HC problem is NP-Complete 10.24: Traveling Salesman is NPComplete Resources: J. E. Hopcroft, (R. Motwani) and J. D. Ullman, Introduction to Automata Theory, Languages, and Computation. Addison Wesley, 2000. [Pages 425-482].