0% found this document useful (0 votes)
62 views

CS6234 L1 Matching

discmathemtics

Uploaded by

Beverly Paman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views

CS6234 L1 Matching

discmathemtics

Uploaded by

Beverly Paman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 68

CS6234: Lecture 1

Matching in Graph
Matching in Bipartite Graph [PS82]-Ch10
Matching in General Graphs [PS82]-Ch10
Weighted Matching in Bipartite Graph
[PS82]-Ch 11.111.2
Additional topics:
Reading/Presentation by students
Lecture notes modified from those by Lap Chi LAU, CUHK.
Hon Wai Leong, NUS

(CS6234, Spring 2009) Page 1


Copyright 2009 by Leong Hon Wai

Bipartite Matching

Bipartite Matching
A graph is bipartite if its vertex set can be partitioned
into two subsets A and B so that each edge has one
endpoint in A and the other endpoint in B.

A matching M is a subset of edges so that


every vertex has degree at most one in M.

Maximum Matching
The bipartite matching problem:
Find a matching with the maximum number of edges.

A perfect matching is a matching in which every vertex is matched.


The perfect matching problem: Is there a perfect matching?

First Try
Greedy method?
(add an edge with both endpoints unmatched)

Key Questions
How to tell if a graph does not have a (perfect) matching?

How to determine the size of a maximum matching?

How to find a maximum matching efficiently?

Existence of Perfect Matching


Halls Theorem [1935]:
A bipartite graph G=(A,B;E) has a matching that saturates A
if and only if |N(S)| >= |S| for every subset S of A.

N(S)
S

Bound for Maximum Matching


What is a good upper bound on the size of a maximum matching?

Knig [1931]:
In a bipartite graph, the
the size
size of
of aa maximum
maximum matching
matching
is equal
equal to the size of aa minimum
minimum vertex cover.

Min-max theorem

Implies Halls theorem.


8

Algorithmic Idea?

Any idea to find a larger matching?


9

Augmenting Path

Given a matching M, an M-alternating path is a path that alternates


between edges in M and edges not in M. An M-alternating path
whose endpoints are unmatched by M is an M-augmenting path.

10

Optimality Condition
What if there is no more M-augmenting path?
If there is no M-augmenting path, then M is maximum!

Prove the contrapositive:


A bigger matching an M-augmenting path
1.

Consider

2.

Every vertex in

3.

A component in

4.

Since

has degree at most 2


is an even cycle or a path
,

an M-augmenting path!
11

Algorithm
Key: M is maximum no M-augmenting path

How to find efficiently?

12

Finding M -augmenting paths

Orient the edges (edges in M go up, others go down)

An M-augmenting path
a directed path between two unmatched vertices

13

Complexity

At most n iterations

An augmenting path in

Total running time

time by a DFS or a BFS

14

Minimum Vertex Cover


Halls Theorem [1935]:
A bipartite graph G=(A,B;E) has a matching that saturates A
if and only if |N(S)| >= |S| for every subset S of A.
Knig [1931]:
In a bipartite graph, the size of a maximum matching
is equal to the size of a minimum vertex cover.

Idea: consider why the algorithm got stuck


15

Faster Algorithms

Observation: Many short and disjoint augmenting paths.


Idea: Find augmenting paths simultaneously in one search.

16

Application of Bipartite Matching

Isaac

Marking

Jerry

Tutorials

Darek

Solutions

Tom

Newsgroup

Job Assignment Problem:


Each person is willing to do a subset of jobs.
Can you find an assignment so that all jobs are taken care of?

17

Application of Bipartite Matching

With Halls theorem, now you can determine exactly


when a partial chessboard can be filled with dominos.
18

Application of Bipartite Matching


Latin Square: a nxn square, the goal is to fill the square
with numbers from 1 to n so that:
Each row contains every number from 1 to n.
Each column contains every number from 1 to n.

19

Application of Bipartite Matching


Now suppose you are given a partial Latin Square.

Can you always extend it to a Latin Square?


With Halls theorem, you can prove that the answer is yes.
20

CS6234:
Matching in Graph
Matching in Bipartite Graph
Matching in General Graphs
Weighted Matching in Bipartite Graph
Additional topics:
Reading/Presentation by students

Lecture notes modified from those by Lap Chi LAU, CUHK.


Hon Wai Leong, NUS

(CS6234, Spring 2009) Page 21


Copyright 2009 by Leong Hon Wai

General Matching

22

General Matching

Given a graph (not necessarily bipartite),


find a matching with maximum total weight.

