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

Click here to load reader

Post on 08-Jan-2016

40 views

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

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

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