Title: The Stable Roommates Problem
1The 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
2- Stable Roommates (SR) definition
- Input 2n persons each person ranks all 2n-1
- other 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
3- Stable Roommates (SR) definition
- Input 2n persons each person ranks all 2n-1
- other 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 4
- 2 4 3 1
4- Stable Roommates (SR) definition
- Input 2n persons each person ranks all 2n-1
- other 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 4
- 2 4 3 1
5- Stable Roommates (SR) definition
- Input 2n persons each person ranks all 2n-1
- other 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 4
- 2 4 3 1
6Stable matching in I1 1 3 2 4 2 4 3
1 3 2 1 4 4 1 3 2
7Stable matching in I1 1 3 2 4 2 4 3
1 3 2 1 4 4 1 3 2 Example SR
instance I2 1 3 2 4 2 1 3 4 3 2
1 4 4 1 2 3
8Stable matching in I1 1 3 2 4 2 4 3
1 3 2 1 4 4 1 3 2 Example SR
instance I2 1 3 2 4 2 1 3 4 3 2
1 4 4 1 2 3
9Stable matching in I1 1 3 2 4 2 4 3
1 3 2 1 4 4 1 3 2 Example SR
instance I2 1 3 2 4 2 1 3 4 3 2
1 4 4 1 2 3
10Stable matching in I1 1 3 2 4 2 4 3
1 3 2 1 4 4 1 3 2 Example SR
instance I2 1 3 2 4 2 1 3 4 3 2
1 4 4 1 2 3 1 3 2 4 2 1 3 4
3 2 1 4 4 1 2 3
11Stable matching in I1 1 3 2 4 2 4 3
1 3 2 1 4 4 1 3 2 Example SR
instance I2 1 3 2 4 2 1 3 4 3 2
1 4 4 1 2 3 1 3 2 4 2 1 3 4
3 2 1 4 4 1 2 3
12Stable matching in I1 1 3 2 4 2 4 3
1 3 2 1 4 4 1 3 2 Example SR
instance I2 1 3 2 4 2 1 3 4 3 2
1 4 4 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
13Stable matching in I1 1 3 2 4 2 4 3
1 3 2 1 4 4 1 3 2 Example SR
instance I2 1 3 2 4 2 1 3 4 3 2
1 4 4 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
14Stable matching in I1 1 3 2 4 2 4 3
1 3 2 1 4 4 1 3 2 Example SR
instance I2 1 3 2 4 2 1 3 4 3 2
1 4 4 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.
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
order - Output 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
16Reduction 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 Um1, m2,..., mn
is the set of men, and Ww1, w2,..., wn is the
set of women SR instance J People comprise men
in U and women in W mis list in J is his list
in I together with the men in U\mi appended in
arbitrary order. wis 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?
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, 6577-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
18Phase 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 ps 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 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
19Phase 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 ps 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 / from 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
20Phase 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 ps 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 / from 1 4 6 2 5
3 4 2 6 3 5 1 4 3 4 5 1 6 2 4
2 6 5 1 3 1 5 4 2 3 6 1 6 5 1
4 2 3 p1
21Phase 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 ps 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 / from 1 4 6 2 5
3 4 2 6 3 5 1 4 3 4 5 1 6 2 4
2 6 5 1 3 1 5 4 2 3 6 1 6 5 1
4 2 3 p1
?
22Phase 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 ps 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 / from 1 4 6 2 5
3 4 2 6 3 5 1 4 3 4 5 1 6 2 4
2 6 5 1 3 1 5 4 2 3 6 1 6 5 1
4 2 3 p1
?
?
23Phase 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 ps 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 / from 1 4 6 2 5
3 4 2 6 3 5 1 4 6 3 4 5 1 6
2 4 2 6 5 1 3 1 5 4 2 3 6
1 6 5 1 4 2 3 2 p2
?
?
24Phase 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 ps 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 / from 1 4 6 2 5
3 4 2 6 3 5 1 4 6 3 4 5 1 6
2 4 2 6 5 1 3 1 5 4 2 3 6
1 6 5 1 4 2 3 2 p2
?
?
?
?
25Phase 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 ps 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 / from 1 4 6 2 5
3 4 2 6 3 5 1 4 6 3 4 5 1 6
2 5 4 2 6 5 1 3 1 5 4 2 3 6
1 3 6 5 1 4 2 3 2 p3
?
?
?
?
26Phase 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 ps 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 / from 1 4 6 2 5
3 4 2 6 3 5 1 4 6 3 4 5 1 6
2 5 4 2 6 5 1 3 1 5 4 2 3 6
1 3 6 5 1 4 2 3 2 p3
?
?
?
?
?
?
?
?
27Phase 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 ps 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 / from 1 4 6 2 5
3 4 2 6 3 5 1 4 6 4 3 4 5 1 6
2 5 4 2 6 5 1 3 2 1 5 4 2 3 6
1 3 6 5 1 4 2 3 2 p4
?
?
?
?
?
?
?
?
28Phase 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 ps 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 / from 1 4 6 2 5
3 4 2 6 3 5 1 4 6 4 3 4 5 1 6
2 5 4 2 6 5 1 3 2 5/1 5 4 2 3 6
1 4 3 6 5 1 4 2 3 2 p5
?
?
?
?
?
?
?
?
29Phase 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 ps 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 / from 1 4 6 2 5 3 2
6 3 5 1 4 6 4 3 4 5 1 6 2 5 4
2 6 5 1 3 2 5 5 4 2 3 6 1 4
3 6 5 1 4 2 3 2 p5
?
?
?
?
?
?
?
?
?
?
30Phase 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 ps 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 / from 1 4 6 2 5
3 6 2 6 3 5 1 4 6 4 3 4 5 1 6
2 5 4 2 6 5 1 3 2 5 5 4 2 3 6
1 4 3 6 5 1 4 2 3 1/2 p1
?
?
?
?
?
?
?
?
?
?
31Phase 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 ps 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 / from 1 4 6 2 5
3 6 2 6 3 5 1 4 4 3 4 5 1 6
2 5 4 2 6 5 1 3 2 5 5 4 2 3 6
1 4 3 6 5 1 4 2 3 1 p1
?
?
?
?
?
?
?
?
?
?
?
?
?
?
32Phase 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 ps 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 / from 1 4 6 2 5
3 6 2 6 3 5 1 4 3 4 3 4 5 1 6
2 5 2 4 2 6 5 1 3 2 5 5 4 2 3
6 1 4 3 6 5 1 4 2 3 1 p2
?
?
?
?
?
?
?
?
?
?
?
?
?
?
33Phase 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 ps 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 / from 1 4 6 2 5 3 6
6 2 6 3 5 1 4 3 4 3 4 5 1 6
2 5 2 4 2 6 5 1 3 2 5 5 4 2 3
6 1 4 3 6 5 1 4 2 3 1 1 p6
?
?
?
?
?
?
?
?
?
?
?
?
?
?
34Phase 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 ps 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 / from 1 4 6 2 5 3 6
6 2 6 3 5 1 4 3 4 3 4 5 1 6
2 5 2 4 2 6 5 1 3 2 5 5 4 2 3
6 1 4 3 6 5 1 4 2 3 1 1 p6
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
35Phase 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 ps 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 / from 1 6 6
6 2 3 5 4 3 4 3 5 2 5 2 4
2 5 2 5 5 4 2 3 4 3 6
1 1 1
36- Some notation
- T denotes the set of preference lists after Phase
1 - fT(x) denotes the first person on xs list
- sT(x) denotes the second person on xs list
- lT(x) denotes the last person on xs list
- At the termination of Phase 1
- y fT(x) if and only if xlT(y)
- the pair x,y is absent if and only if x
prefers - lT(x) to y, or y prefers lT(y) to x
- 3. no preference list is empty
- assigned to / from
- 1 6 6 6
- 2 3 5 4 3 4
- 3 5 2 5 2
37Stable tables Any set of preference lists
satisfying 1, 2 and 3 above is called a stable
table Lemma Suppose that, during the execution
of Phase 1, no persons 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
persons list becomes empty. Then no stable
matching exists. So if somebodys list becomes
empty during Phase 1, we can immediately
halt. Otherwise, proceed to Phase 2
38- Phase 2 of the algorithm
- Deals with the fact that the assignment relation
is - not symmetric in general
- involves rotation eliminations
- assigned to / from
- 1 6 6 6
- 2 3 5 4 3 4
- 3 5 2 5 2
- 4 2 5 2 5
- 5 4 2 3 4 3
- 6 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 yifT(xi) and yi1sT(xi) for all
i - (0 ? i ? r-1).
39- Phase 2 of the algorithm
- Deals with the fact that the assignment relation
is - not symmetric in general
- involves rotation eliminations
- assigned to / from
- 1 6 6 6
- 2 3 5 4 3 4
- 3 5 2 5 2
- 4 2 5 2 5
- 5 4 2 3 4 3
- 6 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 yifT(xi) and yi1sT(xi) for all
i - (0 ? i ? r-1).
40- Phase 2 of the algorithm
- Deals with the fact that the assignment relation
is - not symmetric in general
- involves rotation eliminations
- assigned to / from
- 1 6 6 6
- 2 3 5 4 3 4
- 3 5 2 5 2
- 4 2 5 2 5
- 5 4 2 3 4 3
- 6 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 yifT(xi) and yi1sT(xi) for all
i - (0 ? i ? r-1).
41- Phase 2 of the algorithm
- Deals with the fact that the assignment relation
is - not symmetric in general
- involves rotation eliminations
- assigned to / from
- 1 6 6 6
- 2 3 5 4 3 4
- 3 5 2 5 2
- 4 2 5 2 5
- 5 4 2 3 4 3
- 6 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 yifT(xi) and yi1sT(xi) for all
i - (0 ? i ? r-1).
42- Phase 2 of the algorithm
- Deals with the fact that the assignment relation
is - not symmetric in general
- involves rotation eliminations
- assigned to / from
- 1 6 6 6
- 2 3 5 4 3 4
- 3 5 2 5 2
- 4 2 5 2 5
- 5 4 2 3 4 3
- 6 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 yifT(xi) and yi1sT(xi) for all
i - (0 ? i ? r-1).
43Some intuition behind rotations The rotation
?(x0, y0), (x1, y1) (3,5), (4,2) is exposed in
T assigned to / from 1
6 6 6 2 3 5 4 3 4 3 5
2 5 2 4 2 5 2 5 5 4 2 3
4 3 6 1 1 1 x0 has a
preference list of length gt1, and so is
not assigned to / from the same person The
effect of ? is equivalent to supposing that
44Some intuition behind rotations The rotation
?(x0, y0), (x1, y1) (3,5), (4,2) is exposed in
T assigned to / from 1
6 6 6 2 3 5 4 3 4 3 5
2 2 4 2 5 2 5 5 4 2 3
4 6 1 1 1 x0 has a preference
list of length gt1, and so is not assigned to /
from the same person The effect of ? is
equivalent to supposing that y0 rejects x0
?
?
45Some intuition behind rotations The rotation
?(x0, y0), (x1, y1) (3,5), (4,2) is exposed in
T assigned to / from 1
6 6 6 2 3 5 4 3 3/4 3 5
2 2 2 4 2 5 2 5 5 4 2 3
4 6 1 1 1 x0 has a
preference list of length gt1, and so is
not assigned to / from the same person The
effect of ? is equivalent to supposing that y0
rejects x0 , so that x0 proposes to y1
?
?
46Some intuition behind rotations The rotation
?(x0, y0), (x1, y1) (3,5), (4,2) is exposed in
T assigned to / from 1
6 6 6 2 3 5 4 3 3 3 5
2 2 2 4 2 5 5 5 4 2 3
4 6 1 1 1 x0 has a
preference list of length gt1, and so is
not assigned 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
?
?
?
?
?
?
47Some intuition behind rotations The rotation
?(x0, y0), (x1, y1) (3,5), (4,2) is exposed in
T assigned to / from 1
6 6 6 2 3 5 4 3 3 3 5
2 2 2 4 2 5 5 5 5 4 2 3
4 4 6 1 1 1 x0 has a
preference list of length gt1, and so is
not assigned 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
?
?
?
?
?
?
48Some intuition behind rotations The rotation
?(x0, y0), (x1, y1) (3,5), (4,2) is exposed in
T assigned to / from 1
6 6 6 2 3 5 4 3 3 3 5
2 2 2 4 2 5 5 5 5 4 2 3
4 4 6 1 1 1 x0 has a
preference list of length gt1, and so is
not assigned 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 remaining after elimination
of ?
?
?
49This is T / ?
assigned to / from 1 6 6 6 2
3 3 3 3 2 2 2 4 5 5
5 5 4 4 4 6 1 1
1 It corresponds to the matching 1,6, 2,3,
4,5 Lemma If T is a stable table with
containing a list with at least two entries, then
there is a rotation ? exposed in T Lemma If T
is a stable table, and T / ? contains no empty
lists, then T / ? is a stable table Lemma If
there is a stable matching contained in T and ?
is a rotation exposed in T, then there is a
stable matching contained in T / ?
50Phase 2 of Algorithm SR T preference lists
generated by Phase 1 while ((some list in T is
of length gt1) 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
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
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
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
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
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, 4385-105
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, 4385-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 3
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, 4385-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 3
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, 4385-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 3
?
?
?
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, 4385-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 3
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
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, 4385-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 3
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
73Phase 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
74- After Phase 1
- If every persons list has length 1 then the
lists - specify a super-stable matching
- If some persons list is empty then no
- super-stable matching exists
- If nobodys list is empty and some persons list
- has length gt1 then we move on to Phase 2
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
75- After Phase 1
- If every persons list has length 1 then the
lists - specify a super-stable matching
- If some persons list is empty then no
- super-stable matching exists
- If nobodys list is empty and some persons list
- has length gt1 then we move on to Phase 2
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
- Phase 2 reject and reactivate Phase 1
76- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
77- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
?
?
78- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
?
?
?
79- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
?
?
?
?
80- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
- After Phase 1, person 3s list is empty
?
?
?
?
81- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
- After Phase 1, person 3s list is empty
- Reinstate the preference lists to their
- status after Phase 1
- 1 6
- 2 3 5 4
?
?
?
?
82- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
- After Phase 1, person 3s 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 6
- 2 3 5 4
?
?
?
?
?
?
83- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
- After Phase 1, person 3s 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 6
- 2 3 5 4
?
?
?
?
?
?
84- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
- After Phase 1, person 3s 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 6
- 2 3 5 4
?
?
?
?
?
?
?
?
85- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
- After Phase 1, person 3s 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 6
- 2 3 5 4
?
?
?
?
?
?
?
?
?
?
86- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
- After Phase 1, person 3s 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 6
- 2 3 5 4
?
?
?
?
?
?
?
?
?
?
87- Let person 2 be rejected by person 3
- 1 6
- 2 3 5 4
- 3 5 2
- 4 2 5
- 5 4 2 3
- 6 1
- After Phase 1, person 3s 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 6
- 2 3 5 4
?
?
?
?
?
?
?
?
?
?
88- 1 6
- 2 3
- 3 2
- 4 5
- 5 4
- 6 1
- All lists have length 1
- 1 (6 4) 2 5 3
- 2 6 3 5 1 4
- 3 (5 4) 1 6 2
- 4 2 6 5 (1 3)
- 5 4 2 3 6 1
- 6 5 1 4 2 3
- 1,6, 2,3, 4,5 is a super-stable matching
89Phase 2 of Algorithm SRT-Super T preference
lists generated by Phase 1 while (some person
ps list in T is of length gt 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 /
90Phase 2 of Algorithm SRT-Super T preference
lists generated by Phase 1 while (some person
ps list in T is of length gt 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
91Phase 2 of Algorithm SRT-Super T preference
lists generated by Phase 1 while (some person
ps list in T is of length gt 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
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
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
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
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
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
- 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
- role
- 1 B 4B 3A 2A 2B 3B 4A
- 2 A 1B 4A 3B 4B 1A 3A
- 3 B 1A 2A 2B 4A 4B 1B
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
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
preferences - 1 2 2 3 4
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
preferences - 1 2 2 3 4
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
preferences - 1 2 2 3 4
- 2 2 1 3 4
- 3 2 1 2 4
101- Example SF instance
- team capacity
preferences - 1 2 2 3 4
- 2 2 1 3 4
- 3 2 1 2 4
- 4 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
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