# the stable roommates problem and some extensions david manlove university of glasgow

Embed Size (px)

DESCRIPTION

The Stable Roommates Problem and Some Extensions David Manlove University of Glasgow Department of Computing Science. Supported by EPSRC grant GR/M13329 and Nuffield Foundation award NUF-NAL-02. Stable Roommates (SR): definition Input: 2 n persons; each person ranks all 2 n- 1 - PowerPoint PPT PresentationTRANSCRIPT

L4 #1

The Stable Roommates Problemand Some Extensions

David Manlove

University of GlasgowDepartment of Computing Science

Supported by EPSRC grant GR/M13329and Nuffield Foundation award NUF-NAL-02

L4 #2

Stable Roommates (SR): definition

Input: 2n persons; each person ranks all 2n-1other persons in strict order

Output: a stable matching

Definitions

A matching is a set of n disjoint pairs of persons

A blocking pair of a matching M is a pair of persons {p,q}M such that:

• p prefers q to his partner in M, and• q prefers p to his partner in M A matching is stable if it admits no blocking pair

L4 #3

Stable Roommates (SR): definition

Input: 2n persons; each person ranks all 2n-1other persons in strict order

Output: a stable matching

Definitions

A matching is a set of n disjoint pairs of persons

A blocking pair of a matching M is a pair of persons {p,q}M such that:

• p prefers q to his partner in M, and• q prefers p to his partner in M A matching is stable if it admits no blocking pair

Example SR instance I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

L4 #4

Stable Roommates (SR): definition

Input: 2n persons; each person ranks all 2n-1other persons in strict order

Output: a stable matching

Definitions

A matching is a set of n disjoint pairs of persons

A blocking pair of a matching M is a pair of persons {p,q}M such that:

• p prefers q to his partner in M, and• q prefers p to his partner in M A matching is stable if it admits no blocking pair

Example SR instance I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

L4 #5

Stable Roommates (SR): definition

Input: 2n persons; each person ranks all 2n-1other persons in strict order

Output: a stable matching

Definitions

A matching is a set of n disjoint pairs of persons

A blocking pair of a matching M is a pair of persons {p,q}M such that:

Example SR instance I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

The matching is not stable as {1,3} blocks.

L4 #6

Stable matching in I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

L4 #7

Stable matching in I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

Example SR instance I2: 1: 3 2 42: 1 3 43: 2 1 44: 1 2 3

L4 #8

Stable matching in I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

Example SR instance I2: 1: 3 2 42: 1 3 43: 2 1 44: 1 2 3

L4 #9

Stable matching in I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

Example SR instance I2: 1: 3 2 42: 1 3 43: 2 1 44: 1 2 3

L4 #10

Stable matching in I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

Example SR instance I2: 1: 3 2 42: 1 3 43: 2 1 44: 1 2 3

1: 3 2 4 2: 1 3 4 3: 2 1 4 4: 1 2 3

L4 #11

Stable matching in I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

Example SR instance I2: 1: 3 2 42: 1 3 43: 2 1 44: 1 2 3

1: 3 2 4 2: 1 3 4 3: 2 1 4 4: 1 2 3

L4 #12

Stable matching in I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

Example SR instance I2: 1: 3 2 42: 1 3 43: 2 1 44: 1 2 3

1: 3 2 4 1: 3 2 4 2: 1 3 4 2: 1 3 4 3: 2 1 4 3: 2 1 4 4: 1 2 3 4: 1 2 3

L4 #13

Stable matching in I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

Example SR instance I2: 1: 3 2 42: 1 3 43: 2 1 44: 1 2 3

1: 3 2 4 1: 3 2 4 2: 1 3 4 2: 1 3 4 3: 2 1 4 3: 2 1 4 4: 1 2 3 4: 1 2 3

L4 #14

Stable matching in I1: 1: 3 2 42: 4 3 13: 2 1 44: 1 3 2

Example SR instance I2: 1: 3 2 42: 1 3 43: 2 1 44: 1 2 3

