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: September 14, 2011 Lecture 5 Jonathan Katz 1 Diagonalization, Continued 1.1 Ladner’s Theorem We know that there exist NPcomplete languages. Assuming P 6 = NP , any NPcomplete language lies in NP \ P . Are there languages that are neither in P nor NPcomplete? Ladner’s theorem tells us that there are. As some intuition for Ladner’s theorem, take some language L ∈ NP \ P . Using padding, we will make L “easy enough” so that it can’t be NPcomplete, while keeping it “hard enough” so it is not in P either. Say the best algorithm for deciding L runs in time n log n for concreteness. (The same argument, though messier, works as long as the best algorithm deciding L requires superpolynomial time.) Define L = { ( x,y )  x ∈ L and  x  +  y  =  x  log log  x  } . If L ∈ P , then L would be decidable in time n O (log log n ) , a contradiction. On the other hand, L is decidable in time N log N where N is such that N log log N = n (the input length). We have N = n o (1) , and so L is decidable in time n o (log log( n o (1) ) . If L were Karpreducible to L , then L would be solvable in time n o (log n ) , a contradiction. The main challenge in making the above formal is that it is hard to pin down the “best” algorithm for deciding some language L , or that algorithm’s exact running time. Theorem 1 Assuming P 6 = NP , there exists a language A ∈ NP \ P which is not NPcomplete. Note: We did not cover the proof of Ladner’s theorem in class, but one is included here for completeness. Proof The highlevel intuition behind the proof is that we construct A by taking an NPcomplete language and “blowing holes” in it in such a way that the language is no longer NPcomplete yet not in P either. The specific details are quite involved. Let M 1 ,... denote an enumeration of all polynomialtime Turing machines with boolean output; formally, this can be achieved by considering an enumeration 1 of M × Z (where M is the set of Turing machines), and defining M i as follows: if the i th item in this enumeration is ( M,j ), then M i ( x ) runs M ( x ) for at most  x  j steps. We remark that M 1 ,... also gives an enumeration of languages in P (with languages appearing multiple times). In a similar way, let F 1 ,... denote an enumeration of polynomialtime Turing machines without the restriction of their output length. Note that this gives an enumeration of functions computable in polynomial time. Define language A as follows: A = { x  x ∈ SAT ∧ f (  x  ) is even } , 1 Since both M and Z are countable, it follows that M × Z is countable. 51 for some function f that remains to be defined. Note that as long as we ensure that f is computable in polynomial time, then A ∈ NP . We define f by a polynomialtime Turing machine M f that computes it. Let M SAT be a machine that decides SAT (not in polynomial time, of course...), and let f (0) = f (1) = 2. On input 1 n (with n > 1), M f proceeds in two stages, each lasting for exactly...
View
Full
Document
This note was uploaded on 01/13/2012 for the course CMSC 652 taught by Professor Staff during the Fall '08 term at Maryland.
 Fall '08
 staff

Click to edit the document details