Title: Pareto Optimality in House Allocation Problems
1Pareto Optimality in House Allocation Problems
David Abraham Computer Science Department Carnegie
-Mellon University
Katarína Cechlárová Institute of Mathematics PJ
Safárik University in Košice
- David Manlove
- Department of Computing Science
- University of Glasgow
Kurt Mehlhorn Max-Planck-Institut fur
Informatik Saarbrucken
Supported by Royal Society of Edinburgh/Scottish
Executive Personal Research Fellowship and
Engineering and Physical Sciences Research
Council grant GR/R84597/01
2House Allocation problem (HA)
?
- Set of agents Aa1, a2, , ar
- Set of houses Hh1, h2, , hs
- Each agent ai has an acceptable set of houses Ai
? H - ai ranks Ai in strict order of preference
- Example
- a1 h2 h1
- a2 h3 h4 h2
- a3 h4 h3
- a4 h1 h4
- Let nrs and let mtotal length of preference
lists
a1 finds h1 and h2 acceptable
a3 prefers h4 to h3
3Applications
- House allocation context
- Large-scale residence exchange in Chinese housing
markets - Yuan, 1996
- Allocation of campus housing in American
universities, such as Carnegie-Mellon, Rochester
and Stanford - Abdulkadiroglu and Sönmez, 1998
- Other matching problems
- US Naval Academy students to naval officer
positions - Roth and Sotomayor, 1990
- Scottish Executive Teacher Induction Scheme
- Assigning students to projects
4The underlying graph
- Weighted bipartite graph G(V,E)
- Vertex set VA?H
- Edge set ai, hj ?E if and only if ai finds
hj acceptable - Weight of edge ai, hj is rank of hj in ais
preference list - Example
- a1 h2 h1
- a2 h3 h4 h2
- a3 h4 h3
- a4 h1 h4
a1
?
h1
2
1
a2
h2
?
3
1
a3
2
h3
?
2
1
1
a4
h4
?
2
5The underlying graph
- Weighted bipartite graph G(V,E)
- Vertex set VA?H
- Edge set ai, hj ?E if and only if ai finds
hj acceptable - Weight of edge ai, hj is rank of hj in ais
preference list - Example
- a1 h2 h1
- a2 h3 h4 h2
- a3 h4 h3
- a4 h1 h4
a1
?
h1
2
M(a1)h1
1
a2
h2
?
3
1
a3
2
h3
?
2
1
1
M(a1, h1), (a2, h4), (a3, h3)
a4
h4
?
2
6The underlying graph
- Weighted bipartite graph G(V,E)
- Vertex set VA?H
- Edge set ai, hj ?E if and only if ai finds
hj acceptable - Weight of edge ai, hj is rank of hj in ais
preference list - Example
- a1 h2 h1
- a2 h3 h4 h2
- a3 h4 h3
- a4 h1 h4
a1
?
h1
2
1
a2
h2
?
3
1
a3
2
h3
?
2
1
1
M(a1, h2), (a2, h3), (a3, h4), (a4, h1)
a4
h4
?
2
7Pareto optimal matchings
- A matching M1 is Pareto optimal if there is no
matching M2 such that - Some agent is better off in M2 than in M1
- No agent is worse off in M2 than in M1
- Example
- M1 is not Pareto optimal since a1 and a2 could
swap houses each would be better off - M2 is Pareto optimal
M1
M2
8Testing for Pareto optimality
- A matching M is maximal if there is no agent a
and house h, each unmatched in M, such that a
finds h acceptable - A matching M is trade-in-free if there is no
matched agent a and unmatched house h such that a
prefers h to M(a) - A matching M is coalition-free if there is no
coalition, i.e. a sequence of matched agents ?a0
,a1 ,,ar-1? such that ai prefers M(ai) to
M(ai1) (0?i?r-1) - a1 h2 h1
- a2 h3 h4 h2
- a3 h4 h3
- a4 h1 h4
- Proposition M is Pareto optimal if and only if M
is maximal, trade-in-free and coalition-free
M is not maximal due to a3 and h3
9Testing for Pareto optimality
- A matching M is maximal if there is no agent a
and house h, each unmatched in M, such that a
finds h acceptable - A matching M is trade-in-free if there is no
matched agent a and unmatched house h such that a
prefers h to M(a) - A matching M is coalition-free if there is no
coalition, i.e. a sequence of matched agents ?a0
,a1 ,,ar-1? such that ai prefers M(ai) to
M(ai1) (0?i?r-1) - a1 h2 h1
- a2 h3 h4 h2
- a3 h4 h3
- a4 h1 h4
- Proposition M is Pareto optimal if and only if M
is maximal, trade-in-free and coalition-free
M is not trade-in-free due to a2 and h3
10Testing for Pareto optimality
- A matching M is maximal if there is no agent a
and house h, each unmatched in M, such that a
finds h acceptable - A matching M is trade-in-free if there is no
matched agent a and unmatched house h such that a
prefers h to M(a) - A matching M is coalition-free if there is no
coalition, i.e. a sequence of matched agents ?a0
,a1 ,,ar-1? such that ai prefers M(ai1) to
M(ai) (0?i?r-1) - a1 h2 h1
- a2 h3 h4 h2
- a3 h4 h3
- a4 h1 h4
- Proposition M is Pareto optimal if and only if M
is maximal, trade-in-free and coalition-free
a1
h1
M is not coalition-free due to ?a1, a2, a4?
a2
h2
a3
h3
a4
h4
11Testing for Pareto optimality
- A matching M is maximal if there is no agent a
and house h, each unmatched in M, such that a
finds h acceptable - A matching M is trade-in-free if there is no
matched agent a and unmatched house h such that a
prefers h to M(a) - A matching M is coalition-free if there is no
coalition, i.e. a sequence of matched agents ?a0
,a1 ,,ar-1? such that ai prefers M(ai1) to
M(ai) (0 ? i ? r-1) - Lemma M is Pareto optimal if and only if M is
maximal, trade-in-free and coalition-free - Theorem we may check whether a given matching M
is Pareto optimal in O(m) time
12Finding a Pareto optimal matching
- Simple greedy algorithm, referred to as the
serial dictatorship mechanism by economists - for each agent a in turn
- if a has an unmatched house on his list
- match a to the most-preferred such house
- else
- report a as unmatched
- Theorem The serial dictatorship mechanism
constructs a Pareto optimal matching in O(m) time - Abdulkadiroglu and Sönmez, 1998
- Example
- a1 h1 h2 h3
- a2 h1 h2
- a3 h1 h2
M1(a1,h1), (a2,h2)
- a1 h1 h2 h3
- a2 h1 h2
- a3 h1 h2
M2(a1,h3), (a2,h2), (a3,h1)
13Related work
- Rank maximal matchings
- Matching M is rank maximal if, in M
- Maximum number of agents obtain their
first-choice house - Subject to (1), maximum number of agents obtain
their second-choice house - etc.
- Irving, Kavitha, Mehlhorn, Michail, Paluch, SODA
04 - A rank maximal matching is Pareto optimal, but
need not be of maximum size - Popular matchings
- Matching M is popular if there is no other
matching M such that - more agents prefer M to M than prefer M to M
- Abraham, Irving, Kavitha, Mehlhorn, SODA 05
- A popular matching is Pareto optimal, but need
not exist - Maximum cardinality minimum weight matchings
- Such a matching M may be found in G in O(?nmlog
n) time - Gabow and Tarjan, 1989
- M is a maximum Pareto optimal matching
14Faster algorithm for finding a maximum Pareto
optimal matching
- Three-phase algorithm with O(?nm) overall
complexity - Phase 1 O(?nm) time
- Find a maximum matching in G
- Classical O(?nm) augmenting path algorithm
- Hopcroft and Karp, 1973
- Phase 2 O(m) time
- Enforce trade-in-free property
- Phase 3 O(m) time
- Enforce coalition-free property
- Extension of Gales Top-Trading Cycles (TTC)
algorithm - Shapley and Scarf, 1974
15Phase 1
- a1 h4 h5 h3 h2 h1
- a2 h3 h4 h5 h9 h1 h2
- a3 h5 h4 h1 h2 h3
- a4 h3 h5 h4
- a5 h4 h3 h5
- a6 h2 h3 h5 h8 h6 h7 h1 h11 h4 h10
- a7 h1 h4 h3 h6 h7 h2 h10 h5 h11
- a8 h1 h5 h4 h3 h7 h6 h8
- a9 h4 h3 h5 h9
- Maximum matching M in G has size 8
- M must be maximal
- No guarantee that M is trade-in-free or
coalition-free
16Phase 1
- a1 h4 h5 h3 h2 h1
- a2 h3 h4 h5 h9 h1 h2
- a3 h5 h4 h1 h2 h3
- a4 h3 h5 h4
- a5 h4 h3 h5
- a6 h2 h3 h5 h8 h6 h7 h1 h11 h4 h10
- a7 h1 h4 h3 h6 h7 h2 h10 h5 h11
- a8 h1 h5 h4 h3 h7 h6 h8
- a9 h4 h3 h5 h9
- Maximum matching M in G has size 9
- M must be maximal
- No guarantee that M is trade-in-free or
coalition-free
17Phase 1
M not coalition-free
- a1 h4 h5 h3 h2 h1
- a2 h3 h4 h5 h9 h1 h2
- a3 h5 h4 h1 h2 h3
- a4 h3 h5 h4
- a5 h4 h3 h5
- a6 h2 h3 h5 h8 h6 h7 h1 h11 h4 h10
- a7 h1 h4 h3 h6 h7 h2 h10 h5 h11
- a8 h1 h5 h4 h3 h7 h6 h8
- a9 h4 h3 h5 h9
- Maximum matching M in G has size 9
- M must be maximal
- No guarantee that M is trade-in-free or
coalition-free
M not trade-in-free
18Phase 2 outline
- Repeatedly search for a matched agent a and an
unmatched house h such that a prefers h to
hM(a) - Promote a to h
- h is now unmatched
- Example
- a1 h4 h5 h3 h2 h1
- a2 h3 h4 h5 h9 h1 h2
- a3 h5 h4 h1 h2 h3
- a4 h3 h5 h4
- a5 h4 h3 h5
- a6 h2 h3 h5 h8 h6 h7 h1 h11 h4 h10
- a7 h1 h4 h3 h6 h7 h2 h10 h5 h11
- a8 h1 h5 h4 h3 h7 h6 h8
- a9 h4 h3 h5 h9
19Phase 2 outline
- Repeatedly search for a matched agent a and an
unmatched house h such that a prefers h to
hM(a) - Promote a to h
- h is now unmatched
- Example
- a1 h4 h5 h3 h2 h1
- a2 h3 h4 h5 h9 h1 h2
- a3 h5 h4 h1 h2 h3
- a4 h3 h5 h4
- a5 h4 h3 h5
- a6 h2 h3 h5 h8 h6 h7 h1 h11 h4 h10
- a7 h1 h4 h3 h6 h7 h2 h10 h5 h11
- a8 h1 h5 h4 h3 h7 h6 h8
- a9 h4 h3 h5 h9
20Phase 2 outline
- Repeatedly search for a matched agent a and an
unmatched house h such that a prefers h to
hM(a) - Promote a to h
- h is now unmatched
- Example
- a1 h4 h5 h3 h2 h1
- a2 h3 h4 h5 h9 h1 h2
- a3 h5 h4 h1 h2 h3
- a4 h3 h5 h4
- a5 h4 h3 h5
- a6 h2 h3 h5 h8 h6 h7 h1 h11 h4 h10
- a7 h1 h4 h3 h6 h7 h2 h10 h5 h11
- a8 h1 h5 h4 h3 h7 h6 h8
- a9 h4 h3 h5 h9
21Phase 2 outline
- Repeatedly search for a matched agent a and an
unmatched house h such that a prefers h to
hM(a) - Promote a to h
- h is now unmatched
- Example
- a1 h4 h5 h3 h2 h1
- a2 h3 h4 h5 h9 h1 h2
- a3 h5 h4 h1 h2 h3
- a4 h3 h5 h4
- a5 h4 h3 h5
- a6 h2 h3 h5 h8 h6 h7 h1 h11 h4 h10
- a7 h1 h4 h3 h6 h7 h2 h10 h5 h11
- a8 h1 h5 h4 h3 h7 h6 h8
- a9 h4 h3 h5 h9
22Phase 2 termination
- Once Phase 2 terminates, matching is
trade-in-free - With suitable data structures, Phase 2 is O(m)
- Coalitions may remain
- a1 h4 h5 h3 h2 h1
- a2 h3 h4 h5 h9 h1 h2
- a3 h5 h4 h1 h2 h3
- a4 h3 h5 h4
- a5 h4 h3 h5
- a6 h2 h3 h5 h8 h6 h7 h1 h11 h4 h10
- a7 h1 h4 h3 h6 h7 h2 h10 h5 h11
- a8 h1 h5 h4 h3 h7 h6 h8
- a9 h4 h3 h5 h9
23Phase 3 outline
- Build a path P of agents (represented by a stack)
- Each house is initially unlabelled
- Each agent a has a pointer p(a) pointing to M(a)
or the first unlabelled house on as preference
list (whichever comes first) - Keep a counter c(a) for each agent a (initially
c(a)0) - This represents the number of times a appears on
the stack - Outer loop iterates over each matched agent a
such that p(a)?M(a) - Initialise P to contain agent a
- Inner loop iterates while P is nonempty
- Pop an agent a from P
- If c(a)2 we have a coalition (CYCLE)
- Remove by popping the stack and label the houses
involved - Else if p(a)M(a) we reach a dead end
(BACKTRACK) - Label M(a)
- Else add a where p(a)M(a) to the path
(EXTEND) - Push a and a onto the stack
- Increment c(a)
24Phase 3 termination
- Once Phase 3 terminates, matching is
coalition-free
- a1 h4 h5 h3 h2 h1
- a2 h3 h4 h5 h9 h1 h2
- a3 h5 h4 h1 h2 h3
- a4 h3 h5 h4
- a5 h4 h3 h5
- a6 h2 h3 h5 h8 h6 h7 h1 h11 h4 h10
- a7 h1 h4 h3 h6 h7 h2 h10 h5 h11
- a8 h1 h5 h4 h3 h7 h6 h8
- a9 h4 h3 h5 h9
- Phase 3 is O(m)
- Theorem A maximum Pareto optimal matching can be
found in O(?nm) time
25Initial property rights
- Suppose A?A and each member of A owns a house
initially - For each agent a?A, denote this house by h(a)
- Truncate as list at h(a)
- Form matching M by pre-assigning a to h(a)
- Use Hopcroft-Karp algorithm to augment M to a
maximum cardinality matching M in restricted HA
instance - Then proceed with Phases 2 and 3 as before
- Constructed matching M is individually rational
- If AA then we have a housing market
- TTC algorithm finds the unique matching that
belongs to the core - Shapley and Scarf, 1974
- Roth and Postlewaite, 1977
26Minimum Pareto optimal matchings
- Theorem Problem of finding a minimum Pareto
optimal matching is NP-hard - Result holds even if all preference lists have
length 3 - Reduction from Minimum Maximal Matching
- Problem is approximable within a factor of 2
- Follows since any Pareto optimal matching is a
maximal matching in the underlying graph G - Any two maximal matchings differ in size by at
most a factor of 2 - Korte and Hausmann, 1978
27Interpolation of Pareto optimal matchings
- Given an HA instance I, p-(I) and p(I) denote
the sizes of a minimum and maximum Pareto optimal
matching - Theorem I admits a Pareto optimal matching of
size k, for each k such that p-(I) ? k ? p(I) - Given a Pareto optimal matching of size k, O(m)
algorithm constructs a Pareto optimal matching of
size k1 or reports that kp(I) - Based on assigning a vector ?r1, , rk? to an
augmenting path P?a1, h1, ,
ak, hk? where
rirankai(hi) - Examples ?1,3,2?
?1,2,2? -
- Find a lexicographically smallest augmenting path
1
h1
a1
1
a2
h2
2
3
1
h3
a3
2
1
h4
a4
2
h5
28Open problems
- Finding a maximum Pareto optimal matching
- Ties in the preference lists
- Solvable in O(?nmlog n) time
- Solvable in O(?nm) time?
- One-many case (houses may have capacity gt1)
- Non-bipartite case
- Solvable in O(?(n?(m, n))mlog3/2 n) time
- D.J. Abraham, D.F. Manlove
- Pareto optimality in the Roommates problem
- Technical Report TR-2004-182 of the Computing
Science Department of Glasgow University - Solvable in O(?nm) time?