CSE 421 Section 1
Stable Matching
Administrivia & Introductions
Homework
Announcements & Reminders
Stable Matching
Stable Matching
Gale-Shapley Algorithm
Algorithm to find a stable matching:
Initially all 𝑟 in 𝑅 and ℎ in 𝐻 are free
while there is a free 𝑟
Let ℎ be highest on 𝑟’s list that 𝑟 has not proposed to
if ℎ is free
match (𝑟,ℎ)
else //ℎ is not free
Let 𝑟′ be the current match of ℎ
if ℎ prefers 𝑟 to 𝑟′
unmatch (𝑟′,ℎ)
match (𝑟,ℎ)
Problem 1 – Gale-Shapley
Consider the following stable matching instance:
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1 chooses h3 (r1, h3)
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1 chooses h3 (r1, h3)
r2 chooses h2 (r1, h3), (r2, h2)
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1 chooses h3 (r1, h3)
r2 chooses h2 (r1, h3), (r2, h2)
r3 chooses h2 (r1, h3), (r2, h2), (r3, h2)
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1 chooses h3 (r1, h3)
r2 chooses h2 (r1, h3), (r2, h2)
r3 chooses h2 (r1, h3), (r2, h2), (r3, h2)
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1 chooses h3 (r1, h3)
r2 chooses h2 (r1, h3), (r2, h2)
r3 chooses h2 (r1, h3), (r2, h2), (r3, h2)
r2 chooses h1 (r1, h3), (r2, h1), (r3, h2)
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1 chooses h3 (r1, h3)
r2 chooses h2 (r1, h3), (r2, h2)
r3 chooses h2 (r1, h3), (r2, h2), (r3, h2)
r2 chooses h1 (r1, h3), (r2, h1), (r3, h2)
r4 chooses h3 (r1, h3), (r2, h1), (r3, h2), (r4, h3)
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1 chooses h3 (r1, h3)
r2 chooses h2 (r1, h3), (r2, h2)
r3 chooses h2 (r1, h3), (r2, h2), (r3, h2)
r2 chooses h1 (r1, h3), (r2, h1), (r3, h2)
r4 chooses h3 (r1, h3), (r2, h1), (r3, h2), (r4, h3)
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1 chooses h3 (r1, h3)
r2 chooses h2 (r1, h3), (r2, h2)
r3 chooses h2 (r1, h3), (r2, h2), (r3, h2)
r2 chooses h1 (r1, h3), (r2, h1), (r3, h2)
r4 chooses h3 (r1, h3), (r2, h1), (r3, h2), (r4, h3)
r4 chooses h4 (r1, h3), (r2, h1), (r3, h2), (r4, h4)
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1 chooses h3 (r1, h3)
r2 chooses h2 (r1, h3), (r2, h2)
r3 chooses h2 (r1, h3), (r2, h2), (r3, h2)
r2 chooses h1 (r1, h3), (r2, h1), (r3, h2)
r4 chooses h3 (r1, h3), (r2, h1), (r3, h2), (r4, h3)
r4 chooses h4 (r1, h3), (r2, h1), (r3, h2), (r4, h4)
(r1, h3), (r2, h1), (r3, h2), (r4, h4)
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Work on parts b and c of this problem with the people around you, and then we’ll go over it together!
Problem 1 – Gale-Shapley
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
The steps of the Gale-Shapley Algorithm with the rider with highest index proposing first:
r4 chooses h3 (r4, h3)
r3 chooses h2 (r3, h2),(r4, h3)
r2 chooses h2 (r3, h2),(r4, h3)
r2 chooses h1 (r2, h1),(r3, h2),(r4, h3)
r1 chooses h3 (r1, h3),(r2, h1),(r3, h2)
r4 chooses h4 (r1, h3),(r2, h1),(r3, h2),(r4, h4)
We ended up with the same result!
Problem 1 – Gale-Shapley
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
Problem 1 – Gale-Shapley
r1: h3, h1, h2, h4
r2: h2, h1, h4, h3
r3: h2, h3, h1, h4
r4: h3, h4, h1, h2
h1: r4, r1, r3, r2
h2: r1, r3, r2, r4
h3: r1, r3, r4, r2
h4: r3, r1, r2, r4
The steps of the Gale-Shapley Algorithm with horses proposing:
h1 chooses r4 (r4, h1)
h2 chooses r1 (r1, h2),(r4, h1)
h3 chooses r1 (r1, h3),(r4, h1)
h2 chooses r3 (r1, h3),(r3, h2),(r4, h1)
h4 chooses r3 (r1, h3),(r3, h2),(r4, h1)
h4 chooses r1 (r1, h3),(r3, h2),(r4, h1)
h4 chooses r2 (r1, h3),(r2, h4),(r3, h2),(r4, h1)
No, the result is different when we have the horses propose as opposed to the riders.
Induction
Induction
Induction Template
Problem 3 – Induction Review
Problem 3 – Induction Review
Work on this problem with the people around you, and then we’ll go over it together!
Problem 3 – Induction Review
Problem 3 – Induction Review
KEY Induction Concept
Problem 3 – Induction Review
Work on this problem with the people around you, and then we’ll go over it together!
Problem 3 – Induction Review
Problem 3 – Induction Review
That’s All, Folks!
Thanks for coming to section this week!
Any questions?