15
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.

Vertex Covers and Matchings

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

Page 1: Vertex Covers and Matchings

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.

Page 2: Vertex Covers and Matchings

Example

1

2

4

3

5 6

C = {1, 2, 3, 4} M = {(1,5), (2,3), (4,6)}

Page 3: Vertex Covers and Matchings

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.

Page 4: Vertex Covers and Matchings

A Bipartite Graph

1

3

5

7

2

4

6

8

N1 N2

Page 5: Vertex Covers and Matchings

Max Flow Network G’

1

3

5

7

2

4

6

8

s

1

1

1

1

t

1

1

1

1

capacity =

Page 6: Vertex Covers and Matchings

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.

Page 7: Vertex Covers and Matchings

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|.

Page 8: Vertex Covers and Matchings

Max Flow in Network G’

1

3

5

7

2

4

6

8

s

1

1

1

t

1

1

1

1

1

1

Page 9: Vertex Covers and Matchings

Matching in G

1

3

5

7

2

4

6

8

Page 10: Vertex Covers and Matchings

Residual Network

1

3

5

7

2

4

6

8

s t

S ={S, 1, 2, 3, 5, 6}

T ={T, 4, 7, 8}

Page 11: Vertex Covers and Matchings

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.

Page 12: Vertex Covers and Matchings

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}

Page 13: Vertex Covers and Matchings

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

Page 14: Vertex Covers and Matchings

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] = .

Page 15: Vertex Covers and Matchings

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.