1: 3 2 4 1: 3 2 4 2: 1 3 4 2: 1 3 4 3: 2 1 4 3: 2 1 4 4: 1 2 3 4: 1 2 3

The three matchings containing the pairs {1,4}, {2,4}, {3,4} are blocked by the pairs {1,2}, {2,3}, {3,1} respectively.

instance I2 has no stable matching.

L4 #15

Stable marriage (SM) problem

SM is a special case of SR

Input: n men and n women; each person ranks all n members of the opposite sex in orderOutput: a stable matching

Definitions:

A matching is a set of n disjoint (man,woman) pairs

A blocking pair of a matching M is an unmatched (man,woman) pair (m,w) such that:

• m prefers w to his partner in M, and• w prefers m to her partner in M A matching is stable if it admits no blocking pair

• Every instance of SM admits a stable matching• Such a matching can be found by an efficient algorithm known as the Gale/Shapley algorithm

L4 #16

Reduction from SM to SR

An instance I of SM can be reduced to an instance J of SR such that set of stable matchings in I = set of stable matchings in J

SM instance I:U={m1, m2,..., mn} is the set of men, and W={w1, w2,..., wn} is the set of women

SR instance J:People comprise men in U and women in W

mi’s list in J is his list in I together with the men in U\{mi} appended in arbitrary order.

wi’s list in J is her list in I together with the women in W\{wi} appended in arbitrary order.

Proposition: Set of stable matchings in I = set of stable matchings in J

Open question: can we reduce SR to SM?

L4 #17

Efficient algorithm for SR

• Knuth (1976): is there an efficient algorithm for deciding whether there exists a stable matching, given an instance of SR?

• Irving (1985) “An efficient algorithm for the ‘Stable Roommates’ Problem”, Journal of Algorithms, 6:577-595

given an instance of SR, decides whether a stable matching exists; if so, finds one

• Algorithm is in two phases

Phase 1: similar to GS algorithm for SM Phase 2: elimination of “rotations”

• Phase 1: if p proposes to q, p becomes assigned to q, and q becomes assigned from p “assigned” relation is not necessarily symmetric if anyone’s preference list becomes empty, no stable matching exists

L4 #18

Phase 1 of Algorithm SR

