Computational Complexity Lecture 8 More of the Polynomial Hierarchy Oracle-based Definition 1
Recall PH { x | ∃ u 1 ∀ u 2 ∃ u 3 F( x ,u 1 ,u 2 ,u 3 )} { x | ∀ u 1 ∃ u 2 ∀ u 3 F( x ,u 1 ,u 2 ,u 3 )} Σ 3P Π 3P { x | ∃ u 1 ∀ u 2 F( x ,u 1 ,u 2 )} { x | ∀ u 1 ∃ u 2 F( x ,u 1 ,u 2 )} Σ 2P Π 2P coNP NP { x | ∃ u 1 F( x ,u 1 )} { x | ∀ u 1 F( x ,u 1 )} P { x |F( x )} 2
Oracle Machines 3
Oracle Machines Recall Oracle Machine 3
Oracle Machines Recall Oracle Machine Writes queries on query-tape, enters and leaves query state, and expects answer from oracle on the tape 3
Oracle Machines Recall Oracle Machine Writes queries on query-tape, enters and leaves query state, and expects answer from oracle on the tape Can run an oracle machine with any oracle 3
Oracle Machines Recall Oracle Machine Writes queries on query-tape, enters and leaves query state, and expects answer from oracle on the tape Can run an oracle machine with any oracle Oracle fully specified by the input-output behavior 3
Oracle Machines Recall Oracle Machine Writes queries on query-tape, enters and leaves query state, and expects answer from oracle on the tape Can run an oracle machine with any oracle Oracle fully specified by the input-output behavior Language oracle: answer is a single bit 3
Oracle Machines Recall Oracle Machine Writes queries on query-tape, enters and leaves query state, and expects answer from oracle on the tape Can run an oracle machine with any oracle Oracle fully specified by the input-output behavior Language oracle: answer is a single bit This is what we consider 3
Oracle Machines (ctd.) 4
Oracle Machines (ctd.) Non-deterministic oracle machine 4
Oracle Machines (ctd.) Non-deterministic oracle machine Can make non-deterministic choices and make oracle queries. (Note: oracles are deterministic!) 4
Oracle Machines (ctd.) Non-deterministic oracle machine Can make non-deterministic choices and make oracle queries. (Note: oracles are deterministic!) Said to accept if any thread reaches accept state 4
Oracle Machines (ctd.) Non-deterministic oracle machine Can make non-deterministic choices and make oracle queries. (Note: oracles are deterministic!) Said to accept if any thread reaches accept state Equivalently, a deterministic oracle machine which takes a (read-once) certificate w (the list of non- deterministic choices) 4
Oracle Machines (ctd.) Non-deterministic oracle machine Can make non-deterministic choices and make oracle queries. (Note: oracles are deterministic!) Said to accept if any thread reaches accept state Equivalently, a deterministic oracle machine which takes a (read-once) certificate w (the list of non- deterministic choices) Said to accept x if ∃ w such that (x,w) takes it to accepting state 4
Oracle Machines (ctd.) co- Non-deterministic oracle machine ^ Can make non-deterministic choices and make oracle queries. (Note: oracles are deterministic!) all threads reach Said to accept if any thread reaches accept state Equivalently, a deterministic oracle machine which takes a (read-once) certificate w (the list of non- deterministic choices) ∀ w Said to accept x if ∃ w such that (x,w) takes it to accepting state 5
NP A 6
NP A NP A : class of languages accepted by oracle NTMs with oracle for A in poly time 6
NP A NP A : class of languages accepted by oracle NTMs with oracle for A in poly time Certificate version: NP A has languages of the form 6
NP A NP A : class of languages accepted by oracle NTMs with oracle for A in poly time Certificate version: NP A has languages of the form B = {x | ∃ w M A (x,w) = 1} 6
NP A NP A : class of languages accepted by oracle NTMs with oracle for A in poly time Certificate version: NP A has languages of the form B = {x | ∃ w M A (x,w) = 1} where M deterministic oracle machine 6
NP A NP A : class of languages accepted by oracle NTMs with oracle for A in poly time Certificate version: NP A has languages of the form B = {x | ∃ w M A (x,w) = 1} where M deterministic oracle machine M A runs in poly(|x|) time and |w|=poly(|x|) 6
NP A NP A : class of languages accepted by oracle NTMs with oracle for A in poly time Certificate version: NP A has languages of the form B = {x | ∃ w M A (x,w) = 1} where M deterministic oracle machine M A runs in poly(|x|) time and |w|=poly(|x|) i.e., B = {x | ∃ w (x,w) ∈ L}, where L in P A 6
NP A NP A : class of languages accepted by oracle NTMs with oracle for A in poly time Certificate version: NP A has languages of the form B = {x | ∃ w M A (x,w) = 1} where M deterministic oracle machine M A runs in poly(|x|) time and |w|=poly(|x|) i.e., B = {x | ∃ w (x,w) ∈ L}, where L in P A co-(NP A ) = (co-NP) A 6
NP A NP A : class of languages accepted by oracle NTMs with oracle for A in poly time Certificate version: NP A has languages of the form B = {x | ∃ w M A (x,w) = 1} where M deterministic oracle machine M A runs in poly(|x|) time and |w|=poly(|x|) i.e., B = {x | ∃ w (x,w) ∈ L}, where L in P A co-(NP A ) = (co-NP) A languages of the form {x | ∀ w (x,w) ∈ L}, where L in P A 6
NP A 7
NP A If A in P, NP A = NP 7
NP A If A in P, NP A = NP Can “implement” the oracle as a subroutine 7
NP A If A in P, NP A = NP Can “implement” the oracle as a subroutine If A in NP? 7
NP A If A in P, NP A = NP Can “implement” the oracle as a subroutine If A in NP? Oracle for A is an oracle for A c too! NP A = NP A c 7
NP A If A in P, NP A = NP Can “implement” the oracle as a subroutine If A in NP? Oracle for A is an oracle for A c too! NP A = NP A c NP ∪ co-NP ⊆ NP SAT 7
NP A If A in P, NP A = NP Can “implement” the oracle as a subroutine If A in NP? Oracle for A is an oracle for A c too! NP A = NP A c NP ∪ co-NP ⊆ NP SAT Can we better characterize NP SAT ? 7
NP NP and relatives 8
NP NP and relatives NP SAT = ∪ A ∈ NP NP A 8
NP NP and relatives NP SAT = ∪ A ∈ NP NP A Oracle for A can be implemented using oracle for SAT in polynomial time (deterministically) 8
NP NP and relatives NP SAT = ∪ A ∈ NP NP A Oracle for A can be implemented using oracle for SAT in polynomial time (deterministically) NP SAT also called NP NP 8
NP NP and relatives NP SAT = ∪ A ∈ NP NP A Oracle for A can be implemented using oracle for SAT in polynomial time (deterministically) NP SAT also called NP NP NP Σ k = ∪ A ∈ Σ k NP A = NP Σ k SAT 8
NP NP and relatives NP SAT = ∪ A ∈ NP NP A Oracle for A can be implemented using oracle for SAT in polynomial time (deterministically) NP SAT also called NP NP NP Σ k = ∪ A ∈ Σ k NP A = NP Σ k SAT Will show NP Σ k = Σ k+1P (alt. definition for Σ k+1P ) 8
NP NP and relatives NP SAT = ∪ A ∈ NP NP A Oracle for A can be implemented using oracle for SAT in polynomial time (deterministically) NP SAT also called NP NP NP Σ k = ∪ A ∈ Σ k NP A = NP Σ k SAT Will show NP Σ k = Σ k+1P (alt. definition for Σ k+1P ) In particular, NP NP = Σ 2P 8
Σ k+1 = NP Σ k 9
Σ k+1 = NP Σ k Consider L ∈ Σ k+1P 9
Σ k+1 = NP Σ k Consider L ∈ Σ k+1P L = { x| ∃ w (x,w) ∈ L ’}, where L ’ in Π kP 9
Σ k+1 = NP Σ k Consider L ∈ Σ k+1P L = { x| ∃ w (x,w) ∈ L ’}, where L ’ in Π kP So L in NP L ’ where L ’ in Π kP 9
Σ k+1 = NP Σ k Consider L ∈ Σ k+1P L = { x| ∃ w (x,w) ∈ L ’}, where L ’ in Π kP So L in NP L ’ where L ’ in Π kP So NP L ’ ⊆ NP Π k = NP Σ k 9
Σ k+1 = NP Σ k Consider L ∈ Σ k+1P L = { x| ∃ w (x,w) ∈ L ’}, where L ’ in Π kP So L in NP L ’ where L ’ in Π kP So NP L ’ ⊆ NP Π k = NP Σ k So Σ k+1P ⊆ NP Σ k 9
Σ k+1 = NP Σ k Consider L ∈ Σ k+1P L = { x| ∃ w (x,w) ∈ L ’}, where L ’ in Π kP So L in NP L ’ where L ’ in Π kP So NP L ’ ⊆ NP Π k = NP Σ k So Σ k+1P ⊆ NP Σ k Now to show NP Σ k ⊆ Σ k+1P 9
NP Σ k ⊆ Σ k+1 10
NP Σ k ⊆ Σ k+1 To show NP A ⊆ Σ k+1P if A in Σ kP 10
NP Σ k ⊆ Σ k+1 To show NP A ⊆ Σ k+1P if A in Σ kP For B ∈ NP A poly-time TM M s.t. B = { x| ∃ w M A (x,w)=1} 10
NP Σ k ⊆ Σ k+1 To show NP A ⊆ Σ k+1P if A in Σ kP For B ∈ NP A poly-time TM M s.t. B = { x| ∃ w M A (x,w)=1} i.e., B = { x| ∃ w ∃ ans M <ans> (x,w)=1 and “ans correct”} 10
NP Σ k ⊆ Σ k+1 To show NP A ⊆ Σ k+1P if A in Σ kP For B ∈ NP A poly-time TM M s.t. B = { x| ∃ w M A (x,w)=1} i.e., B = { x| ∃ w ∃ ans M <ans> (x,w)=1 and “ans correct”} To show C = {(x,w,ans) | M <ans> (x,w)=1 and “ans correct”} in Σ k+1P 10
NP Σ k ⊆ Σ k+1 To show NP A ⊆ Σ k+1P if A in Σ kP For B ∈ NP A poly-time TM M s.t. B = { x| ∃ w M A (x,w)=1} i.e., B = { x| ∃ w ∃ ans M <ans> (x,w)=1 and “ans correct”} To show C = {(x,w,ans) | M <ans> (x,w)=1 and “ans correct”} in Σ k+1P Then B also in Σ k+1P 10
NP Σ k ⊆ Σ k+1 11
NP Σ k ⊆ Σ k+1 To show C = {(x,w,ans) | M <ans> (x,w)=1 and “ans correct”} in Σ k+1P 11
Recommend
More recommend