1 Weighted Bipartite Matching Lecture 4: Jan 18. 2 Weighted Bipartite Matching Given a weighted...

Preview:

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.

Recommended