maximum - Department of Computer Science

Weighted Matchings &
Applications in Scientific Computing
Mahantesh Halappanavar
Department of Computer Science
Joint Work with: Florin Dobrian and Alex Pothen
11 JULY 2007
Graduate Student Tech Lunch
ODU
Contents:






Motivation
Matchings
Maximum Cardinality Matching
Maximum Edge-Wt Matching
Maximum Vertex-Wt Matching
Approximation Algorithms
A Real-life Problem

National Resident Matching Program



Provides uniform date of appointment to positions
in graduate medical education (GME) in the United
States
Positions Offered*: 24,685 Applicants*: 34,975
Match Rate*: 91.9% (2007)
* http://www.nrmp.org/
A Stable Marriage?

Residents prefer



Hospitals prefer




R1: H1 > H2 > H3
R2: H2 > H3 > H4
H1: R1 > R2 > R3
H2: R2 > R3 > R4
Ideally R1 is matched to H1
Marriage is unstable if:


Neither gets a preferred match.
Example: R1 is matched to H2
R1
H1
R2
H2
Another Real-life Problem

Google Ad-Word Auction:
3
2
5
1
4
What is the Big Deal?

Millions of Advertisers
Billions of Key-words
Probability of a “Click”
Split-second responses (Online)
Daily budgets

Solution: Approximation !!




Contents:






Motivation
Matchings
Maximum Cardinality Matching
Maximum Edge-Wt Matching
Maximum Vertex-Wt Matching
Approximation Algorithms
What is a Graph?

A graph G=(V,E) is a triple:




A set of vertices V,
A set of edges E, and
A relationship that associates each edge
with two vertices.
Types: Bipartite and Nonbipartite
R1
H1
R2
H2
V1
V2
V3
What is a Matching?


Given a graph G=(V,E), a matching M is
a subset of edges such that no two
edges are incident on the same vertex.
Types:



Maximum Cardinality,
Maximum Edge-weighted, and
Maximum Vertex-weighted
R1
H1
R2
H2
V1
V2
V3
Classification
How to Search a Graph?

Basic Data Structures:

A Pseudo-Queue


No duplicates (move to the back of Q)
A Pseudo-Stack

No duplicates (move to the top of S)
Breadth-first Search (Queue)
Depth-first Search (Stack)
How to Compute a Matching?

Alternating (a & b) / Augmenting (c) paths:

Symmetric difference:
How does this work?



Lemma 1: Consider a graph G=(V,E), and a matching
M. Let P be an augmenting path in G with respect to
M. The symmetric difference, M’=MP, is a matching
of cardinality (|M|+1).
Lemma 2: Suppose that in a graph G=(V,E) there
exist no augmenting path starting from an unmatched
vertex uV with respect to a matching M. Let P be an
augmenting path with endpoints two other unmatched
vertices v and w, then there is no augmenting path
from u with respect to MP either.
Lemma 3: A matching M in a graph G is a maximum
matching if and only if there exist no M-augmenting
paths in G.
How to Find Augmenting Paths?
1. Single-Source Single-Path
…Finding Augmenting Paths?
2. Multiple-Source Single-Path
…Finding Augmenting Paths?
3. Multiple-Source Multiple-Path
Nonbipartite Graphs?
Jack Edmonds*
"Jack Edmonds has been one of the creators
of the field of combinatorial optimization and
polyhedral combinatorics. His 1965 paper
'Paths, Trees, and Flowers' was one of the
first papers to suggest the possibility of
establishing a mathematical theory of
efficient combinatorial algorithms . . . " [from
the award citation of the 1985 John von
Neumann Theory Prize].
Reading: "A Glimpse of Heaven" taken from
History of Mathematical Programming: A
Collection of Personal Reminiscences.
* www.cs.brown.edu/courses/cs250/culture.html
“Eureka, you shrink!”
What is hard?
Cardinality
Weighted
Bipartite
Nonbipartite
O ( n m)
O ( n m)
O(n(m  n log n)) O(n(m  n log n))
Contents:






Motivation
Matchings
Maximum Cardinality Matching
Maximum Edge-Wt Matching
Maximum Vertex-Wt Matching
Approximation Algorithms
Basic Algorithm for MCM
Advanced Algorithm for MCM
A Survey of Algorithms for MCM
Contents:






Motivation
Matchings
Maximum Cardinality Matching
Maximum Edge-Wt Matching
Maximum Vertex-Wt Matching
Approximation Algorithms
Primal-dual Formulation for MEM

Intuition:
Primal-dual Formulation for MEM
An Algorithm for MEM
Power of Data Structures
Weighted Matching for Bipartite Graphs
Update Variables
Simple Vectors
Binary Heaps
2
O(n )
O(m log n)
Fibonacci Heaps
O(m  n log n)
n | V |, m | E |
A Survey of Algorithms for MEM
Contents:






Motivation
Matchings
Maximum Cardinality Matching
Maximum Edge-Wt Matching
Maximum Vertex-Wt Matching
Approximation Algorithms
Why Vertex-weighted?
The Sparsest-Basis Problem
How does this work?
Decomposition of MVM
Algorithm: Global-Optimal
Algorithm: Local-Optimal
Our Contributions:
Contents:






Motivation
Matchings
Maximum Cardinality Matching
Maximum Edge-Wt Matching
Maximum Vertex-Wt Matching
Approximation Algorithms
Approximation Algorithms:
Edge-weighted
Vertex-weighted
1: Global-Max
2: LAM
3: Path-growing
A survey of Approx MEM
Approximation Algorithms:
Edge-weighted
Vertex-weighted
AMVM: Global-Half
AMVM: Local-Half
AMVM: Global-Two-Third
AMVM: Local-Two-Third
Our contributions:
Thank You !