Vertex cover problem
Post on 16-Mar-2016
30 Views
Preview:
DESCRIPTION
Transcript
Vertex cover problemS V such that for every {u,v} E uS or vS (or both)
Vertex cover problemS V such that for every {u,v} E uS or vS (or both)
Vertex cover problemS V such that for every {u,v} E uS or vS (or both)
OPTIMIZATION VERSION: INPUT: graph G OUTPUT: vertex cover S of minimum-size
DECISION VERSION: INSTANCE: graph G, integer k QUESTION: does G have vertex cover of size k ?
Vertex cover problemDECISION VERSION: INSTANCE: graph G, integer k QUESTION: does G have vertex cover of size k ?
complement of a graph G G
vertex cover S in G V-S is _________ in G ?
Vertex cover problemDECISION VERSION: INSTANCE: graph G, integer k QUESTION: does G have vertex cover of size k ?
complement of a graph G G
vertex cover S in G V-S is clique in G ?
Vertex cover problemDECISION VERSION: INSTANCE: graph G, integer k QUESTION: does G have vertex cover of size k ?
complement of a graph G G
vertex cover S in G V-S is clique in G ?
Clique Vertex Cover Vertex Cover is NP-complete
Vertex cover problemOPTIMIZATION VERSION: INPUT: graph G OUTPUT: vertex cover S of minimum-size
Vertex cover problemOPTIMIZATION VERSION: INPUT: graph G OUTPUT: vertex cover S of minimum-size
Algorithm 1: pick a vertex v with the largest degree, put v in S, remove v and adjacent edges from G, repeat
Algorithm 2: find a maximal matching M in G, for each {u,v}M put both u,v in S
Algorithm 2: find a maximal matching M in G, for each {u,v}M put both u,v in S
k edges|S| = 2k
Algorithm 2: find a maximal matching M in G, for each {u,v}M put both u,v in S
k edges|S| = 2k OPT k
Algorithm 2: find a maximal matching M in G, for each {u,v}M put both u,v in S
k edges|S| = 2k
OPT k|S| 2 OPT
2-approximation algorithm
Algorithm 1: pick a vertex v with the largest degree, put v in S, remove v and adjacent edges from G, repeat
n
Algorithm 1: pick a vertex v with the largest degree, put v in S, remove v and adjacent edges from G, repeat
n/2
Algorithm 1: pick a vertex v with the largest degree, put v in S, remove v and adjacent edges from G, repeat
Algorithm 1: pick a vertex v with the largest degree, put v in S, remove v and adjacent edges from G, repeat
n/2 n/3
Algorithm 1: pick a vertex v with the largest degree, put v in S, remove v and adjacent edges from G, repeat
n/k k=2
n=
Algorithm 1: pick a vertex v with the largest degree, put v in S, remove v and adjacent edges from G, repeat
n/k k=2
n (n/k – 1) (n ln n) – 2n =(n ln n)
k=2
n
OPT = n
Algorithm 1 has approximation ratio (ln n)
Vertex cover problemOPTIMIZATION VERSION: INPUT: graph G OUTPUT: vertex cover S of minimum-size
Algorithm 1: pick a vertex v with the largest degree, put v in S, remove v and adjacent edges from G, repeat
Algorithm 2: find a maximal matching M in G, for each {u,v}M put both u,v in S 2-approximation
ln n)-approximation
Hamiltonian cycle problemHamiltonian cycle in (undirected) graph G=(V,E) C=u1,u2,...,un, such that every vertex vV occurs in C exactly once ui,ui+1 E for i=1,...,n-1 u1,un E
Hamiltonian cycle problemHamiltonian cycle in (undirected) graph G=(V,E) C=u1,u2,...,un, such that every vertex vV occurs in C exactly once ui,ui+1 E for i=1,...,n-1 u1,un E
Hamiltonian cycle problemHamiltonian cycle in (undirected) graph G=(V,E) C=u1,u2,...,un, such that every vertex vV occurs in C exactly once ui,ui+1 E for i=1,...,n-1 u1,un E
NP-complete problem
Travelling salesman (TSP)INSTANCE: complete graph with edge weights G=(V,E,w)
SOLUTION: hamiltonian cycle C in G
OBJECTIVE: sum of the weights of the cycle C
Travelling salesman (TSP)INSTANCE: complete graph with edge weights G=(V,E,w)
SOLUTION: hamiltonian cycle C in G
OBJECTIVE: sum of the weights of the cycle C
Travelling salesman (TSP)INSTANCE: complete graph with edge weights G=(V,E,w)
SOLUTION: hamiltonian cycle C in G
OBJECTIVE: sum of the weights of the cycle C
Is there an approximation algorithm ?
Metric TSPINSTANCE: complete graph with edge weights G=(V,E,w)
SOLUTION: cycle C in G, repeated vertices,edges allowed
OBJECTIVE: sum of the weights of the cycle C
Is there an approximation algorithm ?
Metric TSPd(u,v) = cheapest way of getting from u to v
d(u,v) = d(v,u)d(u,v) d(u,w)+ d(w,u)
Metric TSPcompute the d(u,v)compute MST T weight(T) OPT
Metric TSPcompute the d(u,v)compute MST T weight(T) OPT
2-approximation algorithm
Euler tourwhen can a graph be drawn withoutlifting a pen, and without drawing thesame edge twice?
Euler tourwhen can a graph be drawn withoutlifting a pen, and without drawing thesame edge twice?
if we want to end where we started?
Metric TSPcompute the d(u,v)compute MST Tfind a min-weight perfect matching on odd-degree vertices of T
weight(T) OPTweight(M) OPT/2
1.5-approximation algorithm
Optimization problemsINSTANCE
FEASIBLE SOLUTIONS
c: SOLUTIONS R+
OPT= min c(T)T FEASIBLE SOLUTIONS
APPROXIMATION ALGORITHM INSTANCE T
c(T) OPT
PTASPolynomial-time approximation schemepolynomial-time (1+)-approximation algorithm for any constant >0
FPTASFully polynomial-time approximation scheme
(1+)-approximation algorithm running in time poly(INPUT,1/)
APPROXIMATION ALGORITHM INSTANCE T
c(T) OPT
top related