Reductions Complexity ©D.Moshkovitz
Motivation Reductions are our main tool for comparison between problems. Complexity ©D.Moshkovitz
Introduction Objectives: To formalize the notion of “reductions”. Overview: Karp reductions HAMPATH p HAMCYCLE Closeness under reductions Cook reductions Completeness Complexity ©D.Moshkovitz
Reductions – Concept p IF problem A can be efficiently translated to problem B… A B p THEN B is at least as hard as A. Complexity ©D.Moshkovitz
Reductions – Formal Definition SIP 250 Reductions – Formal Definition I.e – there exists a polynomial time TM which halts with f(w) on its tape when given input w. Definition: Language A is polynomial time reducible to language B if… a polynomial time computable function f:** exists, where for every w, wA f(w)B Denote Ap B f is referred to as a polynomial-time reduction of A to B. Complexity ©D.Moshkovitz
Reductions and Algorithms * B * - B A f * - A * Complexity ©D.Moshkovitz
Reductions and Algorithms polynomial time algorithm for A f polynomial time algorithm for B f(w)B? f(w) wA? w Complexity ©D.Moshkovitz
How to Reduce? Construct f. Show f is polynomial time computable. Prove f is a reduction, i.e show: If wA then f(w)B If f(w)B then wA Complexity ©D.Moshkovitz
Terminology The type of reductions we’ve just described is also called: Polynomial-time mapping reduction Polynomial-time many-one reduction Polynomial-time Karp reduction We’ll always refer to such reductions unless otherwise specified. Complexity ©D.Moshkovitz
Example To demonstrate a reduction, we’ll revisit the example we gave in the introduction. We’ll rephrase and formalize the seating and tour problems And demonstrate a slightly different reduction between them. Complexity ©D.Moshkovitz
Hamiltonian Path Instance: a directed graph G=(V,E) and two vertices stV. Problem: To decide if there exists a path from s to t, which goes through each node once. In the version presented in the introduction we asked for some path, without specifying the start and end vertices. Complexity ©D.Moshkovitz
Hamiltonian Cycle Instance: a directed graph G=(V,E). Problem: To decide if there exists a simple cycle in the graph which goes through each node exactly once. Complexity ©D.Moshkovitz
HAMPATH p HAMCYCLE f( <G=(V,E),s,t> ) = <G’=(V{u},E{(u,s),(t,u)})> f( <G=(V,E),s,t> ) = <G’=(V{u},E{(u,s),(t,u)})> f( <G=(V,E),s,t> ) = <G’=(V{u},E{(u,s),(t,u)})> f( <G=(V,E),s,t> ) = <G’=(V{u},E{(u,s),(t,u)})> s t n s t p Complexity ©D.Moshkovitz
Correctness (Completeness) If there exists a Hamiltonian path (v0=s,v1,…,vn=t) in the original graph, then (u,v0=s,v1,…,vn=t,u) is a Hamiltonian cycle in the new graph. Complexity ©D.Moshkovitz
Correctness (Soundness) (u,s) and (t,u) must be in any Hamiltonian cycle in the constructed graph, thus removing u yields a Hamiltonian path from s to t. Complexity ©D.Moshkovitz
How to Reduce? Construct f. Show f is polynomial time computable. Prove f is a reduction, i.e show: If wHAMPATH then f(w)HAMCYCLE If f(w)HAMCYCLE then wHAMPATH easy to verify Complexity ©D.Moshkovitz
Closeness Under Reductions Definition: A complexity class C is closed under reductions if, whenever L is reducible to L’ and L’C, then L is also in C. C L’ L Complexity ©D.Moshkovitz
Observation Theorem: P, NP, PSPACE and EXPTIME are closed under polynomial-time Karp reductions. Proof: Filling in the exact details is left to the reader. (See sketch) Complexity ©D.Moshkovitz
Other Types of Reductions Cook Reduction: Use an efficient “black box” (procedure) that decides B, to construct a polynomial-time machine which decides A. polynomial time algorithm for B polynomial time algorithm for A Complexity ©D.Moshkovitz
Cook reduction of HAMCYCLE to HAMPATH. For each edge (u,v)E, if there’s a Hamiltonian path from v to u in the graph where (u,v) is removed, output ‘YES’, exit Output ‘NO’ Make sure it’s efficient! HAMPATH oracle Complexity ©D.Moshkovitz
How do Cook and Karp Reductions Differ? Cook reductions allow us to call the procedure many times (instead of 1). When Karp reducing, we must output the answer of the procedure. Complexity ©D.Moshkovitz
On the Relation Between Cook and Karp Reductions Observation: Karp reductions are special cases of Cook reductions. Complexity ©D.Moshkovitz
Food for Thought… Which complexity classes are closed under Cook reductions? Complexity ©D.Moshkovitz
Completeness Definition: Let C be a complexity class and let L be a language. We say L is C-Complete if: L is in C For every language AC, A is reducible to L. Complexity ©D.Moshkovitz
C-Complete Languages hardness C-Complete C Complexity ©D.Moshkovitz
Observation Theorem: If two classes C and C’ are both closed under reductions (of some specific type) and there is a language L which is complete for both C and C’, then C=C’. Proof: W.l.o.g we’ll only show CC’. All languages in C are reducible to L. Since C’ is closed under reductions, it follows that CC’. Complexity ©D.Moshkovitz
Corollary ? If any NP-Complete problem is in P, then P=NP. Complexity ©D.Moshkovitz
Summary In this lecture we’ve introduced many types of reductions: Cook/Karp reductions Polynomial-time reductions We’ve defined the notion of completeness And seen how it can help us prove equality of complexity classes. Nevertheless, we are still not convinced complete languages even exist. Complexity ©D.Moshkovitz