The Stable Roommates Problem and Some Extensions David Manlove University of Glasgow
of 102/102
L4 #1 The Stable Roommates Problem and Some Extensions David Manlove University of Glasgow Department of Computing Science Supported by EPSRC grant GR/M13329 nd Nuffield Foundation award NUF-NAL-0
The Stable Roommates Problem and Some Extensions David Manlove University of Glasgow
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 Presentation
Text of The Stable Roommates Problem and Some Extensions David Manlove University of Glasgow
No Slide TitleL4 #*
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
L4 #*
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
3: 2 1 4
4: 1 3 2
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
3: 2 1 4
4: 1 3 2
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
3: 2 1 4
4: 1 3 2
L4 #*
2: 4 3 1
3: 2 1 4
4: 1 3 2
2: 4 3 1
3: 2 1 4
4: 1 3 2
2: 1 3 4
3: 2 1 4
4: 1 2 3
2: 4 3 1
3: 2 1 4
4: 1 3 2
2: 1 3 4
3: 2 1 4
4: 1 2 3
2: 4 3 1
3: 2 1 4
4: 1 3 2
2: 1 3 4
3: 2 1 4
4: 1 2 3
2: 4 3 1
3: 2 1 4
4: 1 3 2
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
2: 4 3 1
3: 2 1 4
4: 1 3 2
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
2: 4 3 1
3: 2 1 4
4: 1 3 2
2: 1 3 4
3: 2 1 4
4: 1 2 3
L4 #*
2: 4 3 1
3: 2 1 4
4: 1 3 2
2: 1 3 4
3: 2 1 4
4: 1 2 3
L4 #*
2: 4 3 1
3: 2 1 4
4: 1 3 2
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.
L4 #*
Input: n men and n women; each person ranks all
n members of the opposite sex in order
Output: a stable matching
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 #*
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 #*
matching, given an instance of SR?
Irving (1985) “An efficient algorithm for the
‘Stable Roommates’ Problem”, Journal of
Algorithms, 6:577-595
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
no stable matching exists
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 */
if (r is assigned to q)
break the assignment;
L4 #*
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 */
if (r is assigned to q)
break the assignment;
L4 #*
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 */
if (r is assigned to q)
break the assignment;
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
p=1
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 */
if (r is assigned to q)
break the assignment;
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
p=1
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 */
if (r is assigned to q)
break the assignment;
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
p=1
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 */
if (r is assigned to q)
break the assignment;
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
p=2
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 */
if (r is assigned to q)
break the assignment;
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
p=2
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 */
if (r is assigned to q)
break the assignment;
p=3
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 */
if (r is assigned to q)
break the assignment;
p=3
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 */
if (r is assigned to q)
break the assignment;
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
p=4
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 */
if (r is assigned to q)
break the assignment;
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
p=5
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 */
if (r is assigned to q)
break the assignment;
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
p=5
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 */
if (r is assigned to q)
break the assignment;
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
p=1
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 */
if (r is assigned to q)
break the assignment;
4: 2 6 5 1 3 2 5
5: 4 2 3 6 1 4 3
6: 5 1 4 2 3 1
p=1
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 */
if (r is assigned to q)
break the assignment;
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
p=2
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 */
if (r is assigned to q)
break the assignment;
p=6
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 */
if (r is assigned to q)
break the assignment;
p=6
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 */
if (r is assigned to q)
break the assignment;
3: 5 2 5 2
4: 2 5 2 5
5: 4 2 3 4 3
6: 1 1 1
T denotes the set of preference lists after Phase 1
fT(x) denotes the first person on x’s list
sT(x) denotes the second person on x’s list
lT(x) denotes the last person on x’s list
At the termination of Phase 1:
y= fT(x) if and only if x=lT(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
3: 5 2 5 2
4: 2 5 2 5
5: 4 2 3 4 3
6: 1 1 1
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 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 #*
Deals with the fact that the assignment relation is
not symmetric in general
3: 5 2 5 2
4: 2 5 2 5
5: 4 2 3 4 3
6: 1 1 1
=(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).
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 #*
Deals with the fact that the assignment relation is
not symmetric in general
3: 5 2 5 2
4: 2 5 2 5
5: 4 2 3 4 3
6: 1 1 1
=(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).
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 #*
Deals with the fact that the assignment relation is
not symmetric in general
3: 5 2 5 2
4: 2 5 2 5
5: 4 2 3 4 3
6: 1 1 1
=(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).
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 #*
Deals with the fact that the assignment relation is
not symmetric in general
3: 5 2 5 2
4: 2 5 2 5
5: 4 2 3 4 3
6: 1 1 1
=(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).
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 #*
Deals with the fact that the assignment relation is
not symmetric in general
3: 5 2 5 2
4: 2 5 2 5
5: 4 2 3 4 3
6: 1 1 1
=(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).
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 #*
exposed in T
assigned to / from
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 >1, and so is not
assigned to / from the same person
The effect of is equivalent to supposing that:
L4 #*
exposed in T
assigned to / from
3: 5 2 2
6: 1 1 1
x0 has a preference list of length >1, and so is not
assigned to / from the same person
The effect of is equivalent to supposing that:
y0 rejects x0
exposed in T
assigned to / from
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 >1, 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
exposed in T
assigned to / from
3: 5 2 2 2
4: 2 5 5
6: 1 1 1
x0 has a preference list of length >1, 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
exposed in T
assigned to / from
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 >1, 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
exposed in T
assigned to / from
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 >1, 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
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 /
L4 #*
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 / ;
output “no stable matching exists”;
else
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 #*
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
L4 #*
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
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
is the same as normal stability
Recall: an SR instance can have no stable matching
L4 #*
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
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
is the same as normal stability
Recall: an SR instance can have no stable matching
L4 #*
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
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
is the same as normal stability
Recall: an SR instance can have no stable matching
L4 #*
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
L4 #*
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
L4 #*
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
if one exists, given an SRT instance
Irving and Manlove (2002) “The Stable
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
Phase 1: similar to SR case
sequence of proposals and deletions
persons become provisionally assigned to /
assigned from other persons
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 */
for (each strict successor r of p in q's list) {
if (r is assigned to q)
break the assignment;
break all assignments to q;
for (each r tied with p in q's list)
delete the pair {q,r};
After Phase 1:
If every person’s list has length 1 then the lists
specify a super-stable matching
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: 6
After Phase 1:
If every person’s list has length 1 then the lists
specify a super-stable matching
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: 6
select a person p whose list is of length >1
let p be rejected by first person on his list
reactivate Phase 1
1: 6
1: 6
1: 6
1: 6
1: 6
1: 6
Reinstate the preference lists to their
status after Phase 1
1: 6
Reinstate the preference lists to their
status after Phase 1
Reactivate Phase 1
1: 6
1: 6
Reinstate the preference lists to their
status after Phase 1
Reactivate Phase 1
1: 6
1: 6
Reinstate the preference lists to their
status after Phase 1
Reactivate Phase 1
1: 6
1: 6
Reinstate the preference lists to their
status after Phase 1
Reactivate Phase 1
1: 6
1: 6
Reinstate the preference lists to their
status after Phase 1
Reactivate Phase 1
1: 6
1: 6
Reinstate the preference lists to their
status after Phase 1
Reactivate Phase 1
1: 6
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
L4 #*
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;
T := T2;
}
L4 #*
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;
T := T2;
}
Theorem: (1) Algorithm SRT-Super is correct
(2) It takes cn2 steps for some c
L4 #*
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;
T := T2;
}
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 #*
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:
Does there exist an efficient algorithm to
decide whether a strongly stable matching
exists, given an instance of SRT?
L4 #*
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 problem of deciding whether an instance
of SRT admits a weakly stable matching is
NP-complete
Roommates Problem with Ties”, Journal
of Algorithms, 43:85-105
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 #*
Each person p can have one of two roles, e.g.
(A) Captain (pA) or (B) Navigator (pB)
role
navigator to person 4 as a captain
A matching M is a disjoint set of pairs of
persons with roles
each pair has exactly one Captain (A) and
exactly one Navigator (B)
L4 #*
(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
role
role
The above matching is stable
L4 #*
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
stable matching, if one exists, given an
instance of SC
deciding whether a stable matching exists
is NP-complete
publication
L4 #*
teams having preferences over each other
Two given teams can play each other at
most once
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
L4 #*
teams having preferences over each other
Two given teams can play each other at
most once
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}, {1, 4}, {2, 3}, {3, 4}
L4 #*
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
The above fixture allocation is not stable as
{1,3} is a blocking pair
L4 #*
The above fixture allocation is stable
SR is a special case of SF (in which each team
has capacity 1)
stable fixtures allocation, if one exists, given
an instance of SF
Fixtures Problem”, submitted for
super-stability (Irving and Manlove, 2002)
strong stability