180 likes | 1.01k Views
Fall 2009. NP-complete examples. Xiao Linfu. CSC3130 Tutorial 11. lfxiao@cse.cuhk.edu.hk. Department of Computer Science & Engineering. Outline. Review of P, NP, NP-C 2 problem s Double-SAT Dominating set http://en.wikipedia.org/wiki/Dominating_set_problem. Relations. hard. NP-C.
E N D
Fall 2009 NP-complete examples Xiao Linfu CSC3130 Tutorial 11 lfxiao@cse.cuhk.edu.hk Department of Computer Science & Engineering
Outline • Review of P, NP, NP-C • 2 problems • Double-SAT • Dominating sethttp://en.wikipedia.org/wiki/Dominating_set_problem
Relations hard NP-C Is there any problem even harder than NP-C? NP Yes! e.g. I-go P easy
Polynomial Time Reduction How to show that a problem R is not easier than a problem Q? Informally, if R can be solved efficiently, we can solve Q efficiently. • Formally, we say Q polynomially reduces to R if: • Given an instance q of problem Q • There is a polynomial time transformation to an instance f(q) of R • q is a “yes” instance if and only iff(q) is a “yes” instance Then, if R is polynomial time solvable, then Q is polynomial time solvable. If Q is not polynomial time solvable, then R is not polynomial time solvable.
Methodology • To show L is in NP, you can either (i) show that solutions for L can be verified in polynomial-time, or (ii) describe a nondeterministic polynomial-time TM for L. • To show L is NP-complete, you have to design a polynomial-time reduction from some problem we know to be NP-complete
The direction of the reduction is very important • Saying “A is easier than B” and “B is easier than A” mean different things • What we have? We know SAT, Vertex Cover problems are NP-Complete!
Double-SAT • Definition: • Double-SAT = {<φ> |φ is a Boolean formula with at least two satisfying assignments} • Show that Double-SAT is NP-Complete. • (1) First, it is easy to see that Double-SAT ∈ NP. • non-deterministically guess 2 assignments for φand verify whetherboth satisfy φ. • (2) Then we show Double-SAT is not easier than SAT. • Reduction from SAT to Double-SAT
Double-SAT • Reduction: • On input φ(x1, . . . , xn): • 1. Introduce a new variable y. • 2. Output formula φ’(x1, . . . , xn, y) = φ(x1, . . . , xn) ∧(y∨ y ).
Dominating set • Definition: input G=(V,E), K • Let G=(V,E) be an undirected graph. A dominating set D is a set of vertices in G such that every vertex of G is either in D or is adjacent to at least one vertex from D. The problem is to determine whether there is a dominating set of size K for G.
Dominating set - example • {yellow vertices} is an example of a dominating set of size 2. e
Dominating set • Show that Dominating set is NP-Complete. • (1) First, it is easy to see that Dominating set ∈ NP. • Given a vertex set D of size K, we check whether (V-D) are adjacent to D. • (2) Then we show Dominating set is not easier than Vertex cover. • Reduction from Vertex cover to Dominating set
Dominating set • Reduction • (1) Graph transformation - Construct a new graph G' by adding new vertices and edges to the graph G as follows: 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.
Dominating set – graph transformation vw v w v w vz wu vu z u z u G zu G'
Dominating set • Reduction • (1) Graph transformation • (2) a dominating set of size K in G’ a vertex cover of size K in G