Title: NPcomplete examples
1NP-complete examples
Fall 2009
Xiao Linfu
lfxiao_at_cse.cuhk.edu.hk
Department of Computer Science Engineering
2Outline
- Review of P, NP, NP-C
- 2 problems
- Double-SAT
- Dominating set http//en.wikipedia.org/wiki/Domina
ting_set_problem
3(No Transcript)
4(No Transcript)
5(No Transcript)
6Relations
hard
NP-C
Is there any problem even harder than NP-C?
NP
Yes! e.g. I-go
P
easy
7Polynomial 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 if f(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.
8Methodology
- 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
9- 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!
10Double-SAT
- Definition
- Double-SAT ltfgt f 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 f
and verify whether both satisfy f. - (2) Then we show Double-SAT is not easier than
SAT. - Reduction from SAT to Double-SAT
11Double-SAT
- Reduction
- On input f(x1, . . . , xn)
- 1. Introduce a new variable y.
- 2. Output formula
- f(x1, . . . , xn, y) f(x1, . .
. , xn) ? ( y ? y ).
12Dominating 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.
13Dominating set - example
- yellow vertices is an example of a dominating
set of size 2.
e
14Dominating 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
15Dominating 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.
16Dominating set graph transformation
vw
v
w
w
v
vz
wu
vu
z
u
z
u
G
zu
G'
17Dominating set
- Reduction
- (1) Graph transformation
- (2) a dominating set of size K in G ?? a vertex
cover of size K in G
18