390 likes | 532 Views
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.
E N D
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 problems • Double-SAT • Dominating set • http://en.wikipedia.org/wiki/Dominating_set_problem
Review P, NP, NPC Polynomial-time Reduction
P • P is the class of all languages that have poly-time algorithm • e.g., Shortest path on a directed graph, Sorting
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
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 =
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
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…?
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”
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
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
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
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
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
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
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
Relations hard NP-C Is there any problem even harder than NP-C? NP Yes! e.g. I-go P easy
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
Example Proving a problem being NPC
Double-SAT • Problem: • Double-SAT = {<φ> |φ is a Boolean formula with at least two satisfying assignments} • Goal: • Show that Double-SAT is NP-Complete
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
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
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
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
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
Dominating Set • Problem: • Dominating-set = {<G, K> | A dominating set of size K for G exists} • Goal: • Show that Dominating-setis NP-Complete
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
Dominating Set (Example) • Size-2 example : {Yellow vertices} e
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
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
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
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
[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
Dominating Set – Graph Transformation Example vw v w v w vz wu vu z u z u zu G' G
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
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)
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)
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
End Any questions? (There should be some)