Upload
allen-perez
View
48
Download
0
Embed Size (px)
DESCRIPTION
Vertex Covers and Matchings. Given an undirected graph G=(V,E), a vertex cover of G is a subset of the vertices C such that for every edge (i,j) in E i is in C and/or j is in C. -a matching in G is a subset of the edges M such that no two edges in M share the same vertex. Example. - PowerPoint PPT Presentation
Citation preview
Vertex Covers and Matchings
• Given an undirected graph G=(V,E), – a vertex cover of G is a subset of the
vertices C such that for every edge (i,j) in E i is in C and/or j is in C.
-a matching in G is a subset of the edges M such that no two edges in M share the same vertex.
Example
1
2
4
3
5 6
C = {1, 2, 3, 4} M = {(1,5), (2,3), (4,6)}
Maximum Cardinality Matching
• Find the largest matching in a given graph G.
• Tricky (put polynomial) in general, but “easy” in a bipartite graph.– A bipartite network has two sets of
nodes N1 and N2 such that all edges have one endpoint in N1 and the other in N2.
A Bipartite Graph
1
3
5
7
2
4
6
8
N1 N2
Max Flow Network G’
1
3
5
7
2
4
6
8
s
1
1
1
1
t
1
1
1
1
capacity =
Mapping Flows into Matchings
• Given a feasible flow in G’, let (i,j) be an edge in M if and only if xij = 1.
• Observe that |M| = value of the flow.• If two edges in E, (i,j) and (k,j), share a
node, then either xij = 0, or xkj = 0, or both. Otherwise the arc capacity of (j,t) will be violated.
• If two edges in E, (i,j) and (i,k), share a node, then either xij = 0, or xik = 0, or both.
Mapping Matchings into Flows
• Start with a zero flow.• If (i,j) is an edge in M, then let xsi=1,
xij=1, and xjt=1. • Consider a pair of matched nodes i and j.
– The flow x sends exactly one unit of flow to node i on arc (s,i) and exactly one unit of flow into the sink on arc (j,t)
– Thus, a matching of size |M| gives a feasible s-t flow of value |M|.
Max Flow in Network G’
1
3
5
7
2
4
6
8
s
1
1
1
t
1
1
1
1
1
1
Matching in G
1
3
5
7
2
4
6
8
Residual Network
1
3
5
7
2
4
6
8
s t
S ={S, 1, 2, 3, 5, 6}
T ={T, 4, 7, 8}
Minimum Cardinality Vertex Covers
• Find a vertex cover with a minimum number of nodes.
• Hard in general, but polynomial in bipartite graphs.– Solve max flow problem as
described earlier and find min cut [S,T].– C = {i in N1 T} {i in N2 S} is a
minimum cardinality vertex cover.
Vertex Cover in G
1
3
5
7
2
4
6
8
S ={S, 1, 2, 3, 5, 6}
N1 N2
T ={T, 4, 7, 8}
Correctness of Vertex Cover Result
i
js t
1
1
N1 N2
i in N1 T
N2 T
j in N2 S
N1 S
can’t be in min cut
Correctness of Vertex Cover Result
• Let [S,T] be a finite cut in G.• Claim: C = {i in N1 T} {i in N2 S}
is a vertex cover.– Suppose not. – This implies there is some edge (a,b) such
that a is in N1 and S, and b is in N2 and T.– Since a is in N1 and b is in N2 capacity (a,b)
= .– But (a,b) goes from s to t. So, u[S,T] = .
Correctness of Vertex Cover Result
• The [S,T] be a finite cut in G.• Claim: C = {i in N1 T} {i in N2
S} is a vertex cover such that|C|=u[S,T].
• Theorem for Bipartite Graphs: The cardinality of a maximum-size matching is equal to the cardinality of a minimum-size vertex cover.