Transcript Lecture 20
NP-complete and NP-hard problems • Transitivity of polynomial-time many-one reductions • Definition of complexity class NP – Nondeterministic computation – Problems that can be verified • The P = NP Question – Concept of NP-hard and NP-complete problems Π1 ≤p Π2 & Π2 ≤p Π3 Π1 ≤p Π3 • • • • Let R1 be the reduction used to prove Π1 ≤p Π2 Let R2 be the reduction used to prove Π2 ≤p Π3 Let x be an input to Π1 Define R3(x) to be R2(R1(x)) Answer-preserving argument • • • Because R1 is a reduction between Π1 and Π2, we know that R1(x) is a yes input instance of Π2 iff x is a yes input instance of Π1 Because R2 is a reduction between Π2 and Π3, we know that R2(R1(x)) is a yes input instance of Π3 iff R1(x) is a yes input instance of Π2 Applying transitivity of iff, we get that R3(x) is a yes input of Π3 iff x is a yes input instance of Π1 Polynomial-time Argument • • • • • • • Let R1 take time nc1 Let R2 take time nc2 Let n be the size of x Then the R1 call of R3 takes time at most nc1 Furthermore, R1(x) has size at most max(n,nc1) Therefore, the R2 call of R3 takes time at most max(nc2, (nc1)c2) = max (nc2, nc1 c2) In either case, the total time taken by R3 is polynomial in n NP-complete and NP-hard problems • Transitivity of polynomial-time many-one reductions • Definition of complexity class NP – Nondeterministic computation – Problems that can be verified • The P = NP Question – Concept of NP-hard and NP-complete problems Traditional definition of NP • Turing machine model of computation – – • Deterministic versus nondeterministic computation – – • Simple model where data is on an infinite capacity tape Only operations are reading char stored in current tape cell, writing a char to current tape cell, moving tape head left or right one square Deterministic: At any point in time, next move is determined Nondeterministic: At any point in time, several next moves are possible NP: Class of problems that can be solved by a nondeterminstic turing machine in polynomial time Turing Machines A Turing machine has a finite-state-control (its program), a two way infinite tape (its memory) and a read-write head (its program counter) Finite State Control Head …. 1 0 1 0 0 0 1 1 0 1 1 …. Tape Nondeterministic Running Time Deterministic Computation Nondeterministic Computation • We measure running time by looking at height of computation tree, NOT number of nodes explored • Both computation have same height 4 and thus same running time ND computation returning yes Yes Result No Result • If any leaf node returns yes, we consider the input to be a yes input. • If all leaf nodes return no, then we consider the input to be a no input. Showing a problem is in NP • Hamiltonian Path – – • Input: Undirected graph G = (V,E) Y/N Question: Does G contain a HP? Nondeterministic polynomial-time solution – Guess a hamiltonian path P (ordering of vertices) • • – – V! possible orderings For binary tree, V log V height to generate all guesses Verify guessed ordering is correct Return yes/no if ordering is actually a HP Illustration 2 3 1 Yes input graph 123 132 213 231 312 321 Guess Phase Nondeterministic --------------Verify Phase Deterministic 2 3 1 No input graph 123 132 213 231 312 321 Guess Phase Nondeterministic --------------Verify Phase Deterministic Alternate definition of NP • Preliminary Definitions – – – – • Let Π be a decision problem Let I be an input instance of Π Let Y(Π) be the set of yes input instances of Π Let N(Π) be the set of no input instances of Π Π belongs to NP iff • • For any I ε Y(Π), there exists a “certificate” [solution] C(I) such that a deterministic algorithm can verify I ε Y(Π) in polynomial time with the help of C(I) For any I ε N(Π), no “certificate” [solution] C(I) will convince the algorithm that I ε Y(Π). Connection 2 3 1 Yes input graph 123 132 213 231 312 321 Guess Phase Nondeterministic --------------Verify Phase Deterministic •Certificate [Solution] •A Hamiltonian Path •C(I1): 123 or 321 •C(I2): none •Verification Alg: 2 3 1 No input graph 123 132 213 231 312 321 Guess Phase Nondeterministic --------------Verify Phase Deterministic •Verify certificate is a possible HP •Check for edge between all adjacent nodes in path Example: Clique Problem • • Clique Problem – Input: Undirected graph G = (V,E), integer k – Y/N Question: Does G contain a clique of size ≥ k? Certificate – • A clique C of size at least k Verification algorithm – – Verify this is a potential clique of size k Verify that all nodes in C are connected in E Proving a problem is in NP • • You need to describe what the certificate C(I) will be for any input instance I You need to describe the verification algorithm – • usually trivial You need to argue that all yes input instances and only yes input instances have an appropriate certificate C(I) – also usually trivial (typically do not require) Example: Vertex Cover • Vertex Cover – – Input: Undirected graph G = (V,E), integer k Y/N Question: Does G contain a vertex cover of size ≤ k? • • Certificate – • Vertex cover: A set of vertices C such that for every edge (u,v) in E, either u is in C or v is in C (or both are in C) A vertex cover C of size at most k Verification algorithm – – Verify C is a potential vertex cover of size at most k Verify that all edges in E contain a node in C Example: Satisfiability • Satisfiability – – • • Input: Set of variables X and set of clauses C over X Y/N Question: Is there a satisfying truth assignment T for the variables in X such that all clauses in C are true? Certificate? Verification algorithm? Example: Unsatisfiability • Unsatisfiability – – • • Input: Set of variables X and set of clauses C over X Y/N Question: Is there no satisfying truth assignment T for the variables in X such that all clauses in C are true? Certificate and Verification algorithm? Negative certificate and Negative verification algorithm? Example: Exact Vertex Cover • Exact Vertex Cover – – Input: Undirected graph G = (V,E), integer k Y/N Question: Does the smallest vertex cover in G have size exactly k? • • • Vertex cover: A set of vertices C such that for every edge (u,v) in E, either u is in C or v is in C (or both are in C) Certificate and Verification algorithm? Negative certificate and Negative verification algorithm? NP-complete and NP-hard problems • Transitivity of polynomial-time many-one reductions • Definition of complexity class NP – Nondeterministic computation – Problems that can be verified • The P = NP Question – Concept of NP-hard and NP-complete problems Definition of NP-hard • A problem П is NP-hard if – • for all П’ ε NP П’ ≤p П holds. Intuitively, an NP-hard problem П is at least as hard (defined by membership in P) as any problem in NP Definition of NP-complete • A problem П is NP-complete if – – • П is NP-hard and П is in NP Intuitively, an NP-complete problem П is the hardest problem in NP – – That is, if П is in P, then P=NP If P ≠ NP, then П is not in P P=NP=NP-complete OR P NP NP-complete Importance of NP-completeness Importance of “Is P=NP” Question • Practitioners view – – – There exist a large number of interesting and seemingly different problems which have been proven to be NP-complete The P=NP question represents the question of whether or not all of these interesting and different problems belong to P As the set of NP-complete problems grows, the question becomes more and more interesting List of Problem Types from Garey & Johnson, 1979 • • • • • • Graph Theory Network Design Sets and Partitions Storage and Retrieval Sequencing and Scheduling Mathematical Programming • Algebra and Number Theory • Games and Puzzles • Logic • Automata and Languages • Program Optimization • Miscellaneous Importance of NP-completeness Importance of “Is P=NP” Question • Theoretician’s view – – NP is exactly the set of problems that can be “verified” in polynomial time Thus “Is P=NP?” can be rephrased as follows: • • Is it true that any problem that can be “verified” in polynomial time can also be “solved” in polynomial time? Hardness Implications – – – It seems unlikely that all problems that can be verified in polynomial time also can be solved in polynomial time If so, then P≠NP Thus, proving a problem to be NP-complete is a hardness result as such a problem will not be in P if P≠NP. Proving a problem П is NP-complete • Proving a problem П is NP-complete – – Show П is in NP (usually easy step) Prove for all П’ ε NP П’ ≤p П holds. • Show that П’ ≤p П for some NP-hard problemП’ – – • We need to prove the existence of a first NP-hard problem – – This only works if we have a known NP-hard problem П’ to reduce from Also depends on transitivity property proven earlier Cook-Levin Thm Developing new reductions is a skill or art form • Over time, it gets easier Select the right source problem 3-SAT: The old reliable. When none of the other problems seem to work, this is the one to come back to. Integer Partition: A good choice for number problems. 3-Partition: A good choice for proving “strong” NPcompleteness for number problems. Vertex Cover: A good choice for selection problems. Hamiltonian Path: A good choice for ordering problems. Some history • Cook: “The complexity of theorem-proving procedures” STOC 1971, pp. 151-158 – – – • Polynomial-time reductions NP complexity class SAT is NP-complete Levin: “Universal sorting problems”, Problemi Peredachi Informatsii 9:3 (1973), pp. 265-266 – • Independent discovery of many of the same ideas Karp: “Reducibility among combinatorial problems”, in Complexity of Computer Computations, 1972, pp. 85103 – Showed 21 problems from a wide variety of areas are NPcomplete