unweighted (cardinality) version:


a matching with maximum number of edges

23

Todays Plan

Min-max theorems

[no proofs]

Polynomial time algorithm


Chinese postman

[skip]

Follow the same structure for bipartite matching.

24

Characterization of Perfect Matching

Halls Theorem [1935]:


A bipartite graph G=(A,B;E) has a matching that saturates A
if and only if |N(S)| >= |S| for every subset S of A.

Tuttes Theorem [1947]:


A graph has a perfect matching if and only if
o(G-S) <= |S| for every subset S of V.

25

Min-Max Theorem
Knig [1931]:
In a bipartite graph, the size of a maximum matching
is equal to the size of a minimum vertex cover.

Tutte-Berge formula [1958]:


The size of a maximum matching =

26

Augmenting Path?

Given a matching M, an M-alternating path is a path that alternates


between edges in M and edges not in M. An M-alternating path
whose endpoints are unmatched by M is an M-augmenting path.

Works for general graphs.

27

Optimality Condition?
What if there is no more M-augmenting path?
If there is no M-augmenting path, then M is maximum?
Prove the contrapositive:
A bigger matching an M-augmenting path
1.

Consider

2.

Every vertex in

3.

A component in

4.

Since

has degree at most 2


is an even cycle or a path
,

an M-augmenting path!
28

Algorithm?
Key: M is maximum no M-augmenting path

How to find efficiently?

29

Finding Augmenting Path in Bipartite Graphs

Orient the edges (edges in M go up, others go down)

edges in M having positive weights, otherwise negative weights

In a bipartite graph, an M-augmenting path corresponds to a directed path.


30

Finding M-augmenting paths


in General Graphs
Dont know how to orient the edges so that:
an M-augmenting path
a directed path between two free vertices

alternating path segment (before & after augmentation):


v1 v2 v3 v4 v5 v6 v7

Repeated
Vertex !!!

31

No repeated vertices. So?


Just find an alternating path without repeated vertices?!

Either we may exclude some possibilities,


Or we need to trace the path
32

Blossom
Note: When performing search for M-augmenting path,
we may encounter M-blossom!

33

Key idea
(Edmonds 1965) General matching algorithm

Shrink the blossoms!

34

Key Lemma
(Edmonds) M is a maximum matching in G
M/C is a maximum matching in G/C
Key: M is maximum no M-augmenting path

an M-augmenting path in G
an M/C-augmenting path in G/C

35

an M/C-augmenting path
an M-augmenting path

Note: One of the two paths around the blossom


will be the correct one.

36

an M-augmenting path
an M/C-augmenting path
Note: Many cases to be considered (see [PS82]-Ch10.)

Case 0: M-augmenting path p does not intersect M-blossom C


Case 1: p enters/leaves M-blossom C with matched edge

37

an M-augmenting path
an M/C-augmenting path

Case 2: p enters M-blossom C with free edge


2(a): p leaves via matched edge (1st example [in black])
2(b): p leaves C with free edge (2nd example [in red])

38

Algorithm
Key: M is maximum no M-augmenting path

How to find efficiently?

39

Finding an M-augmenting path


Find an alternating walk between two free vertices.
This can be done in linear time by a DFS or a BFS.
Either an M-augmenting path or a blossom can be found.
If a blossom is found, shrink it, and (recursively)
find an M/C-augmenting path P in G/C, and then
expand P to an M-augmenting path in G.
40

Complexity
At most n augmentations.
Each augmentation does at most n contractions.
An alternating walk can be found in O(m) time.
Total running time is O(mn2)

41

Historical Remarks
In his famous paper paths, trees, and flowers, Jack Edmonds:
Introduced the notion of a good algorithm.
Edmonds solved weighted general matching, primal dual.
Linear programming description, a breakthrough in polyhedral combinatorics.
An O(n3) algorithm by Pape and Conradt, 1980
Ref: [SDK83] Syslo, Deo, Kowalik, Prentice-Hall, 1983
Discrete Optimization Algorithms, Ch 3.7

42

Proving Min-Max Theorem


Tutte-Berge formula [1958]:
The size of a maximum matching =

Comments by LeongHW:
Skip next few slides on mainly
combinatorial results
(Anyone wants to do this for
reading assignment?)
43

M-alternating forest

Larger forest

M-augmenting path

a blossom

We make progress in any of the above cases.


44

M-alternating forest

Otherwise we find the set in Tutte-Berge formula.

45

Edmonds-Gallai Decomposition

Can be obtained from M-alternating forest.


