pareto optimality in house allocation problems david manlove department of computing science...

70
Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department Carnegie-Mellon University Katarína Cechlárová Institute of Mathematics PJ Safárik University in Košice Kurt Mehlhorn Max-Planck-Institut fűr Informatik Saarbrűcken ted by Royal Society of Edinburgh/Scottish Executive Personal Research Fello and Engineering and Physical Sciences Research Council grant GR/R84597/01

Upload: bartholomew-crawford

Post on 19-Jan-2018

225 views

Category:

Documents


0 download

DESCRIPTION

3 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

TRANSCRIPT

Page 1: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

Pareto Optimality in House Allocation

Problems

David ManloveDepartment of Computing ScienceUniversity of Glasgow

David AbrahamComputer Science DepartmentCarnegie-Mellon University

Katarína CechlárováInstitute of MathematicsPJ Safárik University in Košice

Kurt MehlhornMax-Planck-Institut fűr InformatikSaarbrűcken

Supported by Royal Society of Edinburgh/Scottish Executive Personal Research Fellowshipand Engineering and Physical Sciences Research Council grant GR/R84597/01

Page 2: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

2

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 : h3 h4 h2 a3 : h4 h3 a4 : h1 h4

Let n=r+s and let m=total length of preference lists

a1 finds h1 and h2 acceptable

a3 prefers h4 to h3

Page 3: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

3

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

Page 4: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

4

The underlying graph Weighted bipartite graph G=(V,E)

Vertex set V=AH Edge set: { ai, hj } E if and only if ai finds hj acceptable Weight of edge { ai, hj } is rank of hj in ai’s preference list

Example a1 : h2 h1

a2 : h3 h4 h2

a3 : h4 h3

a4 : h1 h4

a1

a2

a3

a4

h1

h2

h3

h4

21

1

2

3

2

112

Page 5: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

5

Definition of a matching

A matching M is a subset of A×H such that: if (ai, hj)M then ai finds hj acceptable each agent belongs to at most one pair in M each house belongs to at most one pair in M

Example a1 : h2 h1

a2 : h3 h4 h2

a3 : h4 h3

a4 : h1 h4

a1

a2

a3

a4

h1

h2

h3

h4

M={(a1, h1), (a2, h4), (a3, h3)}

M(a1)=h1

Page 6: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

6

Maximum matchings

In many applications we wish to match as many agents as possible

A maximum matching is a matching with largest size

Example

Some maximum matchings are “better” than others!

a1 : h2 h1

a2 : h3 h4 h2

a3 : h4 h3

a4 : h1 h4

a1 : h2 h1

a2 : h3 h4 h2

a3 : h4 h3

a4 : h1 h4

Page 7: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

7

Pareto optimal matchings A matching M1 is Pareto optimal if there is no

matching M2 such that:1. Some agent is better off in M2 than in M1

2. 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 : h1 h2

a3 : h3

a1 : h2 h1

a2 : h1 h2

a3 : h3

M1

M2

Page 8: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

8

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) to M(ai+1) (0ir-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

Page 9: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

9

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) to M(ai+1) (0ir-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

Page 10: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

10

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) to M(ai) (0ir-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 coalition-free due to a1, a2, a4

a1

a3

a4

h1

h3

h4

a2 h2

Page 11: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

11

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) to M(ai) (0 i r-1)

a1 : h2 h1 a2 : h3 h4 h2 a3 : h4 h3 a4 : h1 h4

Lemma: M is Pareto optimal if and only if M is maximal, trade-in-free and coalition-free

Page 12: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

12

The envy graph Straightforward to check a given matching M for the

maximality and trade-in-free properties in O(m) time To check for the existence of a coalition:

Form the envy graph of M, denoted by G(M) Vertex for each matched agent Edge from ai to aj if and only if ai prefers M(aj) to M(ai)

Example a1 : h2 h1 a2 : h3 h4 h2 a3 : h4 h3 a4 : h1 h4

M admits a coalition if and only if G(M) has a directed cycle

Theorem: we may check whether a given matching M is Pareto optimal in O(m) time

a1

a4

a2

Page 13: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

13

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 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

Page 14: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

14

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 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

Page 15: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

15

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 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

Page 16: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

16

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 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

M1={(a1,h1), (a2,h2)}

Page 17: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

17

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 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

a1 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

M1={(a1,h1), (a2,h2)}

Page 18: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

18

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 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

a1 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

M1={(a1,h1), (a2,h2)}

Page 19: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

19

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 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

a1 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

M1={(a1,h1), (a2,h2)}

Page 20: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

20

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 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

a1 : h1 h2 h3 a2 : h1 h2 a3 : h1 h2

M1={(a1,h1), (a2,h2)}

M2={(a1,h3), (a2,h2), (a3,h1)}

Page 21: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

21

Related work Rank maximal matchings

Matching M is rank maximal if, in M1. Maximum number of agents get their first-choice house;2. Subject to (1), maximum number of agents get 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

Page 22: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

22

Related work (cont) Take underlying weighted bipartite graph G

The weight of a matching M in G is the sum of the weights of the edges contained in M

where AM is the set of agents who are matched in M ranka(h) is the rank of h in a’s preference list