assign everyone to be free;while ((some person p has a non-empty list) and (p is not assigned to anyone)) {

q := first person on p’s list;/* p proposes to q */assign p to q; /* q is assigned from p */for (each successor r of p in q's list) {

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

1: 4 6 2 5 32: 6 3 5 1 43: 4 5 1 6 24: 2 6 5 1 35: 4 2 3 6 16: 5 1 4 2 3

L4 #19

Phase 1 of Algorithm SR

assign everyone to be free;while ((some person p has a non-empty list) and (p is not assigned to anyone)) {

q := first person on p’s list;/* p proposes to q */assign p to q; /* q is assigned from p */for (each successor r of p in q's list) {

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 32: 6 3 5 1 43: 4 5 1 6 24: 2 6 5 1 35: 4 2 3 6 16: 5 1 4 2 3

L4 #20

Phase 1 of Algorithm SR

assign everyone to be free;while ((some person p has a non-empty list) and (p is not assigned to anyone)) {

q := first person on p’s list;/* p proposes to q */assign p to q; /* q is assigned from p */for (each successor r of p in q's list) {

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 42: 6 3 5 1 43: 4 5 1 6 24: 2 6 5 1 3 15: 4 2 3 6 16: 5 1 4 2 3

p=1

L4 #21

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 42: 6 3 5 1 43: 4 5 1 6 24: 2 6 5 1 3 15: 4 2 3 6 16: 5 1 4 2 3

p=1

L4 #22

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 42: 6 3 5 1 43: 4 5 1 6 24: 2 6 5 1 3 15: 4 2 3 6 16: 5 1 4 2 3

p=1

L4 #23

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 42: 6 3 5 1 4 63: 4 5 1 6 24: 2 6 5 1 3 15: 4 2 3 6 16: 5 1 4 2 3 2

p=2

L4 #24

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 42: 6 3 5 1 4 63: 4 5 1 6 24: 2 6 5 1 3 15: 4 2 3 6 16: 5 1 4 2 3 2

p=2

L4 #25

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 42: 6 3 5 1 4 63: 4 5 1 6 2 54: 2 6 5 1 3 15: 4 2 3 6 1 36: 5 1 4 2 3 2

p=3

L4 #26

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 42: 6 3 5 1 4 63: 4 5 1 6 2 54: 2 6 5 1 3 15: 4 2 3 6 1 36: 5 1 4 2 3 2

p=3

L4 #27

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 42: 6 3 5 1 4 6 43: 4 5 1 6 2 54: 2 6 5 1 3 2 15: 4 2 3 6 1 36: 5 1 4 2 3 2

p=4

L4 #28

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 42: 6 3 5 1 4 6 43: 4 5 1 6 2 54: 2 6 5 1 3 2 5/15: 4 2 3 6 1 4 36: 5 1 4 2 3 2

p=5

L4 #29

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 32: 6 3 5 1 4 6 43: 4 5 1 6 2 54: 2 6 5 1 3 2 55: 4 2 3 6 1 4 36: 5 1 4 2 3 2

p=5

L4 #30

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 62: 6 3 5 1 4 6 43: 4 5 1 6 2 54: 2 6 5 1 3 2 55: 4 2 3 6 1 4 36: 5 1 4 2 3 1/2

p=1

L4 #31

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 62: 6 3 5 1 4 43: 4 5 1 6 2 54: 2 6 5 1 3 2 55: 4 2 3 6 1 4 36: 5 1 4 2 3 1

p=1

L4 #32

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 62: 6 3 5 1 4 3 43: 4 5 1 6 2 5 24: 2 6 5 1 3 2 55: 4 2 3 6 1 4 36: 5 1 4 2 3 1

p=2

L4 #33

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 6 62: 6 3 5 1 4 3 43: 4 5 1 6 2 5 24: 2 6 5 1 3 2 55: 4 2 3 6 1 4 36: 5 1 4 2 3 1 1

p=6

L4 #34

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 4 6 2 5 3 6 62: 6 3 5 1 4 3 43: 4 5 1 6 2 5 24: 2 6 5 1 3 2 55: 4 2 3 6 1 4 36: 5 1 4 2 3 1 1

p=6

L4 #35

Phase 1 of Algorithm SR

if (r is assigned to q)break the assignment;

delete the pair {q,r};}

}

assigned to / from1: 6 6 62: 3 5 4 3 43: 5 2 5 24: 2 5 2 55: 4 2 3 4 36: 1 1 1

L4 #36

Some notation

T denotes the set of preference lists after Phase 1fT(x) denotes the first person on x’s listsT(x) denotes the second person on x’s listlT(x) denotes the last person on x’s list

At the termination of Phase 1:

1. y= fT(x) if and only if x=lT(y)2. the pair {x,y} is absent if and only if x prefers lT(x) to y, or y prefers lT(y) to x3. no preference list is empty

assigned to / from

1: 6 6 62: 3 5 4 3 43: 5 2 5 24: 2 5 2 55: 4 2 3 4 36: 1 1 1

L4 #37

Stable tables

Any set of preference lists satisfying 1, 2 and 3above is called a stable table

Lemma: Suppose that, during the execution of Phase 1, no person’s list becomes empty. Let T denote the set of preference lists at this point. Then T is a stable table.

Lemma: Suppose that, during the execution of Phase 1, some person’s list becomes empty. Then no stable matching exists.

So if somebody’s list becomes empty during Phase 1, we can immediately halt.

Otherwise, proceed to Phase 2…

L4 #38

Phase 2 of the algorithm

Deals with the fact that the assignment relation isnot symmetric in general

involves rotation eliminations

assigned to / from

1: 6 6 62: 3 5 4 3 43: 5 2 5 24: 2 5 2 55: 4 2 3 4 36: 1 1 1

Let T be a stable table, and let =(x0, y0), (x1, y1), …, (xr-1, yr-1) be a sequence of pairs such that yi=fT(xi) and yi+1=sT(xi) for all i (0 i r-1).

Then is called a rotation exposed in T.

Example: =(x0, y0), (x1, y1) = (3,5), (4,2)y0 = 5 = fT(x0) y1 = 2 = fT(x1)y1 = 2 = sT(x0) y0 = 5 = sT(x1)

L4 #39

Phase 2 of the algorithm

Deals with the fact that the assignment relation isnot symmetric in general

involves rotation eliminations

assigned to / from

1: 6 6 62: 3 5 4 3 43: 5 2 5 24: 2 5 2 55: 4 2 3 4 36: 1 1 1

Let T be a stable table, and let =(x0, y0), (x1, y1), …, (xr-1, yr-1) be a sequence of pairs such that yi=fT(xi) and yi+1=sT(xi) for all i (0 i r-1).

Then is called a rotation exposed in T.

Example: =(x0, y0), (x1, y1) = (3,5), (4,2)y0 = 5 = fT(x0) y1 = 2 = fT(x1)y1 = 2 = sT(x0) y0 = 5 = sT(x1)

L4 #40

Phase 2 of the algorithm

Deals with the fact that the assignment relation isnot symmetric in general

involves rotation eliminations

assigned to / from

1: 6 6 62: 3 5 4 3 43: 5 2 5 24: 2 5 2 55: 4 2 3 4 36: 1 1 1

Let T be a stable table, and let =(x0, y0), (x1, y1), …, (xr-1, yr-1) be a sequence of pairs such that yi=fT(xi) and yi+1=sT(xi) for all i (0 i r-1).

Then is called a rotation exposed in T.

Example: =(x0, y0), (x1, y1) = (3,5), (4,2)y0 = 5 = fT(x0) y1 = 2 = fT(x1)y1 = 2 = sT(x0) y0 = 5 = sT(x1)

L4 #41

Phase 2 of the algorithm

Deals with the fact that the assignment relation isnot symmetric in general

involves rotation eliminations

assigned to / from

1: 6 6 62: 3 5 4 3 43: 5 2 5 24: 2 5 2 55: 4 2 3 4 36: 1 1 1

Then is called a rotation exposed in T.

L4 #42

Phase 2 of the algorithm

Deals with the fact that the assignment relation isnot symmetric in general

involves rotation eliminations

assigned to / from

1: 6 6 62: 3 5 4 3 43: 5 2 5 24: 2 5 2 55: 4 2 3 4 36: 1 1 1

Then is called a rotation exposed in T.

L4 #43

Some intuition behind rotations

The rotation =(x0, y0), (x1, y1) = (3,5), (4,2) isexposed in T

assigned to / from

1: 6 6 62: 3 5 4 3 43: 5 2 5 24: 2 5 2 55: 4 2 3 4 36: 1 1 1

x0 has a preference list of length >1, and so is notassigned to / from the same person

The effect of is equivalent to supposing that:

L4 #44

Some intuition behind rotations

The rotation =(x0, y0), (x1, y1) = (3,5), (4,2) isexposed in T

assigned to / from

1: 6 6 62: 3 5 4 3 43: 5 2 24: 2 5 2 55: 4 2 3 46: 1 1 1

x0 has a preference list of length >1, and so is notassigned to / from the same person

The effect of is equivalent to supposing that: y0 rejects x0

L4 #45

Some intuition behind rotations

The rotation =(x0, y0), (x1, y1) = (3,5), (4,2) isexposed in T

assigned to / from

1: 6 6 62: 3 5 4 3

3/43: 5 2 2 24: 2 5 2 55: 4 2 3 46: 1 1 1

x0 has a preference list of length >1, and so is notassigned to / from the same person

The effect of is equivalent to supposing that: y0 rejects x0 , so that x0 proposes to y1

L4 #46

Some intuition behind rotations

The rotation =(x0, y0), (x1, y1) = (3,5), (4,2) isexposed in T

assigned to / from

1: 6 6 62: 3 5 4 3 33: 5 2 2 24: 2 5 55: 4 2 3 46: 1 1 1

x0 has a preference list of length >1, and so is notassigned to / from the same person

The effect of is equivalent to supposing that: y0 rejects x0 , so that x0 proposes to y1 , then y1 rejects x1

L4 #47

Some intuition behind rotations

The rotation =(x0, y0), (x1, y1) = (3,5), (4,2) isexposed in T

assigned to / from

1: 6 6 62: 3 5 4 3 33: 5 2 2 24: 2 5 5 55: 4 2 3 4 46: 1 1 1

x0 has a preference list of length >1, and so is notassigned to / from the same person

The effect of is equivalent to supposing that: y0 rejects x0 , so that x0 proposes to y1 , then y1 rejects x1 , so that x1 proposes to y0

L4 #48

Some intuition behind rotations

The rotation =(x0, y0), (x1, y1) = (3,5), (4,2) isexposed in T

assigned to / from

1: 6 6 62: 3 5 4 3 33: 5 2 2 24: 2 5 5 55: 4 2 3 4 46: 1 1 1

x0 has a preference list of length >1, and so is notassigned to / from the same person

The effect of is equivalent to supposing that: y0 rejects x0 , so that x0 proposes to y1 , then y1 rejects x1 , so that x1 proposes to y0

This is called the elimination of

We denote by T / the preference lists remainingafter elimination of

L4 #49

This is T / : assigned to /

from1: 6 6 62: 3 3 33: 2 2 24: 5 5 55: 4 4 46: 1 1 1

It corresponds to the matching {1,6}, {2,3}, {4,5}

Lemma: If T is a stable table with containinga list with at least two entries, then there is arotation exposed in T

Lemma: If T is a stable table, and T / containsno empty lists, then T / is a stable table

Lemma: If there is a stable matching containedin T and is a rotation exposed in T, then thereis a stable matching contained in T /

L4 #50

Phase 2 of Algorithm SR

T := preference lists generated by Phase 1;while ((some list in T is of length >1) and (no list in T is empty)) {

find a rotation exposed in T;T := T / ;

}if (some list in T is empty)

output “no stable matching exists”;else

output T; /* which is a stable matching */

Algorithm found stable matching {1,6}, {2,3}, {4,5}

1: 4 6 2 5 3 2: 6 3 5 1 4

3: 4 5 1 6 2 4: 2 6 5 1 3 5: 4 2 3 6 1 6: 5 1 4 2 3

Algorithm takes cn2 steps for some constant c

L4 #51

Stable Roommates with Ties (SRT)

• Ties are permitted in any preference list

Example SRT instance: 1: (2 3) 4 2: 1 3 4 3: (1 4) 2 4: 3 1 2

• More than one stability definition is possible

L4 #52

Stable Roommates with Ties (SRT)

• Ties are permitted in any preference list

Example SRT instance: 1: (2 3) 4 2: 1 3 4 3: (1 4) 2 4: 3 1 2

• More than one stability definition is possible

Super-stability

A matching M in instance J of SRT is super-stable if there is no pair {p,q}M such that

• p strictly prefers q to his partner in M or is indifferent between them• q strictly prefers p to his partner in M or is indifferent between them

In any instance of SRT with no ties, super-stabilityis the same as normal stabilityRecall: an SR instance can have no stable matching

L4 #53

Stable Roommates with Ties (SRT)

• Ties are permitted in any preference list

Example SRT instance: 1: (2 3) 4 2: 1 3 4 3: (1 4) 2 4: 3 1 2

• More than one stability definition is possible

Super-stability

A matching M in instance J of SRT is super-stable if there is no pair {p,q}M such that

• p strictly prefers q to his partner in M or is indifferent between them• q strictly prefers p to his partner in M or is indifferent between them

In any instance of SRT with no ties, super-stabilityis the same as normal stabilityRecall: an SR instance can have no stable matching

L4 #54

Stable Roommates with Ties (SRT)

• Ties are permitted in any preference list

Example SRT instance: 1: (2 3) 4 2: 1 3 4 3: (1 4) 2 4: 3 1 2

• More than one stability definition is possible

Super-stability

A matching M in instance J of SRT is super-stable if there is no pair {p,q}M such that

• p strictly prefers q to his partner in M or is indifferent between them• q strictly prefers p to his partner in M or is indifferent between them

In any instance of SRT with no ties, super-stabilityis the same as normal stabilityRecall: an SR instance can have no stable matching

L4 #55

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

L4 #56

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Phase 1: similar to SR case– sequence of proposals and deletions– persons become provisionally assigned to / assigned from other persons

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #57

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Phase 1: similar to SR case– sequence of proposals and deletions– persons become provisionally assigned to / assigned from other persons

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #58

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Phase 1: similar to SR case– sequence of proposals and deletions– persons become provisionally assigned to / assigned from other persons

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #59

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #60

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #61

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #62

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #63

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #64

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #65

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #66

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #67

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #68

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #69

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #70

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #71

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #72

SRT: super-stability (cont)

• Algorithm for finding a super-stable matching if one exists, given an SRT instance

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

• Algorithm is in two phases

Example SRT instance:

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

L4 #73

Phase 1 of Algorithm SRT-Super

while ((some person p has a non-empty list and (p is not assigned to anyone)) {

for (each q at the head of p's list) {/* p proposes to q */assign p to q; /* q is assigned from p */for (each strict successor r of p in q's list) {

if (r is assigned to q)break the assignment;

delete the pair {q,r}; }if ( 2 persons are assigned to q) {

break all assignments to q;for (each r tied with p in q's list)

delete the pair {q,r}; }

}}

L4 #74

After Phase 1:

• If every person’s list has length 1 then the lists specify a super-stable matching

• If some person’s list is empty then no super-stable matching exists

• If nobody’s list is empty and some person’s list has length >1 then we move on to Phase 2

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #75

After Phase 1:

• If every person’s list has length 1 then the lists specify a super-stable matching

• If some person’s list is empty then no super-stable matching exists

• If nobody’s list is empty and some person’s list has length >1 then we move on to Phase 2

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

Phase 2: “reject and reactivate Phase 1”

– select a person p whose list is of length >1– let p be rejected by first person on his list– reactivate Phase 1

L4 #76

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #77

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #78

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #79

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #80

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

– After Phase 1, person 3’s list is empty

L4 #81

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

– After Phase 1, person 3’s list is empty– Reinstate the preference lists to their status after Phase 1

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #82

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

– After Phase 1, person 3’s list is empty– Reinstate the preference lists to their status after Phase 1– Let p reject the last person on his list– Reactivate Phase 1

• Let person 2 reject person 4

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #83

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

– After Phase 1, person 3’s list is empty– Reinstate the preference lists to their status after Phase 1– Let p reject the last person on his list– Reactivate Phase 1

• Let person 2 reject person 4

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #84

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

– After Phase 1, person 3’s list is empty– Reinstate the preference lists to their status after Phase 1– Let p reject the last person on his list– Reactivate Phase 1

• Let person 2 reject person 4

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #85

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

• Let person 2 reject person 4

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #86

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

• Let person 2 reject person 4

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

L4 #87

• Let person 2 be rejected by person 3

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

• Let person 2 reject person 4

1: 62: 3 5 43: 5 24: 2 55: 4 2 36: 1

– All lists now have length 1

L4 #88

1: 62: 33: 24: 55: 46: 1

– All lists have length 1

1: (6 4) 2 5 32: 6 3 5 1 43: (5 4) 1 6 24: 2 6 5 (1 3)5: 4 2 3 6 16: 5 1 4 2 3

– {1,6}, {2,3}, {4,5} is a super-stable matching

L4 #89

Phase 2 of Algorithm SRT-Super

T := preference lists generated by Phase 1;while (some person p’s list in T is of length > 1) {

let q be the person assigned from p ; let r be the person assigned to p;

form T1 from T by letting p be rejected by q;form T2 from T by letting p reject r;

reactivate Phase 1 on T1;reactivate Phase 1 on T2;if (no list in T1 is empty)

T := T1;else if (no list in T2 is empty)

T := T2;else

output “no super-stable matching exists”;}output T; /* which is a super-stable matching */

L4 #90

Phase 2 of Algorithm SRT-Super

T := preference lists generated by Phase 1;while (some person p’s list in T is of length > 1) {

let q be the person assigned from p ; let r be the person assigned to p;

form T1 from T by letting p be rejected by q;form T2 from T by letting p reject r;

reactivate Phase 1 on T1;reactivate Phase 1 on T2;if (no list in T1 is empty)

T := T1;else if (no list in T2 is empty)

T := T2;else

output “no super-stable matching exists”;}output T; /* which is a super-stable matching */

Theorem: (1) Algorithm SRT-Super is correct (2) It takes cn2 steps for some c

L4 #91

Phase 2 of Algorithm SRT-Super

T := preference lists generated by Phase 1;while (some person p’s list in T is of length > 1) {

let q be the person assigned from p ; let r be the person assigned to p;

form T1 from T by letting p be rejected by q;form T2 from T by letting p reject r;

reactivate Phase 1 on T1;reactivate Phase 1 on T2;if (no list in T1 is empty)

T := T1;else if (no list in T2 is empty)

T := T2;else

output “no super-stable matching exists”;}output T; /* which is a super-stable matching */

Theorem: (1) Algorithm SRT-Super is correct (2) It takes cn2 steps for some c

Open problem: characterise the algorithm in terms of rotations, as in the SR case

L4 #92

SRT: strong stability

A matching M in instance J of SRT is strongly stable if there is no pair {p,q}M such that

• p strictly prefers q to his partner in M • q strictly prefers p to his partner in M or is indifferent between them

Example SRT instance:

1: 4 2 3 2: (1 3) 4 3: 1 (4 2)4: 2 3 1

The matching is strongly stable.

• Does there exist an efficient algorithm to decide whether a strongly stable matching exists, given an instance of SRT?

L4 #93

SRT: weak stability

A matching M in instance J of SRT is weakly stable if there is no pair {p,q}M such that

• p strictly prefers q to his partner in M • q strictly prefers p to his partner in M

Example SRT instance: 1: 3 2 4 2: (1 3) 4 3: 2 1 4 4: 1 2 3

The matching is weakly stable.

• The problem of deciding whether an instance of SRT admits a weakly stable matching is NP-complete

Ronn (1990) “NP-complete Stable Matching Problems”, Journal of Algorithms, 11:285-304

Irving and Manlove (2002) “The Stable Roommates Problem with Ties”, Journal of Algorithms, 43:85-105

L4 #94

Other extensions of SR

• Stable Crews Problem (SC)

– Each person p can have one of two roles, e.g. (A) Captain (pA) or (B) Navigator (pB)

1: 4B 3A 2A 2B 3B 4A 2: 1B 4A 3B 4B 1A 3A

3: 1A 2A 2B 4A 4B 1B

4: 2A 1B 2B 3B 1A 3A

E.g. person 2 prefers person 1 as a navigator to person 4 as a captain

L4 #95

Other extensions of SR

• Stable Crews Problem (SC)

– Each person p can have one of two roles, e.g. (A) Captain (pA) or (B) Navigator (pB)

role 1: B 4B 3A 2A 2B 3B 4A 2: A 1B 4A 3B 4B 1A 3A

3: A 1A 2A 2B 4A 4B 1B

4: B 2A 1B 2B 3B 1A 3A

E.g. person 2 prefers person 1 as a navigator to person 4 as a captain

– A matching M is a disjoint set of pairs of persons with roles

– each person is in exactly one pair

– each pair has exactly one Captain (A) and exactly one Navigator (B)

– e.g. {1B, 3A}, {2A, 4B}

L4 #96

– {XA,YB} is a blocking pair of M if (1) X prefers YB to his partner in M (2) Y prefers XA to his partner in M

– A matching is stable if it admits no blocking pair

E.g. {2A, 3B} blocks the previous matching

role1: B 4B 3A 2A 2B 3B 4A 2: A 1B 4A 3B 4B 1A 3A

3: A 1A 2A 2B 4A 4B 1B

4: B 2A 1B 2B 3B 1A 3A

role1: B 4B 3A 2A 2B 3B 4A 2: A 1B 4A 3B 4B 1A 3A

3: B 1A 2A 2B 4A 4B 1B

4: A 2A 1B 2B 3B 1A 3A

– The above matching is stable

L4 #97

– An instance I of SR can be reduced to an instance J of SC such that every stable matching in I corresponds to a stable matching in J and vice versa

– Some instances of SC do not admit a stable matching

– There is an efficient algorithm to find a stable matching, if one exists, given an instance of SC

– If crews are of size 3, the problem of deciding whether a stable matching exists is NP-complete

Cechlárová and Ferková (2001), “The Stable Crews Problem”, submitted for publication

L4 #98

• Stable Fixtures Problem (SF)

– Choose a schedule of fixtures based on teams having preferences over each other

– Two given teams can play each other at most once

– Each team i has a capacity ci , indicating the maximum number of fixtures it can play

– A fixture allocation A is a set of unordered pairs of teams {i, j} such that, for each i, team i is scheduled to play at most ci fixtures

– Example SF instance:

team capacity preferences1: 2 2 3 4

2: 2 1 3 4 3: 2 1 2 44: 2 1 2 3

L4 #99

• Stable Fixtures Problem (SF)

– Choose a schedule of fixtures based on teams having preferences over each other

– Two given teams can play each other at most once

– Each team i has a capacity ci , indicating the maximum number of fixtures it can play

– A fixture allocation A is a set of unordered pairs of teams {i, j} such that, for each i, team i is scheduled to play at most ci fixtures

– Example SF instance:

team capacity preferences1: 2 2 3 4

2: 2 1 3 4 3: 2 1 2 44: 2 1 2 3

– The above fixture allocation is: {1, 2}, {1, 4}, {2, 3}, {3, 4}

L4 #100

– A blocking pair of a fixture allocation A is a pair of teams {i , j}A such that:

i is assigned fewer than ci teams in A or i prefers j to at least one of its assignees and j is assigned fewer than cj teams in A or j prefers i to at least one of its assignees

– A fixture allocation is stable if it admits no blocking pair

– Example SF instance:

team capacity preferences1: 2 2 3 4

2: 2 1 3 4 3: 2 1 2 44: 2 1 2 3

– The above fixture allocation is not stable as {1,3} is a blocking pair

L4 #101

– Example SF instance:

team capacity preferences1: 2 2 3 4

2: 2 1 3 4 3: 2 1 2 44: 2 1 2 3

– The above fixture allocation is stable

– SR is a special case of SF (in which each team has capacity 1)

– There is an efficient algorithm to find a stable fixtures allocation, if one exists, given an instance of SF

Irving and Scott (2002), “The Stable Fixtures Problem”, submitted for publication

• Exchange-Stable Roommates Problem (ESR)• Coalition Formation Games

L4 #102

Summary

• Stable Roommates problem (SR)

– classical algorithm (Irving, 1985)

• Stable Roommates problem with Ties (SRT)

– super-stability (Irving and Manlove, 2002)– strong stability– weak stability (Ronn, 1990)

• Stable Crews problem (SC)– (Cechlarova and Ferkova, 2001)

• Stable Fixtures problem (SF)– (Irving and Scott, 2002)

Open questions:

• SRT under super-stability – rotations?• SRT under strong stability• SC with Ties• SF with Ties