Upload
joshua-mcbride
View
244
Download
1
Tags:
Embed Size (px)
Citation preview
1
Weighted Bipartite Matching
Lecture 4: Jan 18
2
Weighted Bipartite Matching
Given a weighted bipartite graph,
find a matching with maximum total weight.
Not necessarily a maximum size matching.
A B
3
Today’s Plan
Three algorithms
• negative cycle algorithm
• primal dual algorithm
• augmenting path algorithm
Applications
4
First Algorithm
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*
Find maximum weight perfect matching
5
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
6
First Algorithm
Key: M is maximum no negative cycle
How to find efficiently?
7
Complexity
At most nW iterations
A negative cycle in time by Floyd Warshall
Total running time
Can choose minimum mean cycle to avoid W
8
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
9
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
10
Complexity
At most n iterations
A shortest path in time by Bellman Ford
Total running time
Can be speeded up by using Dijkstra O(m + nlogn)
Kuhn, Hungarian method
11
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
12
Primal Dual Algorithm
Minimum weighted vertex cover >= Maximum weighted matching
Primal Dual
• Maintain a weighted matching M
• Maintain a weighted vertex cover y
• Either increase M or decrease y until they are equal.
13
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.
14
Complexity
Augment at most n times, each O(m)
Decrease weighted cover at most m times, each O(m)
Total running time
Egrevary, Hungarian method
15
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
16
Faster Algorithms
17
Bonus Question 2
(40%) Find a maximum weighted k-matching which
can be extended to a perfect matching.
Relation to red-blue matching?
18
Application of Bipartite Matching
Jerry
Marking
Darek TomIsaac
Tutorials Solutions 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
19
Application of Bipartite Matching
With Hall’s theorem, now you can determine exactly
when a partial chessboard can be filled with dominos.
20
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.
21
Application of Bipartite Matching
Now suppose you are given a partial Latin Square.
Can you always extend it to a Latin Square?
With Hall’s theorem, you can prove that the answer is yes.