+ All Categories
Home > Documents > CSCI 256 Data Structures and Algorithm Analysis Lecture 22 Some slides by Kevin Wayne copyright...

CSCI 256 Data Structures and Algorithm Analysis Lecture 22 Some slides by Kevin Wayne copyright...

Date post: 15-Dec-2015
Category:
Upload: delilah-gulsby
View: 213 times
Download: 0 times
Share this document with a friend
Popular Tags:
21
CSCI 256 Data Structures and Algorithm Analysis Lecture 22 Some slides by Kevin Wayne copyright 2005, Pearson Addison Wesley all rights reserved, and some by Iker Gondra
Transcript

CSCI 256

Data Structures and Algorithm Analysis

Lecture 22

Some slides by Kevin Wayne copyright 2005,

Pearson Addison Wesley all rights reserved,

and some by Iker Gondra

Transition point

• Till now we’ve looked at developing efficient algorithms for a wide range of problems

• Now we look to quantify or characterize the range of problems that can’t be solved efficiently

• We’ll use the notion of reduction to help compare the relative difficulty of different problems

The Universe

NP-Complete

NP

P

Millennium Prize Problems

Copyright © 1990, Matt Groening

Classify Problems According to Computational Requirements

• Q: Which problems will we be able to solve in practice?– A working definition. [Cobham 1964, Edmonds 1965, Rabin

1966] Those with polynomial-time algorithms

• Desiderata: Classify problems according to those that can be solved in polynomial-time and those that cannot

• Frustrating news: Huge number of fundamental problems have defied classification for decades – i.e. can’t give a poly time alg and can’t prove that none exists

• This chapter: Show that these fundamental problems are "computationally equivalent" and appear to be different manifestations of one really hard problem

Polynomial-Time Reduction

• Desiderata': Suppose we could solve Y in polynomial-time. What else could we solve in polynomial time?

• Reduction: Problem X polynomial reduces to problem Y if arbitrary instances of problem X can be solved using– Polynomial number of standard computational steps,

plus– Polynomial number of calls to an oracle (a black box)

that solves problem Y

• Notation: X P Ycomputational model supplemented by special pieceof hardware that solves instances of Y in a single step

Lemma

• Suppose X P Y. If Y can be solved in polynomial time, then X can be solved in polynomial time

• Remark – when you are reading the text note that the text talks of Y P X

Lemma

• Suppose X P Y. If X cannot be solved in polynomial time, then Y cannot be solved in polynomial time

Polynomial-Time Reduction

• Purpose: Classify problems according to relative difficulty

• Design algorithms: If X P Y and Y can be solved in polynomial-time, then X can also be solved in polynomial time

• Establish intractability: If X P Y and X cannot be solved in polynomial-time, then Y cannot be solved in polynomial time

• Establish equivalence: If X P Y and Y P X, we use notation X P Yup to cost of reduction

Independent Set

• Independent Set– Goal is to find S of maximum size

1

3

2

6 7

4 5

Decision Problem

• Call the above an optimization version of the problem

• There is another way to formulate the problem – as a decision problem

• A decision problem is a class of problems for which there is a yes or no answer for each instance of the problem.

• We rephrase the Independent Set problem as the following decision problem

Independent Set – Decision version

- Given a graph G = (V, E) and an integer k, does G contain an independent set of size at least k?

– Ex: Instance: For G below, is there an independent set of size 6? Yes

– Ex: Instance: For G below, is there an independent set of size 7? No

independent set

Sample Application: find set of mutually

non-conflicting points

Equivalence between decision and optimization versions

• Given a method to solve the optimization version, we automatically solve each instance of the associated decision problem; and if we have a method to solve each instance of the decision then we can solve the optimization version (for given G, the the largest k for which there is a yes answer gives us the answer to the optimization version for G)

Vertex Cover

• Vertex Cover– Given a graph G = (V, E), a subset S of the vertices is

a vertex cover if every edge in E has at least one endpoint in S. Goal is to find S of minimum size

1

3

2

6 7

4 5

Vertex Cover – Associated decision version – if you can do optimization version you can do decision version and vice versa

• Convert to decision version of the problem– Given a graph G = (V, E) and an integer k, does G contain a

vertex cover of size at most k?

– Ex: Instance: For G, Is there a vertex cover of size 4? Yes– Ex: Instance: For G, Is there a vertex cover of size 3? No

vertex cover

Sample Application: place guards within

an art gallery so that all corridors are visible at any

time

Relative difficulty of the two problems

• We don’t know how to solve the independent set problem or vertex cover problem in polynomial time; but we can show that they are equivalently hard

• First we need the following theorem:

Vertex Cover and Independent Set

• Theorem: S is an independent set iff V S is a vertex cover.

Recall: Given a graph G = (V, E), a subset S of the vertices is independent if there are no edges between vertices in S.

Recall: Given a graph G = (V, E), a subset S of the vertices is a vertex cover if every edge in E has at least one endpoint in S.

Vertex Cover and Independent Set

• Theorem: S is an independent set iff V S is a vertex cover

– Let S be any independent set– Consider an arbitrary edge, (u, v) ε E– S independent u S or v S u V S or v V S– Thus, V S covers (u, v)

– Let V S be any vertex cover – Consider two nodes u S and v S – Observe (u, v) E (V S is a vertex cover so if (u,v) ε E, u V-

S or v V – S so u S or v S -- a contradiction – Thus, no two nodes in S are joined by an edge S indep set

Vertex Cover and Independent Set Reductions to each other:

• Theorem: VERTEX-COVER P INDEPENDENT-SET

If we have a black box to solve the Vertex Cover problem then we can decide if G has an independent set of size at least k by asking the black box whether G has a Vertex Cover of size at most n-k.

Conversely if we have a black box to solve the Independent set problem we can decide if G has a vertex cover problem of size at most k by asking the black box if G has an independent set of size at least n-k

Set Cover

• SET COVER: Given a set U of elements, a collection S1, S2, . . . , Sm of subsets of U, and an integer k, does there exist a collection of k of these sets whose union is equal to U?

• Sample application– m available pieces of software– Set U of n capabilities that we would like our system to have

– The ith piece of software provides the set Si U of capabilities

– Goal: achieve all n capabilities using fewest pieces of softwareU = { 1, 2, 3, 4, 5, 6, 7 }

k = 2S1 = {3, 7} S4 = {2, 4}

S2 = {3, 4, 5, 6} S5 = {5}

S3 = {1} S6 = {1, 2, 6,

7}

• Claim: VERTEX-COVER P SET-COVER

– Pf: Given a VERTEX-COVER instance, i.e., a graph G = (V, E), and an integer, k, we construct a set cover instance whose size equals the size of the vertex cover instance, so G has a vertex cover of size k iff for the set U, and subsets S1, S2, . . . , Sm of U,

there exists a collection of k of these sets whose union is equal to U

Vertex Cover Reduces to Set Cover

• Claim: VERTEX-COVER P SET-COVER

• Construction– Create SET-COVER instance

• k = k, U = { i | ei E), Sv = { i : ei incident to v } (note Sv U)

– Set-cover of size k iff vertex cover of size k

SET COVER

U = { 1, 2, 3, 4, 5, 6, 7 }k = 2Sa = {3, 7} Sb = {2, 4}

Sc = {3, 4, 5, 6} Sd = {5}

Se = {1} Sf= {1, 2, 6, 7}

a

d

b

e

f c

VERTEX COVER

k = 2e1

e2 e3

e5

e4

e6

e7


Recommended