1 / 39

NP-complete examples

NP-complete examples. CSCI3130 Tutorial 10. Chun-Ho Hung. chhung@cse.cuhk.edu.hk. Department of Computer Science & Engineering. Outline. Review P, NP, NPC Polynomial-time Reduction 2 problem s Double-SAT Dominating set http://en.wikipedia.org/wiki/Dominating_set_problem. Review.

cwen
Download Presentation

NP-complete examples

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NP-complete examples CSCI3130 Tutorial 10 Chun-Ho Hung chhung@cse.cuhk.edu.hk Department of Computer Science & Engineering

  2. Outline • Review • P, NP, NPC • Polynomial-time Reduction • 2 problems • Double-SAT • Dominating set • http://en.wikipedia.org/wiki/Dominating_set_problem

  3. Review P, NP, NPC Polynomial-time Reduction

  4. P • P is the class of all languages that have poly-time algorithm • e.g., Shortest path on a directed graph, Sorting

  5. NP • NP is the class of all languages that have poly-time verifier • A verifier – a Turing Machine, V, s.t. • Given a potential x • x ∈ L  V accepts input <x, s> for some s • Solution s • V runs in polynomial time

  6. NP (con’t) • While verifying a solution of a NP problem is easy (in poly-time), finding a solution could be more difficult • An 3SAT instance - Find a satisfying assignment for • Verifying • Given an assignment, just evaluate the truth value • Finding a solution? • No efficient algorithm has been discovered yet (x1∨x2 ) ∧ (x2∨x3∨x4) ∧ (x1) f =

  7. P versus NP • Every language, L in P, L is also in NP • Let Verifier = Poly-time TM that solves L • Therefore • P is contained in NP • Note: L in NP does not imply that efficient algorithm that decides Ldoes not exist NP P

  8. NPC • A language C is NP-complete if: • C is in NP • Every language L in NP, L poly-time reduces to C • What is a reduction…?

  9. Reduction • The direction of the reduction is very important • Saying “A is easier than B” and “B is easier than A” mean different things • “A (polynomially) reduces to B” means “B is not easier than A”

  10. Reduction (Con’t) • Consider 2 problems: • BFS on unweighted graph • Shortest path on weighted graph • Assume we have a TM, V, which solves 2) • We can reduce 1) to 2): • Given an instance of 1), convert it into an instance of 2): • Copy the graph, add weight=1 to every edge in 2) • Run this instance on V, output result • These two “yes” instances corresponds to each other

  11. Poly-Time Reduction • How to show that a problem B is not easier than a problem A? • Informally, if B can be solved efficiently, we can solve A efficiently • Formally, we say A polynomially reduces to B if: • Given an instance a of problem, x • There is a polynomial time transformation to an instance of B, y = f(x) • x is a “yes” instance if and only ify is a “yes” instance

  12. Poly-Time Reduction (Con’t) • Suppose A poly-time reduces to B • Then there exists a poly-time TM, R, s.t., • Given an instance of A, x, transforms it to an instance of B, y = f(x), and • y is accepted  x is accepted

  13. Poly-Time Reduction (Implication) • Suppose A reduces to B • If B is polynomial time solvable, then A is polynomial time solvable • If A is not polynomial time solvable, then B is not polynomial time solvable • Contrapositive acc R TM for L’ x y rej Poly-time TM

  14. Poly-Time Reduction (Implication) • Suppose A reduces to B • Solving B cannot be easier than solving A • Suppose A is “difficult” while B is “easy” • However, by this reduction, you find a “easy” way to solve A • Consequently, if A is NPC, then B must be NPC acc R TM for L’ x y rej Poly-time TM

  15. Poly-Time Reduction - P versus NP • To show P = NP, one could try to show that a NPC problem, C, can be solved in polynomial time. Why? • Every problem in NP poly-time reduces to C • If C can be solved in poly-time, so does each problem in NP • Then NP = P!! • But this is not that easy and it is counter-intuitive (to most people) too

  16. P versus NP (Again) • Most believe that P ≠ NP, because intuitively searching for a solution is more difficult than verifying a solution • What does P = NP imply? • Know how to verify a solution in poly-time Know how to find a solution in poly-time (?!) • Indeed we prefer P ≠ NP • Encryption algorithms heavily rely on the assumption that P ≠ NP • P = NP or P ≠ NP is still an open problem

  17. Relations hard NP-C Is there any problem even harder than NP-C? NP Yes! e.g. I-go P easy

  18. Methodology • To show L is in NP, you can either • Show that solutions for L can be verified in polynomial-time, or • Describe a nondeterministic polynomial-time TM for L (Come back to this if we have enough time) • To show L is NP-complete • Show that L is in NP • Poly-time reduce some NPC problem to L • i.e., design a polynomial-time reduction from some problem we know to be NP-complete

  19. Example Proving a problem being NPC

  20. Double-SAT • Problem: • Double-SAT = {<φ> |φ is a Boolean formula with at least two satisfying assignments} • Goal: • Show that Double-SAT is NP-Complete

  21. Double-SAT (Proof Sketch) • Steps: • Show that Double-SAT ∈NP • Show that Double-SAT is not easier than a certain NPC problem • For the NPC problem, we choose SAT • i.e., we want to poly-time reduce Double-SAT to SAT • Show the correspondence of “yes” instance between reduction

  22. Double-SAT - (1) NP • It is trivial to see that Double-SAT ∈ NP • Given 2 assignments for φ, and verify whetherboth of them satisfy φ • We can just evaluate the truth value in poly-time

  23. Double-SAT - (2) Reduction • Reduction: • On input φ(x1, . . . , xn): 1. Introduce a new variable w 2. Output formula φ’(x1, . . . , xn, y) = φ(x1, . . . , xn) ∧(w∨ w ). acc R TM for L’ x y rej x ∈ L y ∈ L’ TM accepts SAT Double-SAT

  24. Double-SAT - (3) Correspondence • x ∈ L y ∈ L’ •  : Suppose there is an satisfying assignment, X, for φ(x1, . . . , xn), we can find two satisfying assignments for φ’(x1, . . . , xn, w): • Assignment 1 = {X, w=True} • Assignment 2 = {X, w=False} • φ’(x1, . . . , xn, w) = φ(x1, . . . , xn) ∧(w∨ w ) For {xi}, assign X, then this part = True No matter what w is, this part = True

  25. Double-SAT - (3) Correspondence • x ∈ L y ∈ L’ • : We use contrapositive • i.e., to show x ∉ L ⇒ y ∉ L’ • Indeed, if x∉ L, φ(x1, . . . , xn)=False • Then, no matter what the value of y is • φ’(x1, . . . , xn, y)=False

  26. Dominating Set • Problem: • Dominating-set = {<G, K> | A dominating set of size K for G exists} • Goal: • Show that Dominating-setis NP-Complete

  27. Dominating Set (Definition) • Problem: • Dominating-set = {<G, K> | A dominating set of size (at most) K for G exists} • Let G=(V,E) be an undirected graph • A dominating set D is a set of vertices that covers all vertices • i.e., every vertex of G is either in D or is adjacent to at least one vertex from D

  28. Dominating Set (Example) • Size-2 example : {Yellow vertices} e

  29. Dominating Set (Proof Sketch) • Steps: • Show that Dominating-set ∈ NP. • Show that Dominating-setis not easier than a NPC problem • We choose this NPC problem to be Vertex cover • Reduction from Vertex-coverto Dominating-set • Show the correspondence of “yes” instances between the reduction

  30. Dominating Set - (1) NP • It is trivial to see that Dominating-set∈ NP • Given a vertex set D of size K, we check whether (V-D) are adjacent to D • i.e., for each vertex, v, in (V-D), whether v is adjacent to some vertex u in D

  31. Dominating Set - (2) Reduction • Reduction - Graph transformation • Construct a new graphG' by adding new vertices and edges to the graph G as follows: T G G’ <G,k> ∈ L <G’, k> ∈ L’ Dominating-set Vertex-cover

  32. Dominating Set - (2) Reduction • Reduction - Graph transformation (Con’t) • For each edge (v, w) of G, add a vertex vw and the edges (v, vw) and (w, vw) to G' • Furthermore, remove all vertices with no incident edges; such vertices would always have to go in a dominating set but are not needed in a vertex cover of G • We skip the discussion of this subtle part in the followings T G G’ <G,k> ∈ L <G’, k> ∈ L’ Dominating-set Vertex-cover

  33. [Recap] Vertex cover 2 1 • A vertex cover, C, is a set of vertices that covers all edges • i.e., each edge is at least adjacent to some node in C 4 3 {2, 4}, {3, 4}, {1, 2, 3} are vertex covers

  34. Dominating Set – Graph Transformation Example vw v w v w vz wu vu z u z u zu G' G

  35. Dominating Set - (3) Correspondence • A dominating set of size K in G’ A vertex cover of size K in G •  Let D be a dominating set of size K in G’ • Case 1): D contains only vertices from G Then, all new vertices have an edge to a vertex in D D covers all edges D is a valid vertex cover of G

  36. Dominating Set - (3) Correspondence • A dominating set of size K in G’ A vertex cover of size K in G •  Let D be a dominating set of size K in G’ • Case 2): D contains some new vertices (vertex in the form of uv) (We show how to construct a vertex cover using only old vertices, otherwise we cannot obtain a vertex cover for G) For each new vertex uv, replace it by u (or v) If u ∈ D, this node is not needed Then the edge u-v in G will be covered After new edges are removed, it is a valid vertex cover of G (of size at most K)

  37. Dominating Set - (3) Correspondence • A dominating set of size K in G’ A vertex cover of size K in G •  Let C be a vertex cover of size K in G For an old vertex, v∈G’ : • By the definition of VC, all edges incident to v are covered • v is also covered For a new vertex, uv∈G’ : • Edge u-v must be covered, either u or v ∈ C • This node will cover uv in G’ Thus, C is a valid dominating for G’ (of size at most K)

  38. Dominating Set - (3) Correspondence vw v w v w vz wu vu z u z u zu Dominating-set in G' Vertex-cover in G

  39. End Any questions? (There should be some)

More Related