
Computational Complexity Lecture 2 in which we talk about NP-completeness (reductions, reductions) 1 Recap 2 Recap Languages in NP are of the form: 2 Recap Languages in NP are of the form: L= { x | ∃w, |w| < poly(|x|) s.t. (x,w) ∈ L’ }, where L’ i s i n P 2 Recap Languages in NP are of the form: L= { x | ∃w, |w| < poly(|x|) s.t. (x,w) ∈ L’ }, where L’ i s i n P Today: Hardest problems in NP 2 Reductions 3 Reductions At the heart of today’s complexity theory 3 Reductions At the heart of today’s complexity theory L1 ! L2 if problem of deciding L1 “reduces to that of deciding” L2 3 Reductions At the heart of today’s complexity theory L1 ! L2 if problem of deciding L1 “reduces to that of deciding” L2 if can decide L2, can decide L1 3 Turing and Many-One 4 Turing and Many-One Turing re duction: 4 Turing and Many-One Turing re duction: Build a TM (oracle machine) ML1, s.t. using the oracle OL2 which decides L2, ML1^OL2 decides L1 4 Turing and Many-One Turing re duction: Build a TM (oracle machine) ML1, s.t. using the oracle OL2 which decides L2, ML1^OL2 decides L1 ML1 may query OL2 many times (with different inputs) 4 Turing and Many-One Turing re duction: Build a TM (oracle machine) ML1, s.t. using the oracle OL2 which decides L2, ML1^OL2 decides L1 ML1 may query OL2 many times (with different inputs) Many-One: 4 Turing and Many-One Turing re duction: Build a TM (oracle machine) ML1, s.t. using the oracle OL2 which decides L2, ML1^OL2 decides L1 ML1 may query OL2 many times (with different inputs) Many-One: ML1 can query OL2 only once, and must output what OL2 outputs 4 Turing and Many-One Turing re duction: Build a TM (oracle machine) ML1, s.t. using the oracle OL2 which decides L2, ML1^OL2 decides L1 ML1 may query OL2 many times (with different inputs) Many-One: ML1 can query OL2 only once, and must output what OL2 outputs ML1 maps its input x to an input f(x) for OL2 4 Turing and Many-One Turing re duction: Build a TM (oracle machine) ML1, s.t. using the oracle OL2 which decides L2, ML1^OL2 decides L1 ML1 may query OL2 many times (with different inputs) Many-One: ML1 can query OL2 only once, and must output what OL2 outputs ML1 maps its input x to an input f(x) for OL2 x ∈ L1 ⇒ f(x) ∈ L2 and x ! L1 ⇒ f(x) ! L2 4 Turing and Many-One Turing re duction: Build a TM (oracle machine) ML1, s.t. using the oracle OL2 which decides L2, ML1^OL2 decides L1 ML1 may query OL2 many times (with different inputs) Many-One: L1 ML1 can query OL2 only once, and L2 must output what OL2 outputs ML1 maps its input x to an input f(x) for OL2 x ∈ L1 ⇒ f(x) ∈ L2 and x ! L1 ⇒ f(x) ! L2 4 Turing and Many-One Turing re duction: Build a TM (oracle machine) ML1, s.t. using the oracle OL2 which decides L2, ML1^OL2 decides L1 ML1 may query OL2 many times (with different inputs) Many-One: L1 ML1 can query OL2 only once, and L2 must output what OL2 outputs ML1 maps its input x to an input f(x) for OL2 x ∈ L1 ⇒ f(x) ∈ L2 and x ! L1 ⇒ f(x) ! L2 4 Turing and Many-One Turing re duction: Build a TM (oracle machine) ML1, s.t. using the oracle OL2 which decides L2, ML1^OL2 decides L1 ML1 may query OL2 many times (with different inputs) Many-One: L1 ML1 can query OL2 only once, and L2 must output what OL2 outputs ML1 maps its input x to an input f(x) for OL2 x ∈ L1 ⇒ f(x) ∈ L2 and x ! L1 ⇒ f(x) ! L2 4 Polynomial-Time Reduction 5 Polynomial-Time Reduction Many-one reduction, where ML1 runs in polynomial time 5 Polynomial-Time Reduction Many-one reduction, where ML1 runs in polynomial time L1 !p L2 5 Polynomial-Time Reduction Many-one reduction, where ML1 runs in polynomial time L1 !p L2 L2 is “computationally (almost) as hard or harder” compared to L1 5 Polynomial-Time Reduction Many-one reduction, where ML1 runs in polynomial time L1 !p L2 L2 is “computationally (almost) as hard or harder” compared to L1 “almost”: reduction overheads (reduction time, size blow-up) 5 Polynomial-Time Reduction Many-one reduction, where ML1 runs in polynomial time L1 !p L2 L2 is “computationally (almost) as hard or harder” compared to L1 “almost”: reduction overheads (reduction time, size blow-up) L2 may be way harder 5 Cook, Karp, Levin 6 Cook, Karp, Levin Polynomial-time reduction 6 Cook, Karp, Levin Polynomial-time reduction Cook: Turing reduction 6 Cook, Karp, Levin Polynomial-time reduction Cook: Turing reduction Karp: Many-one reduction 6 Cook, Karp, Levin Polynomial-time reduction Cook: Turing reduction Karp: Many-one reduction We use this for !p 6 Cook, Karp, Levin Polynomial-time reduction Cook: Turing reduction Karp: Many-one reduction We use this for !p Between NP languages 6 Cook, Karp, Levin Polynomial-time reduction Cook: Turing reduction Karp: Many-one reduction We use this for !p Between NP languages Levin: Karp + witnesses easily transformed back and forth 6 Cook, Karp, Levin Polynomial-time reduction Cook: Turing reduction Karp: Many-one reduction We use this for !p Between NP languages Levin: Karp + witnesses easily transformed back and forth Parsimonious: Karp + number of witnesses doesn’t change 6 NP-completeness 7 NP-completeness A language L is NP-Hard if for all L’ in NP, L’ !p L 7 NP-completeness A language L is NP-Hard if for all L’ in NP, L’ !p L A language L is NP-Complete if it is NP-Hard and is in NP 7 NP-completeness A language L is NP-Hard if for all L’ in NP, L’ !p L A language L is NP-Complete if it is NP-Hard and is in NP To efficiently solve all problems in NP, you need to efficiently solve L and nothing more 7 A simple NPC language 8 A simple NPC language TMSAT = { (M,z,1n,1t) | ∃w, |w|<n, s.t. TM represented by M accepts (z,w) within time t } 8 A simple NPC language TMSAT = { (M,z,1n,1t) | ∃w, |w|<n, s.t. TM represented by M accepts (z,w) within time t } TMSAT is in NP: TMVAL = { (M,z,1n,1t,w) | |w|<n and TM represented by M accepts (z,w) within time t } is in P 8 A simple NPC language TMSAT = { (M,z,1n,1t) | ∃w, |w|<n, s.t. TM represented by M accepts (z,w) within time t } TMSAT is in NP: TMVAL = { (M,z,1n,1t,w) | |w|<n and TM represented by M accepts (z,w) within time t } is in P TMSAT is NP-hard: Given a language L in NP defined as L = { x | ∃w, |w|<n s.t. ML’ accepts (x,w) } and ML’ runs within time t, (where n,t are poly(|x|) ), let the Karp n t reduction be f(x) = (ML’ ,x,1 ,1 ) 8 A simple NPC language TMSAT = { (M,z,1n,1t) | ∃w, |w|<n, s.t. TM represented by M accepts (z,w) within time t } TMSAT is in NP: TMVAL = { (M,z,1n,1t,w) | |w|<n and TM represented by M accepts (z,w) within time t } is in P TMSAT is NP-hard: Given a language L in NP defined as L = { x | ∃w, |w|<n s.t. ML’ accepts (x,w) } and ML’ runs within time t, (where n,t are poly(|x|) ), let the Karp n t reduction be f(x) = (ML’ ,x,1 ,1 ) Any “natural” NPC language? 8 Boolean Circuits 0 1 9 Boolean Circuits 0 1 Boolean valued wires, AND, OR, NOT, CONST gates, inputs, output, directed acyclic graph 9 Boolean Circuits 0 1 Boolean valued wires, AND, OR, NOT, CONST gates, inputs, output, directed acyclic graph Circuit evaluation CKT-VAL: given (ckt,inputs) find ckt’s boolean output value 9 Boolean Circuits 0 1 Boolean valued wires, AND, OR, NOT, CONST gates, inputs, output, directed acyclic graph Circuit evaluation CKT-VAL: given (ckt,inputs) find ckt’s boolean output value Can be done very efficiently: CKT-VAL is in P 9 Boolean Circuits 0 1 Boolean valued wires, AND, OR, NOT, CONST gates, inputs, output, directed acyclic graph Circuit evaluation CKT-VAL: given (ckt,inputs) find ckt’s boolean output value Can be done very efficiently: CKT-VAL is in P CKT-SAT: given ckt, is there a “satisfying” input (output=1). In NP. 9 CKT-SAT is NP-Complete 10 CKT-SAT is NP-Complete Reduce any NP language L to CKT-SAT 10 CKT-SAT is NP-Complete Reduce any NP language L to CKT-SAT Let’s start from the TM for verifying membership in L, with time bound T 10 CKT-SAT is NP-Complete Reduce any NP language L to CKT-SAT Let’s start from the TM for verifying membership in L, with time bound T Build a circuit which on input w outputs what the TM outputs on (x,w), within T steps 10 CKT-SAT is NP-Complete Reduce any NP language L to CKT-SAT Let’s start from the TM for verifying membership in L, with time bound T Build a circuit which on input w outputs what the TM outputs on (x,w), within T steps This circuit is an instance of CKT-SAT 10 CKT-SAT is NP-Complete Reduce any NP language L to CKT-SAT Let’s start from the TM for verifying membership in L, with time bound T Build a circuit which on input w outputs what the TM outputs on (x,w), within T steps This circuit is an instance of CKT-SAT Ensure reduction is poly-time 10 TM to Circuit (x,w) 11 TM to Circuit Wires for configurations: a bundle (x,w) for each tape cell, encoding (content,state), where state is encoded in the cell with the head 11 TM to Circuit Wires for configurations: a bundle (x,w) for each tape cell, encoding (content,state), where state is encoded in the cell with the head 11 TM to Circuit Wires for configurations: a bundle (x,w) for each tape cell, encoding (content,state), where state is encoded in the cell with the head Circuitry for evolution: each bundle depends (as specified by the TM) on 3 neighboring bundles at the previous level 11 TM to Circuit Wires for configurations: a bundle (x,w) for each tape cell, encoding (content,state), where state is encoded in the cell with the head Circuitry for evolution: each bundle depends (as specified by the TM) on 3 neighboring bundles at the previous level (Part of) initial configuration, namely w, to be plugged in as input 11 TM to Circuit x,q0 Wires for configurations: a bundle (x,w) for each tape cell, encoding
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages130 Page
-
File Size-