Lecture11 Matching3 S
Lecture11 Matching3 S
Indranil Chakraborty
1 / 15
Question
2 / 15
One-To-Many Matching with Two-Sided Preferences
3 / 15
The Old Ways
4 / 15
Resident Matching (College Matching)
Framework
R: Set of residents
r ∈ R: A typical resident (i.e., doctor)
H: Set of hospitals
h ∈ H: A typical hospital
qh : Capacity of hospital h
5 / 15
Example
H = {h1 , h2 , h3 } R = {r1 , r2 , r3 , r4 , r5 , r6 , r7 , r8 , r9 }
qh1 = 3, qh2 = 4, qh3 = 2
Preferences
h1 : r1 − r3 − r2 − r4 − r5 − r6 − r9 − r8 − r7
h2 : r2 − r3 − r1 − r4 − r6 − r5 − r9 − r7 − r8
h3 : r1 − r2 − r3 − r4 − r6 − r5 − r9 − r8 − r7
r1 : h1 − h2 − h3 r2 : h1 − h3 − h2
r3 : h2 − h3 − h1 r4 : h1 − h3 − h2
r5 : h1 − h2 − h3 r6 : h3 − h1 − h2
r7 : h2 − h1 − h3 r8 : h1 − h3 − h2
r9 : h1 − h3 − h2
6 / 15
Priority Matching Mechanism
7 / 15
Priority matching algorithm
qh1 = 3, qh2 = 4, qh3 = 2
h1 : r1 − r3 − r2 − r4 − r5 − r6 − r9 − r8 − r7
h2 : r2 − r3 − r1 − r4 − r6 − r5 − r9 − r7 − r8
h3 : r1 − r2 − r3 − r4 − r6 − r5 − r9 − r8 − r7
r1 : h1 − h2 − h3 r2 : h1 − h3 − h2
r3 : h2 − h3 − h1 r4 : h1 − h3 − h2
r5 : h1 − h2 − h3 r6 : h3 − h1 − h2
r7 : h2 − h1 − h3 r8 : h1 − h3 − h2
r9 : h1 − h3 − h2
Round 1.
Round 2.
Round 3.
Solution:
8 / 15
Problem with Priority Matching
9 / 15
Problem with Priority Matching
Priority Matching Mechanism is not strategy-proof
Example
r1 : h2 − h1 − h3
r2 : h1 − h2 − h3
r3 : h1 − h2 − h3
h1 : r1 − r3 − r2
h2 : r2 − r1 − r3
h3 : r3 − r1 − r2
What happens when residents report truthfully?
Round 1.
Round 2.
Solution:
What happens when r2 reports r2 : h2 − h1 − h3 , instead?
Round 1.
Round 3.
Solution:
10 / 15
DA for Residency Matching
Also useful for college matching clearing house (not used in the
US, yet)
Set of residents R and hospitals H
Many-to-one matching:
each resident can go to only one hospital
but each hospital h can accept qh residents
Each resident r has strict preferences over hospitals H
Each hospital h has strict preferences over residents R
11 / 15
DA for Residency Matching
12 / 15
Example
H = {h1 , h2 , h3 } R = {r1 , r2 , r3 , r4 , r5 , r6 , r7 , r8 , r9 }
qh1 = 3, qh2 = 4, qh3 = 2
Preferences
h1 : r1 − r3 − r2 − r4 − r5 − r6 − r9 − r8 − r7
h2 : r2 − r3 − r1 − r4 − r6 − r5 − r9 − r7 − r8
h3 : r1 − r2 − r3 − r4 − r6 − r5 − r9 − r8 − r7
r1 : h1 − h2 − h3 r2 : h1 − h3 − h2
r3 : h2 − h3 − h1 r4 : h1 − h3 − h2
r5 : h1 − h2 − h3 r6 : h3 − h1 − h2
r7 : h2 − h1 − h3 r8 : h1 − h3 − h2
r9 : h1 − h3 − h2
13 / 15
Example
qh1 = 3, qh2 = 4, qh3 = 2
h1 : r1 − r3 − r2 − r4 − r5 − r6 − r9 − r8 − r7
h2 : r2 − r3 − r1 − r4 − r6 − r5 − r9 − r7 − r8
h3 : r1 − r2 − r3 − r4 − r6 − r5 − r9 − r8 − r7
r1 : h1 − h2 − h3 r2 : h1 − h3 − h2 r3 : h2 − h3 − h1
r4 : h1 − h3 − h2 r5 : h1 − h2 − h3 r6 : h3 − h1 − h2
r7 : h2 − h1 − h3 r8 : h1 − h3 − h2 r9 : h1 − h3 − h2
Round 1:
Round 2:
Round 3:
Note: This outcome is the same as the outcome of the example for
Priority Matching, but they are often not the same
14 / 15
Properties of DA Algorithm
The properties of DA algorithm continue to hold for this setting,
too
15 / 15