Find a maximum cardinality minimum weight matching M in G M is Pareto optimal For if not there exists a matching M′ such that

ranka(M′(a)) ranka(M(a)) for all aAM ranka(M′(a)) < ranka(M(a)) for some aAM

so M′ contradicts the minimum weight property of M A maximum cardinality minimum weight matching

may be found in O(nmlog n) time Gabow and Tarjan, 1989

MAa

a aMrankMwt ))(()(

Page 23: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

23

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

Page 24: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

24

Phase 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

Page 25: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

25

Phase 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

Page 26: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

26

Phase 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

M not coalition-free

M not trade-in-free

Page 27: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

27

Phase 2 description For each house h, maintain a list Lh , initially containing those pairs

(a, r) such that: a is a matched agent who prefers h to M(a) r is the rank of h in a’s list

Maintain a stack S of unmatched houses h whose list Lh is nonempty Each matched agent a maintains a pointer curra to the rank of M(a)

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

Lh6=(a6 , 5), (a7 , 4), (a8 , 6)

Lh7=(a6 , 6), (a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=(a7 , 7)

Lh11=(a6 , 8)

S=h6 , h7curra6

=10curra7

=9

Page 28: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

28

Phase 2 description

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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a6 , 5), (a7 , 4), (a8 , 6)

Lh7=(a6 , 6), (a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=(a7 , 7)

Lh11=(a6 , 8)

S=h6 , h7curra6

=10curra7

=9

Page 29: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

29

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a6 , 5), (a7 , 4), (a8 , 6)

Lh7=(a6 , 6), (a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=(a7 , 7)

Lh11=(a6 , 8)

S=h6 , h7curra6

=10curra7

=9

Page 30: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

30

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a6 , 5), (a7 , 4), (a8 , 6)

Lh7=(a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=(a7 , 7)

Lh11=(a6 , 8)

S=h6 , h10curra6

=6curra7

=9

Page 31: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

31

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a6 , 5), (a7 , 4), (a8 , 6)

Lh7=(a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=(a7 , 7)

Lh11=(a6 , 8)

S=h6 , h10curra6

=6curra7

=9

Page 32: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

32

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a6 , 5), (a7 , 4), (a8 , 6)

Lh7=(a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=

Lh11=(a6 , 8)

S=h6 , h11curra6

=6curra7

=7

Page 33: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

33

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a6 , 5), (a7 , 4), (a8 , 6)

Lh7=(a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=

Lh11=(a6 , 8)

S=h6 , h11curra6

=6curra7

=7

Page 34: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

34

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a6 , 5), (a7 , 4), (a8 , 6)

Lh7=(a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=

Lh11=

S=h6curra6

=6curra7

=7

Page 35: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

35

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a7 , 4), (a8 , 6)

Lh7=(a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=

Lh11=

S=h7curra6

=5curra7

=7

Page 36: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

36

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a7 , 4), (a8 , 6)

Lh7=(a7 , 5), (a8 , 5)

Lh8=(a6 , 4)

Lh10=

Lh11=

S=h7curra6

=5curra7

=7

Page 37: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

37

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a7 , 4), (a8 , 6)

Lh7=(a8 , 5)

Lh8=(a6 , 4)

Lh10=

Lh11=

S=curra6

=5curra7

=5

Page 38: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

38

Phase 2 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

while S is nonemptypop a house h from S;remove the first pair (a,r) from the head of Lh;if r < curra // a prefers h to M(a)

let h’= M(a);remove (a,h’) from M and add (a,h) to M;curra := h;h := h’;

push h onto the stack if Lh is nonempty;

Lh6=(a7 , 4), (a8 , 6)

Lh7=(a8 , 5)

Lh8=(a6 , 4)

Lh10=

Lh11=

S=curra6

=5curra7

=5

Page 39: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

39

Once Phase 2 terminates, matching is trade-in-free

Data structures may be initialised in O(m) time Main loop takes O(m) time overall Phase 2 is O(m) Coalitions may remain…

Phase 2 termination

Page 40: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

40

Once Phase 2 terminates, matching is trade-in-free

Data structures may be initialised in O(m) time Main loop takes O(m) time overall Phase 2 is O(m) Coalitions may remain…

Phase 2 termination

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

Page 41: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

41

Elimination of coalitions Repeatedly finding and eliminating coalitions takes O(m2)

time Cycle detection in G(M) takes O(m) time O(m) coalitions in the worst case

Faster method: extension of TTC algorithm An agent matched to his/her first-choice house cannot be in a

coalition Such an agent can be removed from consideration

Houses matched to such agents are no longer exchangeable Such a house can be removed from consideration

This rule can be recursively applied until either No agent remains (matching is coalition-free) A coalition exists, which can be found and removed

Phase 3 description

Page 42: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

42

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’’ where p(a’)=M(a’’) to the path (EXTEND)

Push a’ and a’’ onto the stack Increment c(a’’)

Phase 3 description

Page 43: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

43

Phase 3: 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

Agent counter House labela1 1 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

P=a1

a1

Page 44: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

44

Phase 3: 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

Agent counter House labela1 1 h1

a2 0 h2

a3 0 h3

a4 1 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

P=a1, a4

EXTEND

a4

Page 45: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

45

Phase 3: 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

Agent counter House labela1 1 h1

a2 0 h2

a3 1 h3

a4 1 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

EXTEND

a4

P=a1, a4 , a3 a3

Page 46: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

46

Phase 3: 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

Agent counter House labela1 1 h1

a2 0 h2

a3 1 h3

a4 1 h4

a5 1 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

EXTEND

a4

P=a1, a4 , a3 , a5 a3

a5

Page 47: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

47

Phase 3: 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

Agent counter House labela1 1 h1

a2 0 h2

a3 1 h3

a4 2 h4

a5 1 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

EXTEND

a4

P=a1, a4 , a3 , a5 , a4 a3

a5

Page 48: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

48

Phase 3: 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

Agent counter House labela1 1 h1

a2 0 h2

a3 1 h3

a4 2 h4

a5 1 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

CYCLE

a4

P=a1, a4, a3 , a5 a3

a5

Page 49: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

49

Phase 3: 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

Agent counter House labela1 1 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

CYCLE

a4

a3

a5

P=a1, a4, a3 , a5

Page 50: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

50

Phase 3: 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

Agent counter House labela1 1 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

P=a1

Page 51: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

51

Phase 3: 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

Agent counter House labela1 1 h1

a2 1 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

EXTENDP=a1 , a2

a2

Page 52: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

52

Phase 3: 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

Agent counter House labela1 1 h1

a2 1 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 1 h9

a1

EXTENDP=a1 , a2 , a9

a2

a9

Page 53: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

53

Phase 3: 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

Agent counter House labela1 1 h1

a2 1 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 1 h9

a1

BACKTRACKP=a1 , a2

a2

a9

Page 54: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

54

Phase 3: 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

Agent counter House labela1 1 h1

a2 1 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

P=a1 , a2

a2

Page 55: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

55

Phase 3: 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

Agent counter House labela1 2 h1

a2 1 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

EXTENDP=a1 , a2 , a1

a2

Page 56: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

56

Phase 3: 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

Agent counter House labela1 2 h1

a2 1 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

CYCLEP=a1 , a2

a2

Page 57: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

57

Phase 3: 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

Agent counter House labela1 0 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

a1

CYCLEP=a1 , a2

a2

Page 58: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

58

Phase 3: 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

Agent counter House labela1 0 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 1 h6

a7 0 h7

a8 0 h8

a9 0 h9

P=a6

a6

Page 59: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

59

Phase 3: 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

Agent counter House labela1 0 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 1 h6

a7 0 h7

a8 1 h8

a9 0 h9

P=a6 , a8

EXTENDa6 a8

Page 60: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

60

Phase 3: 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

Agent counter House labela1 0 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 1 h6

a7 1 h7

a8 1 h8

a9 0 h9

P=a6 , a8 , a7

EXTENDa6 a8

a7

Page 61: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

61

Phase 3: 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

Agent counter House labela1 0 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 2 h6

a7 1 h7

a8 1 h8

a9 0 h9

P=a6 , a8 , a7 , a6

EXTENDa6 a8

a7

Page 62: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

62

Phase 3: 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

a1 0 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 2 h6

a7 1 h7

a8 1 h8

a9 0 h9

P=a6 , a8 , a7

CYCLEa6 a8

a7

Agent counter House label

Page 63: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

63

Phase 3: 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

Agent counter House labela1 0 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

P=a6 , a8 , a7

CYCLEa6 a8

a7

Page 64: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

64

Phase 3: 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

Agent counter House labela1 0 h1

a2 0 h2

a3 0 h3

a4 0 h4

a5 0 h5

a6 0 h6

a7 0 h7

a8 0 h8

a9 0 h9

P=

Page 65: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

65

Once Phase 3 terminates, matching is coalition-free

Data structures may be initialised in O(m) time Nested loops take O(m) time overall Phase 3 is O(m)

Phase 3 termination

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

Page 66: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

66

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

Page 67: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

67

Minimum Pareto optimal matchings

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

Page 68: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

68

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,2 1,2,2 Find a lexicographically smallest augmenting path

h1

h2

h3

h4

1

2

1

h5

a1

a2

a3

a4

23

1

12

Page 69: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

69

Summary Definition of the House Allocation problem (HA) O(m) algorithm for testing a matching for Pareto optimality O(m) algorithm for finding a Pareto optimal matching O(nm) algorithm for finding a maximum Pareto optimal

matching NP-hardness of finding a minimum Pareto optimal

matching Interpolation result

More information: D.J. Abraham, K. Cechlarova, D.F.M., K. Mehlhorn:

Pareto Optimality in House Allocation Problems, to appear atISAAC 2004: the 15th International Symposium on Algorithmsand Computation, Hong Kong, December 20-22, 2004

Page 70: Pareto Optimality in House Allocation Problems David Manlove Department of Computing Science University of Glasgow David Abraham Computer Science Department

70

Open problemsFinding 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 problemTechnical Report TR-2004-182 of the Computing Science Department of Glasgow University

Solvable in O(nm) time?