Professional Documents
Culture Documents
Lecture 8: Oct 7
This Lecture
Graph matching is an important problem in graph theory.
It has many applications and is the basis of more advanced problems.
In the last lecture we consider the stable matching problem.
Today we will study the bipartite matching problem.
Problem and Halls theorem
Reductions and Applications
Proof of Halls theorem (optional)
Bipartite Matching
The Bipartite Marriage Problem:
There are n boys and n girls.
For each pair, it is either compatible or not.
Goal: to find the maximum number of compatible pairs.
Bipartite Matching
The Bipartite Marriage Problem:
There are n boys and n girls.
For each pair, it is either compatible or not.
Goal: to find the maximum number of compatible pairs.
Graph Problem
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.
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 (i.e. of degree 1).
The perfect matching problem: Is there a perfect matching?
Once you know how to solve perfect matching, you can also do maximum matching.
Examples
Which bipartite graphs have a perfect matching?
Examples
Which bipartite graphs have a perfect matching?
Examples
Which bipartite graphs have a perfect matching?
Some Notation
N(S)
S
A Necessary Condition
N(S)
S
If |N(S)| < |S| for some S, then it is impossible to have a perfect matching.
In other words, in order to have a perfect matching,
a necessary condition is that for all subsets S on one side,
we must have |N(S)| >= |S|.
Halls Theorem
Is it the only situation when a bipartite graph does not have a perfect matching?
Hall said yes in 1935.
This Lecture
Leo
Marking
Hackson
Tutorials
Jesse
Solutions
Tom
Newsgroup
column
number
column
3
number
N(S)
column
number
The bipartite graphs coming from Latin square are always regular because:
Suppose there are k unfilled rows.
Then each column has n-k distinct numbers, and so connected to k numbers.
Each number appeared in n-k columns above, and so connected to k columns.
So, the bipartite graph is k-regular, and thus always has a perfect matching.
This is to find the maximum number of edge disjoint paths between two nodes.
This can be applied to find the maximum amount of information one can send
from one point in the network to another point in the network.
This problem can be reduced to the bipartite matching problem (CSC 3160).
This Lecture
N(S)
G2
N(S)
S
Find a perfect matching in G2 by induction.
T
G2
|N(T)
G 2| >= |T|.
G2|
N(S)
S, N(T) is contained in G 2.
G2| = |N(T)| >= |T|.
T
G2
|N(T)
G2|
N(S)
S
Find a perfect matching in G2 by induction.
Now what?
N(T)
G1
N(S)
T, by assumption, |N(S
G1| = |N(S
T)| >= |S
T) N(S)| >= |S
T) N(S)| >= |S
N(T)
N(S
|S|=|N(S)|
G1 (red)
T) (green)
N(S)
G2
N(S)
S
Find a perfect matching in G2 by induction.