This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: Notes on Complexity Theory Last updated: October, 2011 Lecture 3 Jonathan Katz 1 Natural NP-Complete Problems Last time we saw a “non-natural” NP-complete language. Other important NP-complete lan- guages are SAT (satisfiable boolean formulae in conjunctive normal form) and 3- SAT (satisfiable boolean formulae in conjunctive normal form, where each clause contains at most 3 literals). Besides being more “natural” languages, they are useful for proving NP-completeness of other languages. Theorem 1 (Cook-Levin Theorem) SAT is NP-complete. Proof We give a detailed proof sketch. (Note that the proof we give here is different from the one in ; in particular, we do not rely on the existence of oblivious Turing machines.) Let L be a language in NP . This means there is a Turing machine M and a polynomial p such that (1) M ( x,w ) runs in time p ( | x | ), and (2) x ∈ L if and only if there exists a w for which M ( x,w ) = 1. Note that we may assume that any such w , if it exists, has length exactly p ( | x | )-| x |- 1. We also assume for simplicity (and without loss of generality) that M has a single tape (that is used as both its input tape and work tape) and a binary alphabet. A simple observation is that we can represent the computation of M ( x,w ) (where | x | = n ) by a tableau of p ( n ) + 1 rows, each O ( p ( n )) bits long. Each row corresponds to the entire configuration of M at some step during its computation; there are p ( n ) + 1 rows since M always halts after at most p ( n ) steps. (If M ( x,w ) halts before p ( n ) steps, the last rows may be duplicates of each other. Or we may assume that M ( x,w ) always runs for exactly p ( | x | ) steps.) Each row can be represented using O ( p ( n )) bits since a configuration contains (1) the contents of M ’s tape (which can be stored in O ( p ( n )) bits — recall that space ( p ( n )) ⊆ time ( p ( n ))); (2) the location of M ’s head on its tape (which can be stored in p ( n ) bits 1 ); and (3) the value of M ’s state (which requires O (1) bits). Moreover, given a tableau that is claimed to correspond to an accepting computation of M ( x,w ), it is possible to verify this via a series of “local” checks. (This notion will become more clear below.) Specifically, letting p = p ( n ) and assuming we are given some tableau, do: 1. Check that the first row is formed correctly. (The tape should contain x , followed by a space and then a sequence of bits representing w ; M ’s head should be in the left-most position; and M should be in its start state.) 2. Number the rows from 0 to T , and recall that these correspond to time steps of M ’s execution. Let t i,j denote the value written in cell j at time i . Then for i = 1 ,...,T and j = 1 ,...,T , check that t i,j has the correct value given t i- 1 ,j- 1 ,t i- 1 ,j , and t i- 1 ,j +1 and the value of the state at time i- 1. We also need to check that the state at time i takes the correct value; this is discussed in detail below.this is discussed in detail below....
View Full Document
- Fall '08
- Computational complexity theory, Jonathan Katz, CNF formula