Introduction to Polynomial Time Hierarchy: EXAMPLE PROBLEMS: CYCLE = { (G, k) | There is a simple cycle in graph G with at least K edges} NOCYCLE = { (G, k) | There is no simple cycle in graph G with at least K edges} EXACTCYCLE = { (G, k) | the largest simple cycle in graph G is of lenghth k} SURVIVE = { (G, k, j) | No matter what k edges you delete from graph G, the resulting graph has a simple cycle with at least j edges} EXACTSURVIVE = { (G, k, j) | No matter what k edges you delete from graph G, the largest simple cycle of the resulting graph has j edges} Defintions: Sigma_1^p = NP is the class of languages L for which there is polynomial p and Turing machine M such that L ={ x| THEREEXISTS y M accepts (X, y) in time p(x) } note the time is poly in x but not y Pi_1^p = coNP is the class of languages L for which there is polynomial p and Turing machine M such that L ={ x| FORALL y M accepts (X, y) in time p(x) } note the time is poly in x but not y Defintion of Polynomial time hierarchy: Sigma_i^p is the class of languages L for which there is polynomial p and Turing machine M such that L ={ x| THEREEXISTS y_1 FORALL y_2 THEREEXISTS y_3 FORALL y_4 .... y_i M accepts (X, y) in time p(x) } note the time is poly in x but not y Pi_i^p is the class of languages L for which there is polynomial p and Turing machine M such that L ={ x| FORALL y_1 THEREEXISTS y_2 FORALL y_3 .... y_i M accepts (X, y) in time p(x) } note the time is poly in x but not y CYCLE is in Sigma_1^p NOCYCLE is in Pi_1^p EXACTCYCLE is in Sigma_2^p EXACTCYCLE is in Pi_2^p SURVIVE is in Pi_2^p EXACTSURVIVE is in Pi_2^p PH = Union_k Sigma_k^p = Union_k Pi_k^p Theorem: PH contained in PSPACE NP-Complete Problem/Language: {(M, I, 1^|I|^k): M is an NP machine that accepts I within |I|^k steps} Proof of completeness: In NP is clear To prove hardness, consider an arbitrary language L in NP, and M an NP machine that accepts it that runs in time n^k Question: What is wrong with mimicking the proof above to show that the following language is complete for NP intersect coNP Language: {(M,N, I, 1^|I|^k): M is an NP machine that accepts I within |I|^k steps, and N is an coNP machine that accepts I within |I|^k steps, and M and N accept the same language} Answer: In NP intersect coNP is not clear Theorem: Cook 1972: SAT is NP-complete Different proof: Show that the problem of determining if there are inputs to a circuit that that makes a particular output 1 is NP-complete Proof: Consider a particular NP Turing machine and its computation history. Show how to simulate the computation with a circuit {Phi| Phi is a theorem of number theory} is undecidable {(Phi, 1^n) | Phi is a theorem of number theory that has a proof of length < n } is NP-complete It seems hard to believe that if there is a short proof, then one can always find it quickly, which is what P=NP would imply. BAKER GILL SOLOVAY Definition: If M is a machine and L a language, then M^L is a machine that is equipped with an oracle to determine membership in L in linear time. If C is the complexity class of languages decidable by a certain type of machine, then C^L is the class of languages decided by these machines when they are equipped with an oracle for L. Theorem: There exists oracles A and B such that P^A=NP^A and P^B not = NP^B Before proof: Why care? This rules out solving the P =? NP question with nonrelativizing techniques. Essentially simulation and diagonalization are always nonrelativizing. Proof: A = EXPTIME complete language. NP^A is still in EXPTIME Let U_B = { 1^n | there is a string x of length n in B} Obviously U_B is in NP^B for all B. We construct a B in stages so that U_B is not in P^B. The ith stage guarantees that the ith Turing machine doesn't decide a particular n is less than 2^n/10 steps. Consider stage i. Let n be a large enough string such that we haven't fixed membership in B for strings of length n. Answer M_i queries consistently for inputs of size < n. Always answer no for queries of M_i to strings of length n. If M_i accepts then make no strings of length n in B. If M_i rejects, then make some unqueried string of length n to be in B. Hence, M_i is wrong if it ran for less than 2^n steps. Note that it is important that every machine essentially appears infinitely often on this list. Ladner's Theorem: If P not equal NP, then there exists languages in NP that are neither in P nor NP-complete