NP-complete examples

1 / 18

# NP-complete examples - PowerPoint PPT Presentation

Fall 2009. NP-complete examples. Xiao Linfu. CSC3130 Tutorial 11. [email protected] 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.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'NP-complete examples' - hien

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Fall 2009

### NP-complete examples

Xiao Linfu

CSC3130 Tutorial 11

[email protected]

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
• Reduction
• (1) Graph transformation
• (2) a dominating set of size K in G’  a vertex cover of size K in G