lecture5 - Notes on Complexity Theory Last updated Lecture...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
This is the end of the preview. Sign up to access the rest of the 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 NP-complete languages. Assuming P 6 = NP , any NP-complete language lies in NP \ P . Are there languages that are neither in P nor NP-complete? 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 NP-complete, 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 super-polynomial 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 Karp-reducible 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 NP-complete. Note: We did not cover the proof of Ladner’s theorem in class, but one is included here for completeness. Proof The high-level intuition behind the proof is that we construct A by taking an NP-complete language and “blowing holes” in it in such a way that the language is no longer NP-complete yet not in P either. The specific details are quite involved. Let M 1 ,... denote an enumeration of all polynomial-time 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 polynomial-time 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. 5-1 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 polynomial-time 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.

Page1 / 5

lecture5 - Notes on Complexity Theory Last updated Lecture...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online