Contains a lot of information about matching.

46

Chinese Postman
Given an undirected graph, a vertex v, a length l(e) on each edge e,
find a shortest tour to visit every edge once and come back to v.

Visit every edge exactly once if Eulerian.

Otherwise, find a minimum weighted perfect matching between odd vertices.

47

Tutte Matrix

Skew symmetric matrix, a(u,v)=x(e) and a(v,u)=-x(e)


Full rank perfect matching
Randomized algorithm

48

CS6234:
Matching in Graph
Matching in Bipartite Graph
Matching in General Graphs
Weighted Matching in Bipartite Graph
Additional topics:
Reading/Presentation by students

Lecture notes modified from those by Lap Chi LAU, CUHK.


Hon Wai Leong, NUS

(CS6234, Spring 2009) Page 49


Copyright 2009 by Leong Hon Wai

Weighted Bipartite Matching

50

Weighted Bipartite Matching


Given a weighted bipartite graph,
find a matching with maximum total weight.

Not necessarily a maximum size matching.


Wlog, assume perfect matching on complete bipartite graph;
(add fictitious edges with weights 0)
51

Todays Plan

Three algorithms
negative cycle algorithm
augmenting path algorithm
primal dual algorithm
Applications

52

First Algorithm
Find maximum weight perfect matching

How to know if a given matching M is optimal?

Idea: Imagine there is a larger matching M*


and consider the union of M and M*

53

First Algorithm

Orient the edges (edges in M go up, others go down)

edges in M having positive weights, otherwise negative weights

Then M is maximum if and only if there is no negative cycles


54

First Algorithm
Key: M is maximum no negative cycle

How to find efficiently?

55

Complexity
At most nW iterations
A negative cycle in O(n3) time by Floyd Warshall
Total running time O(n4W)
Can choose minimum mean cycle to avoid W

56

Comments by LeongHW:
Skip next few slides on Augmenting Path Algorithm
(Anyone wants to do this for reading assignment?)

57

Augmenting Path Algorithm

Orient the edges (edges in M go up, others go down)

edges in M having positive weights, otherwise negative weights

Find a shortest path M-augmenting path at each step


58

Augmenting Path Algorithm

Theorem: Each matching is an optimal k-matching.

Let the current matching be M


Let the shortest M-augmenting path be P
Let N be a matching of size |M|+1

59

Complexity
At most n iterations
A shortest path in O(nm) time by Bellman Ford
Total running time O(n2m)
Can be speeded up by using Dijkstra: O(m + n log n)
Total running time O(nm + n2log n)
Kuhn (based on proof by Egervary) Hungarian method
60

Primal Dual Algorithm


What is an upper bound of maximum weighted matching?
What is a generalization of minimum vertex cover?

weighted vertex cover:

Minimum weighted vertex cover Maximum weighted matching


61

Primal Dual Algorithm


Minimum weighted vertex cover Maximum weighted matching

Primal Dual (Overview)


Maintain a weighted matching M
Maintain a weighted vertex cover y
Either increase M or decrease y until they are equal.

62

Primal Dual Algorithm


Minimum weighted vertex cover Maximum weighted matching

1. Consider the subgraph formed by tight edges (the equality subgraph).


2. If there is a tight perfect matching, done.
3. Otherwise, there is a vertex cover.
4. Decrease weighted cover to create more tight edges, and repeat.
Detailed algorithm will be covered later
(after LP Primal-Dual algorithms)

63

Complexity
Augment at most n times, each O(m)
Decrease weighted cover at most m times,
each O(m)
Total running time: O(m2) = O(n4)
Egervary, Hungarian method
History: The algorithm was developed by Kuhn who based it
on work of Egervary [1931], (latent work of D. Konig and J.
Egervary) and was given the name Hungarian method.
See [Schr02]-Ch17 for more details.
64

Quick Summary

1. First algorithm, negative cycle, useful idea to consider symmetric difference


2. Augmenting path algorithm, useful algorithmic technique
3. Primal dual algorithm, a very general framework
1. Why primal dual?
2. How to come up with weighted vertex cover?
3. Reduction from weighted case to unweighted case

65

Faster Algorithms

66

Application of Bipartite Matching

Isaac

Marking

Jerry

Tutorials

Darek

Solutions

Tom

Newsgroup

Job Assignment Problem:


Each person is willing to do a subset of jobs.
Can you find an assignment so that all jobs are taken care of?
Ad-auction, Google, online matching
Fingerprint matching

67

Reading/Presentation Topics:

68

You might also like