300 likes | 660 Views
David Abraham Computer Science Department Carnegie-Mellon University. Pareto Optimality in House Allocation Problems. 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
E N D
David Abraham Computer Science Department Carnegie-Mellon University Pareto Optimality in House Allocation Problems 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 fűr Informatik Saarbrűcken Supported by Royal Society of Edinburgh/Scottish Executive Personal Research Fellowship and Engineering and Physical Sciences Research Council grant GR/R84597/01
House Allocation problem (HA) • Set of agents A={a1, a2, …, ar} • Set of houses H={h1, 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 :h3h4 h2 • a3 : h4h3 • a4 : h1h4 • Let n=r+s and let m=total length of preference lists a1 finds h1 and h2 acceptable a3 prefers h4 to h3
Applications • 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 • Abdulkadiroğlu 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
The underlying graph • Weighted bipartite graph G=(V,E) • Vertex set V=AH • Edge set:{ai,hj}E if and only if ai findshjacceptable • Weight of edge {ai,hj} is rank of hjinai’spreference list • Example • a1 : h2 h1 • a2 :h3h4 h2 • a3 : h4h3 • a4 : h1h4 a1 h1 2 1 a2 h2 3 1 a3 2 h3 2 1 1 a4 h4 2
The underlying graph • Weighted bipartite graph G=(V,E) • Vertex set V=AH • Edge set:{ai,hj}E if and only if ai findshjacceptable • Weight of edge {ai,hj} is rank of hjinai’spreference list • Example • a1 : h2 h1 • a2 :h3h4h2 • a3 : h4h3 • a4 : h1h4 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
The underlying graph • Weighted bipartite graph G=(V,E) • Vertex set V=AH • Edge set:{ai,hj}E if and only if ai findshjacceptable • Weight of edge {ai,hj} is rank of hjinai’spreference list • Example • a1 : h2h1 • a2 : h3h4 h2 • a3 : h4h3 • a4 : h1h4 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
Pareto optimal matchings • A matchingM1 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 • a1 : h2 h1 • a2 :h1h2 • a3 : h3 • a1 : h2h1 • a2 : h1h2 • a3 : h3 M1 M2
Testing for Pareto optimality • A matchingM 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) toM(ai+1) (0ir-1) • a1 : h2 h1 • a2 :h3h4 h2 • a3 : h4h3 • a4 : h1h4 • Proposition: M is Pareto optimal if and only if M is maximal, trade-in-free and coalition-free Mis not maximal due to a3 and h3
Testing for Pareto optimality • A matchingM 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) toM(ai+1) (0ir-1) • a1 : h2 h1 • a2 :h3h4 h2 • a3 : h4h3 • a4 : h1h4 • Proposition: M is Pareto optimal if and only if M is maximal, trade-in-free and coalition-free Mis not trade-in-free due to a2 and h3
Testing for Pareto optimality • A matchingM 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+1) toM(ai) (0ir-1) • a1 : h2 h1 • a2 :h3h4 h2 • a3 : h4h3 • a4 : h1h4 • Proposition: M is Pareto optimal if and only if M is maximal, trade-in-free and coalition-free a1 h1 Mis not coalition-free due to a1, a2, a4 a2 h2 a3 h3 a4 h4
Testing 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+1) toM(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
Finding 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 • Abdulkadiroğlu and Sönmez, 1998 • Example • a1 : h1h2h3 • a2 : h1h2 • a3 : h1h2 M1={(a1,h1), (a2,h2)} • a1 : h1 h2h3 • a2 : h1h2 • a3 : h1h2 M2={(a1,h3), (a2,h2), (a3,h1)}
Related 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 matchingis 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
Faster 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 Gale’s Top-Trading Cycles (TTC) algorithm • Shapley and Scarf, 1974
Phase 1 • a1 : h4h5h3h2h1 • a2 : h3h4h5h9h1h2 • a3 : h5h4h1h2h3 • a4 : h3h5h4 • a5 : h4h3h5 • a6 : h2h3h5h8h6h7h1h11h4h10 • a7 : h1h4h3h6h7h2h10h5h11 • a8 : h1h5h4h3h7h6h8 • a9 : h4 h3h5h9 • Maximum matching M in G has size 8 • M must be maximal • No guarantee that M is trade-in-free or coalition-free
Phase 1 • a1 : h4h5h3h2h1 • a2 : h3h4h5h9h1h2 • a3 : h5h4h1h2h3 • a4 : h3h5h4 • a5 : h4h3h5 • a6 : h2h3h5h8h6h7h1h11h4h10 • a7 : h1h4h3h6h7h2h10h5h11 • a8 : h1h5h4h3h7h6h8 • a9 : h4 h3h5h9 • Maximum matching M in G has size 9 • M must be maximal • No guarantee that M is trade-in-free or coalition-free
Phase 1 Mnot coalition-free • a1 : h4h5h3h2h1 • a2 : h3h4h5h9h1h2 • a3 : h5h4h1h2h3 • a4 : h3h5h4 • a5 : h4h3h5 • a6 : h2h3h5h8h6h7h1h11h4h10 • a7 : h1h4h3h6h7h2h10h5h11 • a8 : h1h5h4h3h7h6h8 • a9 : h4 h3h5h9 • Maximum matching M in G has size 9 • M must be maximal • No guarantee that M is trade-in-free or coalition-free Mnot trade-in-free
Phase 2 outline • Repeatedly search for a matched agent a and an unmatched house h such that a prefers h to h’=M(a) • Promote a to h • h’is now unmatched • Example • a1 : h4h5h3h2h1 • a2 : h3h4h5h9h1h2 • a3 : h5h4h1h2h3 • a4 : h3h5h4 • a5 : h4h3h5 • a6 : h2h3h5h8h6h7h1h11h4h10 • a7 : h1h4h3h6h7h2h10h5h11 • a8 : h1h5h4h3h7h6h8 • a9 : h4 h3h5h9
Phase 2 outline • Repeatedly search for a matched agent a and an unmatched house h such that a prefers h to h’=M(a) • Promote a to h • h’is now unmatched • Example • a1 : h4h5h3h2h1 • a2 : h3h4h5h9h1h2 • a3 : h5h4h1h2h3 • a4 : h3h5h4 • a5 : h4h3h5 • a6 : h2h3h5h8h6h7h1h11h4h10 • a7 : h1h4h3h6h7h2h10h5h11 • a8 : h1h5h4h3h7h6h8 • a9 : h4 h3h5h9
Phase 2 outline • Repeatedly search for a matched agent a and an unmatched house h such that a prefers h to h’=M(a) • Promote a to h • h’is now unmatched • Example • a1 : h4h5h3h2h1 • a2 : h3h4h5h9h1h2 • a3 : h5h4h1h2h3 • a4 : h3h5h4 • a5 : h4h3h5 • a6 : h2h3h5h8h6h7h1h11h4h10 • a7 : h1h4h3h6h7h2h10h5h11 • a8 : h1h5h4h3h7h6h8 • a9 : h4 h3h5h9
Phase 2 outline • Repeatedly search for a matched agent a and an unmatched house h such that a prefers h to h’=M(a) • Promote a to h • h’is now unmatched • Example • a1 : h4h5h3h2h1 • a2 : h3h4h5h9h1h2 • a3 : h5h4h1h2h3 • a4 : h3h5h4 • a5 : h4h3h5 • a6 : h2h3h5h8h6h7h1h11h4h10 • a7 : h1h4h3h6h7h2h10h5h11 • a8 : h1h5h4h3h7h6h8 • a9 : h4 h3h5h9
Phase 2 termination • Once Phase 2 terminates, matching is trade-in-free • With suitable data structures, Phase 2 is O(m) • Coalitions may remain… • a1 : h4h5h3h2h1 • a2 : h3h4h5h9h1h2 • a3 : h5h4h1h2h3 • a4 : h3h5h4 • a5 : h4h3h5 • a6 : h2h3h5h8h6h7h1h11h4h10 • a7 : h1h4h3h6h7h2h10h5h11 • a8 : h1h5h4h3h7h6h8 • a9 : h4 h3h5h9
Phase 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 a’s 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’’ wherep(a’)=M(a’’)to the path (EXTEND) • Push a’ and a’’ onto the stack • Increment c(a’’)
Phase 3 termination • Once Phase 3 terminates, matching is coalition-free • a1 : h4h5h3h2h1 • a2 : h3h4h5h9h1h2 • a3 : h5h4h1h2h3 • a4 : h3h5h4 • a5: h4h3h5 • a6 : h2h3h5h8h6h7h1h11h4h10 • a7 : h1h4h3h6h7h2h10h5h11 • a8 : h1h5h4h3h7h6h8 • a9 : h4 h3h5h9 • Phase 3 is O(m) • Theorem:A maximum Pareto optimal matching can be found in O(nm) time
Initial property rights • Suppose A’A and each member of A’ owns a house initially • For each agent aA’,denote this house by h(a) • Truncate a’s 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 A’=A 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
Minimum 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
Interpolation 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 k+1 or reports that k=p+(I) • Based on assigning a vector r1,…,rk to an augmenting path P=a1,h1,…,ak,hk where ri=rankai(hi) • Examples: 1,3,21,2,2 • Find a lexicographically smallest augmenting path 1 a1 h1 1 a2 h2 2 3 1 a3 h3 2 1 a4 h4 2 h5
Open 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 >1) • 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?