Gale Shapley Algorithm
-
Upload
andrei-ilisei -
Category
Documents
-
view
236 -
download
0
Transcript of Gale Shapley Algorithm
-
8/13/2019 Gale Shapley Algorithm
1/18
Gale-Shapley Algorithm
- for Stable Matching -
-
8/13/2019 Gale Shapley Algorithm
2/18
The problem
Scenario: N couples want to adopt N kids. Each couple lists all the kids in the order of their preference. Each kid lists all the couples in the order of their preference. A couple cannot have 2 different kids on the same level of preference. A kid cannot have 2 different couples on the same level of preference.
What we have to do: Assign each couple a kid such that you a stable matching is achieved.
-
8/13/2019 Gale Shapley Algorithm
3/18
Unstable Match
Couple A Kid A Couple B
-
8/13/2019 Gale Shapley Algorithm
4/18
Unstable Match
Couple A Kid A Couple B
-
8/13/2019 Gale Shapley Algorithm
5/18
Unstable Match
Couple A Kid A Couple B
-
8/13/2019 Gale Shapley Algorithm
6/18
What is a stable match?
A couple C and a child K are in a stable mat least one of the following conditions is me C prefers Kover any other child that can be adopted
C prefers a different kid K1over Kbut K1is alreadyby C1and he prefers C1 overC.
In the result match there must not be a kid acouple that would prefer each other over thecurrent matches.
-
8/13/2019 Gale Shapley Algorithm
7/18
How do we match the kids and the cou
Using Gale-Shapley Algorithm: Developed by Lloyd Shapley and David Gale.
Published 1962.
Also known as Algorithm of Happiness.
-
8/13/2019 Gale Shapley Algorithm
8/18
How does it work?
1stpreference 2ndpreference 3rdpreference 4
Couple 1 Kid 3 Kid 2 Kid 4 K
Couple 2 Kid 2 Kid 4 Kid 1 K
Couple 3 Kid 2 Kid 3 Kid 4 K
Couple 4 Kid 4 Kid 1 Kid 3 K
1stpreference 2ndpreference 3rdpreference 4
Kid 1 Couple 2 Couple 3 Couple 1 C
Kid 2 Couple 1 Couple 2 Couple 3 C
Kid 3 Couple 3 Couple 1 Couple 3 C
Kid 4 Couple 4 Couple 2 Couple 1 C
Couple 2
Couple 3
Couple 4
Couple 1
-
8/13/2019 Gale Shapley Algorithm
9/18
How does it work?
1stpreference 2ndpreference 3rdpreference 4
Couple 1 Kid 3 Kid 2 Kid 4 K
Couple 2 Kid 2 Kid 4 Kid 1 K
Couple 3 Kid 2 Kid 3 Kid 4 K
Couple 4 Kid 4 Kid 1 Kid 3 K
1stpreference 2ndpreference 3rdpreference 4
Kid 1 Couple 2 Couple 3 Couple 1 C
Kid 2 Couple 1 Couple 2 Couple 3 C
Kid 3 Couple 3 Couple 1 Couple 3 C
Kid 4 Couple 4 Couple 2 Couple 1 C
Couple 2
Couple 3
Couple 4
Couple 1 Kid 3
-
8/13/2019 Gale Shapley Algorithm
10/18
How does it work?
1stpreference 2ndpreference 3rdpreference 4
Couple 1 Kid 3 Kid 2 Kid 4 K
Couple 2 Kid 2 Kid 4 Kid 1 K
Couple 3 Kid 2 Kid 3 Kid 4 K
Couple 4 Kid 4 Kid 1 Kid 3 K
1stpreference 2ndpreference 3rdpreference 4
Kid 1 Couple 2 Couple 3 Couple 1 C
Kid 2 Couple 1 Couple 2 Couple 3 C
Kid 3 Couple 3 Couple 1 Couple 3 C
Kid 4 Couple 4 Couple 2 Couple 1 C
Couple 2 Kid 2
Couple 3
Couple 4
Couple 1 Kid 3
-
8/13/2019 Gale Shapley Algorithm
11/18
How does it work?
1stpreference 2ndpreference 3rdpreference 4
Couple 1 Kid 3 Kid 2 Kid 4 K
Couple 2 Kid 2 Kid 4 Kid 1 K
Couple 3 Kid 2 Kid 3 Kid 4 K
Couple 4 Kid 4 Kid 1 Kid 3 K
1stpreference 2ndpreference 3rdpreference 4
Kid 1 Couple 2 Couple 3 Couple 1 C
Kid 2 Couple 1 Couple 2 Couple 3 C
Kid 3 Couple 3 Couple 1 Couple 3 C
Kid 4 Couple 4 Couple 2 Couple 1 C
Couple 2 Kid 2
Couple 3 Kid 3
Couple 4
Couple 1 Kid 3
-
8/13/2019 Gale Shapley Algorithm
12/18
How does it work?
1stpreference 2ndpreference 3rdpreference 4
Couple 1 Kid 3 Kid 2 Kid 4 K
Couple 2 Kid 2 Kid 4 Kid 1 K
Couple 3 Kid 2 Kid 3 Kid 4 K
Couple 4 Kid 4 Kid 1 Kid 3 K
1stpreference 2ndpreference 3rdpreference 4
Kid 1 Couple 2 Couple 3 Couple 1 C
Kid 2 Couple 1 Couple 2 Couple 3 C
Kid 3 Couple 3 Couple 1 Couple 3 C
Kid 4 Couple 4 Couple 2 Couple 1 C
Couple 2 Kid 2
Couple 3 Kid 3
Couple 4
Couple 1 Kid 3 Kid 2
-
8/13/2019 Gale Shapley Algorithm
13/18
How does it work?
1stpreference 2ndpreference 3rdpreference 4
Couple 1 Kid 3 Kid 2 Kid 4 K
Couple 2 Kid 2 Kid 4 Kid 1 K
Couple 3 Kid 2 Kid 3 Kid 4 K
Couple 4 Kid 4 Kid 1 Kid 3 K
1stpreference 2ndpreference 3rdpreference 4
Kid 1 Couple 2 Couple 3 Couple 1 C
Kid 2 Couple 1 Couple 2 Couple 3 C
Kid 3 Couple 3 Couple 1 Couple 3 C
Kid 4 Couple 4 Couple 2 Couple 1 C
Couple 2 Kid 2 Kid 4
Couple 3 Kid 3
Couple 4
Couple 1 Kid 3 Kid 2
-
8/13/2019 Gale Shapley Algorithm
14/18
How does it work?
1stpreference 2ndpreference 3rdpreference 4
Couple 1 Kid 3 Kid 2 Kid 4 K
Couple 2 Kid 2 Kid 4 Kid 1 K
Couple 3 Kid 2 Kid 3 Kid 4 K
Couple 4 Kid 4 Kid 1 Kid 3 K
1stpreference 2ndpreference 3rdpreference 4
Kid 1 Couple 2 Couple 3 Couple 1 C
Kid 2 Couple 1 Couple 2 Couple 3 C
Kid 3 Couple 3 Couple 1 Couple 3 C
Kid 4 Couple 4 Couple 2 Couple 1 C
Couple 2 Kid 2 Kid 4
Couple 3 Kid 3
Couple 4 Kid 4
Couple 1 Kid 3 Kid 2
-
8/13/2019 Gale Shapley Algorithm
15/18
How does it work?
1stpreference 2ndpreference 3rdpreference 4
Couple 1 Kid 3 Kid 2 Kid 4 K
Couple 2 Kid 2 Kid 4 Kid 1 K
Couple 3 Kid 2 Kid 3 Kid 4 K
Couple 4 Kid 4 Kid 1 Kid 3 K
1stpreference 2ndpreference 3rdpreference 4
Kid 1 Couple 2 Couple 3 Couple 1 C
Kid 2 Couple 1 Couple 2 Couple 3 C
Kid 3 Couple 3 Couple 1 Couple 3 C
Kid 4 Couple 4 Couple 2 Couple 1 C
Couple 2 Kid 2 Kid 4 Kid 1
Couple 3 Kid 3
Couple 4 Kid 4
Couple 1 Kid 3 Kid 2
-
8/13/2019 Gale Shapley Algorithm
16/18
The algorithm
Let Couplesbe the set of couples and Kidsbe the set of kids;
functionstableMatching{
Initialize all cCouples and kKids tofree
whilechildless couple Cwho still has a kid K to propose for adoption
{
K = C's highest ranked such child to whom he has not yet proposed
ifC is not adopted
(K, C) become a family
elsesome pair (C', K) already exists
ifK prefers C to C
(C, K) become a family
K' becomesfree for adoption
else
(C', K) remain together
}
}
-
8/13/2019 Gale Shapley Algorithm
17/18
Running Time
Suppose we have N couples and N kids.
At each step from start to finish a couple maproposal to a kid.
Each proposal takes constant time O(1).
Since there are N couples and N kids => maxn*n possible proposals (a couple does not prtwice to the same kid).
Total time complexity is O(n*n).
-
8/13/2019 Gale Shapley Algorithm
18/18
Other Application
Matching employees with employers.
Matching men and women on a Dating webs
Etc.