Computational Complexity

Computational Complexity

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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    130 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us