NP Completeness In this paper we give theorems that suggest, but do not imply, that these problems as well as many others, will remain intractable perpetually. Richard Karp, 1972.
Reductions At the heart of today s complexity theory L 1 L 2 if problem of deciding L 1 reduces to that of deciding L 2 if can decide L 2, can decide L 1
Turing and Many-One Turing reduction: Build a TM (oracle machine) M L1, s.t. using the oracle O L2 which decides L 2, M L1^O L2 decides L 1 M L1 may query O L2 many times (with different inputs) Many-One: M L1 can query O L2 only once, and must output what O L2 outputs L 1 L2 M L1 maps its input x to an input f(x) for O L2 x L 1 f(x) L 2 and x L 1 f(x) L 2
Polynomial-Time Reduction Many-one reduction, where M L1 runs in polynomial time L 1 p L 2 L 2 is computationally (almost) as hard or harder compared to L 1 almost : reduction overheads (reduction time, size blow-up) L 2 may be way harder
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
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
A simple NPC language TMSAT = { (M,z,1 n,1 t ) w, w <n, s.t. TM represented by M accepts (z,w) within time t } TMSAT is in NP: TMVAL = { (M,z,1 n,1 t,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. M L accepts (x,w) } and M L runs within time t, (where n,t are poly( x ) ), let the Karp reduction be f(x) = (M L,x,1 n,1 t ) Any natural NPC language?
Boolean Circuits Boolean valued wires, AND, OR, NOT, CONST gates, inputs, output, directed acyclic graph 0 1 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.
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
TM to Circuit Wires for configurations: a bundle 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 neighbouring bundles at the previous level (Part of) initial configuration, namely w, to be plugged in as input T configurations, T bundles each Circuit size = O(T 2 ) (x,w) x,q 0 w
TM to Circuit Reducing any NP language L to CKT-SAT TM for verifying membership in L, time-bound T, and input x A circuit which on input w outputs what the TM outputs on (x,w) within T steps Poly-time reduction CKT-SAT is NP-complete (x,w) x,q 0 w
Other NP-complete problems SAT and 3SAT SAT: Are all given clauses simultaneously satisfiable? (Conjunctive Normal Form) 3SAT: Each clause has at most 3 literals CLIQUE, INDEP-SET, VERTEX-COVER Hundreds (thousands?) more known Shown using already known ones: If L p L 1 and L 1 p L 2, then L p L 2
CKT-SAT p SAT Converting a circuit to a collection of clauses: For each wire (connected component), add a variable For each gate, add a clause involving variables for wires connected to the gate: x e.g. y AND z: (z x), (z y), ( z x y). i.e., ( z x), ( z y), (z x y). and x y OR z: (z x y), ( z x), ( z y).
SAT p 3SAT Previous reduction was to 3SAT, so 3SAT is NP-complete. And SAT is in NP. So SAT p 3SAT. More directly: (a b c d e) (a b x), ( x c d e) (a b x), ( x c y), ( y d e) Reduction needs 3SAT 2SAT is in fact in P! [Exercise] Reduction not parsimonious (can you make it? [Exercise])
3SAT p CLIQUE Clauses Graph vertices: each clause s satisfying assignments (for its variables) edges between consistent assignments m-clique iff all m clauses satisfiable (x y z) (w y) 1*0* 0*1* 1*1* (w x z) 3-Clique sat assignment 1*1* *110 11*0 ---- 1110 *000 *111 *100 *101 *110 *001 *010 00*0 11*1 10*0 01*1 01*0 10*1 11*0
INDEP-SET and VERTEX-COVER CLIQUE p INDEP-SET G has an m-clique iff G has an m-independent-set INDEP-SET p VERTEX-COVER G has an m-indep-set iff G has an (n-m)-vertex-cover
NP, P, co-np and NPC We say class X is closed under polynomial reductions if (L 1 p L 2 and L 2 in class X) implies L 1 in X e.g. P, NP are closed under polynomial reductions So is co-np (If X is closed, so is co-x. Why?) If any NPC language is in P, then NP = P NP conp If any NPC language is in co-np, then NP = co-np Note: X co-x X = co-x (Why?) NPC P conpc L is NP-complete iff L c is co-np-complete (Why?) co-np complete = co-(np-complete)
Today Polynomial-time reductions NP-completeness (using Karp reductions) Trivially, TMSAT Interestingly, CKT-SAT, SAT, 3SAT, CLIQUE, INDEP-SET, VERTEX-COVER If any NPC language in P, then P=NP
Next Time Ladner s Theorem: If NP P, then non-p, non-npc languages Time hierarchy theorems: More time, more power, strictly!