L3 #1 The Hospitals / Residents Problem and Some Extensions David Manlove University of Glasgow...
-
Upload
angel-williams -
Category
Documents
-
view
216 -
download
2
Transcript of L3 #1 The Hospitals / Residents Problem and Some Extensions David Manlove University of Glasgow...
L3 #1
The Hospitals / Residents Problem and Some Extensions
David Manlove
University of GlasgowDepartment of Computing Science
Supported by EPSRC grant GR/M13329and Nuffield Foundation award NUF-NAL-02
L3 #2
Medical matching: general situation
• Graduating medical students (US: residents; formerly interns; UK: PRHOs) seek hospital appointments
• Free-for-all markets are chaotic
– Danger of residents or hospitals trying to improve their allocation
– Hospitals imposing unrealistic deadlines on residents to decide on offers
• Centralised matching schemes are in operation:
– Residents form preferences over hospitals
– Hospitals form preferences over residents
– No resident receives more than one hospital appointment– No hospital exceeds its capacity
– Residents and hospitals agree to be bound by the outcome of the matching algorithm
• Schemes not based on stability have failed
L3 #3
Hospitals/Residents problem (HR): definitions
• n residents r1, r2, …, rn
• m hospitals h1, h2, …, hm
• Hospital hi has capacity ci
• Each resident ranks a subset of the hospitals instrict order of preference
• Each hospital ranks its applicants in strict order of preference
• r finds h acceptable if h is on r’s preference list; r finds h unacceptable otherwise (and vice
versa)
• A matching M in an instance of HR is an allocation of residents to hospitals such that:
1) (r,h)M r,h find each other acceptable2) No resident receives more than one post3) No hospital exceeds its capacity
L3 #4
Hospitals/Residents problem: example
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #5
Hospitals/Residents problem: matching
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
M = {(r1, h1), (r2, h2), (r3, h3), (r5, h2), (r6, h1)}(size 5)
L3 #6
Hospitals/Residents problem: matching
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• Matching M is stable if M admits no blocking pair– (r,h) is a blocking pair of matching M if:
1) r, h find each other acceptableand2) either r is unmatched in M
or r prefers h to his/her assigned hospital in Mand3) either h is undersubscribed in M
or h prefers r to its worst resident assigned in M
L3 #7
HR: unstable matching
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• Matching M is stable if M admits no blocking pair– (r,h) is a blocking pair of matching M if:
1) r, h find each other acceptableand2) either r is unmatched in M
or r prefers h to his/her allocated hospital in Mand3) either h is undersubscribed in M
or h prefers r to its worst resident assigned in M
Matching above is unstable as e.g. (r2,h1), (r4,h2) and (r4,h3) are blocking pairs
L3 #8
HR: unstable matching
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• Matching M is stable if M admits no blocking pair– (r,h) is a blocking pair of matching M if:
1) r, h find each other acceptableand2) either r is unmatched in M
or r prefers h to his/her allocated hospital in Mand3) either h is undersubscribed in M
or h prefers r to its worst resident assigned in M
Matching above is unstable as e.g. (r2,h1), (r4,h2) and (r4,h3) are blocking pairs
L3 #9
HR: unstable matching
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• Matching M is stable if M admits no blocking pair– (r,h) is a blocking pair of matching M if:
1) r, h find each other acceptableand2) either r is unmatched in M
or r prefers h to his/her allocated hospital in Mand3) either h is undersubscribed in M
or h prefers r to its worst resident assigned in M
Matching above is unstable as e.g. (r2,h1), (r4,h2) and (r4,h3) are blocking pairs
L3 #10
HR: stable matching
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• Matching M is stable if M admits no blocking pair– (r,h) is a blocking pair of matching M if
1) r, h find each other acceptableand2) either r is unmatched in M
or r prefers h to his/her allocated hospital in Mand3) either h is undersubscribed in M
or h prefers r to its worst resident assigned in M
Example shows that, in a given stable matching,• one or more residents may be unmatched• one or more hospitals may be undersubscribed
L3 #11
A special case of HR
• Suppose that all hospitals have capacity 1
– This is the stable marriage problem with unacceptable partners
• Residents are referred to as men, hospitals are referred to as women
• Input to the problem consists of:
– a set of n men {m1,m2,…,mn}
– a set of m women {w1,w2,…,wm}
– for each person q, a preference list in which q ranks a subset of the members of the opposite sex in strict order
• A matching M is a set of disjoint (man,woman) pairs such that (m,w)M only if:
– m finds w acceptable– w finds m acceptable
L3 #12
Unacceptable partners: example instance
m1: w4 w1 w3 w1: m4 m1 m2
m2: w2 w1 w4 w2: m3 m2 m4
m3: w2 w4 w3 w3: m1 m3
m4: w1 w4 w2 w4: m4 m1 m3 m2
Men’s preferences Women’s preferences
• A blocking pair of matching M is a (man,woman) pair (m,w)M such that:
1. m and w find each other acceptable2. m is unmatched in M or prefers w to his
partner in M3. w is unmatched in M or prefers m to her
partner in M
• Matching M is stable if M admits no blocking pair
L3 #13
Unacceptable partners: example instance
m1: w4 w1 w3 w1: m4 m1 m2
m2: w2 w1 w4 w2: m3 m2 m4
m3: w2 w4 w3 w3: m1 m3
m4: w1 w4 w2 w4: m4 m1 m3 m2
Men's preferences Women's preferences
• A blocking pair of matching M is a (man,woman) pair (m,w)M such that:
1. m and w find each other acceptable2. m is unmatched in M or prefers w to his partner in M3. w is unmatched in M or prefers m to her partner in M
• Matching M is stable if M admits no blocking pair
L3 #14
Unacceptable partners: example instance
m1: w4 w1 w3 w1: m4 m1 m2
m2: w2 w1 w4 w2: m3 m2 m4
m3: w2 w4 w3 w3: m1 m3
m4: w1 w4 w2 w4: m4 m1 m3 m2
Men's preferences Women's preferences
• A blocking pair of matching M is a (man,woman) pair (m,w)M such that:
1. m and w find each other acceptable2. m is unmatched in M or prefers w to his partner in M3. w is unmatched in M or prefers m to her partner in M
• Matching M is stable if M admits no blocking pair
• The matching above is not stable as (m3,w2) and (m3,w3) are blocking pairs
L3 #15
Unacceptable partners: example instance
m1: w4 w1 w3 w1: m4 m1 m2
m2: w2 w1 w4 w2: m3 m2 m4
m3: w2 w4 w3 w3: m1 m3
m4: w1 w4 w2 w4: m4 m1 m3 m2
Men's preferences Women's preferences
• A blocking pair of matching M is a (man,woman) pair (m,w)M such that:
1. m and w find each other acceptable2. m is unmatched in M or prefers w to his partner in M3. w is unmatched in M or prefers m to her partner in M
• Matching M is stable if M admits no blocking pair
• The matching above is not stable as (m3,w2) and (m3,w3) are blocking pairs
L3 #16
Unacceptable partners: example instance
m1: w4 w1 w3 w1: m4 m1 m2
m2: w2 w1 w4 w2: m3 m2 m4
m3: w2 w4 w3 w3: m1 m3
m4: w1 w4 w2 w4: m4 m1 m3 m2
Men's preferences Women's preferences
• A blocking pair of matching M is a (man,woman) pair (m,w)M such that:
1. m and w find each other acceptable2. m is unmatched in M or prefers w to his partner in M3. w is unmatched in M or prefers m to her partner in M
• Matching M is stable if M admits no blocking pair
• The matching above is stable
L3 #17
Revised Gale/Shapley (GS) algorithm
• A stable matching always exists for a stable marriage instance with unacceptable partners
• A stable matching M may be found efficiently using the revised Gale/Shapley algorithm
– the algorithm takes cmn steps, for some constant c
• Some people may be unmatched in M, but
– the same people are unmatched in all stable matchings– hence all stable matchings have the same size
• Each man matched in M has the best partner he could obtain in any stable matching
• Each woman matched in M has the worst partner she could obtain in any stable matching
• The revised Gale / Shapley algorithm can be extended to HR
L3 #18
Hospital-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some hospital h is undersubscribed) and
(h’s list contains a resident r not provisionally assigned to h)) {
r := first such resident on h’s list;/* h proposes to r */if (r is already assigned to some hospital h’)
break the provisional assignment of r to h’;provisionally assign r to h ;for (each successor h’ of h on r’s list)
delete the pair (r,h’) ;}
• Hospital-oriented GS algorithm:– Gusfield and Irving (1989), Section 1.6.2
L3 #19
Hospital-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some hospital h is undersubscribed) and
(h’s list contains a resident r not provisionally assigned to h)) {
r := first such resident on h’s list;/* h proposes to r */if (r is already assigned to some hospital h’)
break the provisional assignment of r to h’;provisionally assign r to h ;for (each successor h’ of h on r’s list)
delete the pair (r,h’) ;}
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #20
Hospital-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some hospital h is undersubscribed) and
(h’s list contains a resident r not provisionally assigned to h)) {
r := first such resident on h’s list;/* h proposes to r */if (r is already assigned to some hospital h’)
break the provisional assignment of r to h’;provisionally assign r to h ;for (each successor h’ of h on r’s list)
delete the pair (r,h’) ;}
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #21
Hospital-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some hospital h is undersubscribed) and
(h’s list contains a resident r not provisionally assigned to h)) {
r := first such resident on h’s list;/* h proposes to r */if (r is already assigned to some hospital h’)
break the provisional assignment of r to h’;provisionally assign r to h ;for (each successor h’ of h on r’s list)
delete the pair (r,h’) ;}
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #22
Hospital-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some hospital h is undersubscribed) and
(h’s list contains a resident r not provisionally assigned to h)) {
r := first such resident on h’s list;/* h proposes to r */if (r is already assigned to some hospital h’)
break the provisional assignment of r to h’;provisionally assign r to h ;for (each successor h’ of h on r’s list)
delete the pair (r,h’) ;}
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #23
Hospital-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some hospital h is undersubscribed) and
(h’s list contains a resident r not provisionally assigned to h)) {
r := first such resident on h’s list;/* h proposes to r */if (r is already assigned to some hospital h’)
break the provisional assignment of r to h’;provisionally assign r to h ;for (each successor h’ of h on r’s list)
delete the pair (r,h’) ;}
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #24
Hospital-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some hospital h is undersubscribed) and
(h’s list contains a resident r not provisionally assigned to h)) {
r := first such resident on h’s list;/* h proposes to r */if (r is already assigned to some hospital h’)
break the provisional assignment of r to h’;provisionally assign r to h ;for (each successor h’ of h on r’s list)
delete the pair (r,h’) ;}
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #25
Hospital-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some hospital h is undersubscribed) and
(h’s list contains a resident r not provisionally assigned to h)) {
r := first such resident on h’s list;/* h proposes to r */if (r is already assigned to some hospital h’)
break the provisional assignment of r to h’;provisionally assign r to h ;for (each successor h’ of h on r’s list)
delete the pair (r,h’) ;}
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #26
Hospital-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some hospital h is undersubscribed) and
(h’s list contains a resident r not provisionally assigned to h)) {
r := first such resident on h’s list;/* h proposes to r */if (r is already assigned to some hospital h’)
break the provisional assignment of r to h’;provisionally assign r to h ;for (each successor h’ of h on r’s list)
delete the pair (r,h’) ;}
r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #27
Hospital-optimal stable matching
• Theorem: Given an arbitrary instance of HR:
– the hospital-oriented GS algorithm always terminates with a stable matching M
– the algorithm takes cmn steps, for some constant c
– each hospital that is full in M is assigned the best set of residents that it could obtain in any stable matching
– each resident assigned in M is assigned to the worst hospital that he could obtain in any stable matching
• The matching output by the hospital-oriented GS algorithm is called the hospital-optimal stable matching
• Hospital-oriented GS algorithm used National Resident Matching Program (US) since 1952
• Pressure from student bodies associated with the NRMP led to the incorporation of the resident-oriented GS algorithm!
L3 #28
Resident-oriented GS algorithm for HR
assign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}
• Resident-oriented GS algorithm:–Gusfield and Irving (1989), Section 1.6.3
L3 #29
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #30
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #31
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #32
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #33
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #34
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #35
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #36
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #37
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #38
Resident-oriented GS algorithm for HRassign each resident to be free ;assign each hospital to be totally unsubscribed ;while ((some resident r is free) and
(r has a nonempty list)) {h := first hospital on r’s list;/* r proposes to h */provisionally assign r to h ; if (h is oversubscribed) {
s’ := worst resident provisionally assigned to h ;assign s’ to be free ;delete the pair (s’,h) ;
}if (h is full) {
s := worst resident provisionally assigned to h ;for (each successor s’ of s on h’s list)
delete the pair (s’,h) ;}
}r1: h2 h1
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #39
Resident-optimal stable matching
• Theorem: Given an arbitrary instance of HR:
– the resident-oriented GS algorithm always terminates with a stable matching M
– the algorithm takes cmn steps, for some constant c
– each resident assigned in M is assigned to the best hospital that he could be assigned to in any stable matching
• The matching output by the resident-oriented GS algorithm is called the resident-optimal stable matching
r1: h2 h1 resident-optimal
r2: h1 h2
r3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #40
Resident-optimal stable matching
• Theorem: Given an arbitrary instance of HR:
– the resident-oriented GS algorithm always terminates with a stable matching M
– the algorithm takes cmn steps, for some constant c
– each resident assigned in M is assigned to the best hospital that he could be assigned to in any stable matching
• The matching output by the resident-oriented GS algorithm is called the resident-optimal stable matching
r1: h2 h1 resident-optimal
r2: h1 h2 hospital-optimal
r3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #41
The “Rural Hospitals Theorem”
• There may be more than one stable matching, but:
– All stable matchings have the same size
– The same residents are assigned in all stable matchings
– Any hospital that is undersubscribed in one stable matching is assigned exactly the same residents in all stable matchings
• This is called the “Rural Hospitals Theorem”– Gusfield and Irving (1989), Section 1.6.4
r1: h2 h1 resident-optimal
r2: h1 h2 hospital-optimal
r3: h1 h3
r4: h2 h3 h1: r1 r3 r2 r5 r6
r5: h2 h1 h2: r2 r6 r1 r4 r5
r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
L3 #42
Summary
Hospitals / Residents problem:
• Hospital-oriented GS algorithm• Resident-oriented GS algorithm
give hospital-optimal and resident-optimal stable matchings, respectively
Centralised Matching Schemes
• National Resident Matching Program (US)• Canadian Resident Matching Service• Scottish PRHO Allocations scheme (SPA)
all generate resident-optimal stable matchings
Seminal paper:
• Gale and Shapley (1962): “College admissions and the stability of marriage”, American Mathematical Monthly, 69:9-15
But the NRMP’s hospital-oriented GSalgorithm predated Gale and Shapley’swork by 10 years!
L3 #43
Hospitals/Residents problem with Ties (HRT)
• Participants may wish to express ties in their preference lists
– Irving (1994): “Stable marriage and indifference”, Discrete Applied Mathematics, 48:261-272
r1: h1 h2
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r2 r3 r5 r6
r5: h2 h1 h2: r2 r1 r6 (r4 r5) r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• A matching is weakly stable if it is stable for some instance of HR obtained by breaking the ties
• There is always a weakly stable matching in an instance of HRT
• A weakly stable matching can be found using the resident-oriented GS algorithm
L3 #44
Hospitals/Residents problem with Ties (HRT)
• Participants may wish to express ties in their preference lists
– Irving (1994): “Stable marriage and indifference”, Discrete Applied Mathematics, 48:261-272
r1: h1 h2
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r2 r3 r5 r6
r5: h2 h1 h2: r2 r1 r6 r4 r5 r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• A matching is weakly stable if it is stable for some instance of HR obtained by breaking the ties
• There is always a weakly stable matching in an instance of HRT
• A weakly stable matching can be found using the resident-oriented GS algorithm
L3 #45
Hospitals/Residents problem with Ties (HRT)
• Participants may wish to express ties in their preference lists
– Irving (1994): “Stable marriage and indifference”, Discrete Applied Mathematics, 48:261-272
r1: h1 h2
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r2 r3 r5 r6
r5: h2 h1 h2: r2 r1 r6 r4 r5 r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• A matching is weakly stable if it is stable for some instance of HR obtained by breaking the ties
• There is always a weakly stable matching in an instance of HRT
• A weakly stable matching can be found using the resident-oriented GS algorithm
L3 #46
Hospitals/Residents problem with Ties (HRT)
• Participants may wish to express ties in their preference lists
– Irving (1994): “Stable marriage and indifference”, Discrete Applied Mathematics, 48:261-272
r1: h1 h2
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r2 r3 r5 r6
r5: h2 h1 h2: r2 r1 r6 (r4 r5) r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• A matching is weakly stable if it is stable for some instance of HR obtained by breaking the ties
• There is always a weakly stable matching in an instance of HRT
• A weakly stable matching can be found using the resident-oriented GS algorithm
L3 #47
Weakly stable matchings in HRT
r1: h1 h2
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r2 r3 r5 r6
r5: h2 h1 h2: r2 r1 r6 r4 r5 r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
r1: h1 h2
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r2 r3 r5 r6
r5: h2 h1 h2: r2 r1 r6 r5 r4 r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• The weakly stable matchings may be of different cardinalities
L3 #48
Maximum / minimum weakly stable matchings
Do efficient algorithms exist for finding maximum or minimum cardinality weakly stable matchings, given an instance of HRT?
Unfortunately, this is unlikely
Each of the problems of finding a maximum or minimum weakly stable matching is “NP-hard” and the result is true even if:
1. each hospital has capacity 12. the ties occur in the preference lists on one side only3. there is at most one tie per preference list, and4. any tie is of length 2
• Iwama, Manlove, Miyazaki & Morita (1999): “Stable marriage with incomplete lists and ties”, Proc. ICALP ’99
• Manlove, Irving, Iwama, Miyazaki & Morita (2002): “Hard Variants of Stable Marriage”, Theoretical Computer Science, 276 (1-2) : 261-279, 2002
L3 #49
Summary: weakly stable matchings
• Weakly stable matchings can be of different sizes, and it is hard to find a maximum-sized weakly stable matching
• Weakly stable matchings could be undermined by a “bribery” situation
r1: h1 h2
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r2 r3 r5 r6
r5: h2 h1 h2: r2 r1 r6 (r4 r5) r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
r1: h1 h2
r2: h1 h2 Each hospital has 2 postsr3: h1 h3
r4: h2 h3 h1: r1 r2 r3 r5 r6
r5: h2 h1 h2: r2 r1 r6 (r5 r4)r6: h1 h2 h3: r4 r3
Resident preferences Hospital preferences
• Define a stronger form of stability in HRT
L3 #50
Super-stable matchings in HRT
• A matching is super-stable if it is stable in every instance of HR obtained by breaking the ties
• A super-stable matching is weakly stable
• Proposition: Let I be an instance of HRT. If I admits a super-stable matching then all weakly stable matchings have the same size
• Therefore a super-stable matching cannot match fewer people than would be matched by a weakly stable matching
• A super-stable matching also guards against “bribery”
• But, a super-stable matching may not exist!
• Efficient algorithm to find a super-stable matching, if one exists, given an HRT instance
– Irving, Manlove and Scott (2000): “The Hospitals / Residents Problem with Ties”, Proc. SWAT 2000
L3 #51
Algorithm for HRT under super-stability
assign each resident to be free ;assign each hospital to be totally unsubscribed ;for (each hospital h)
full(h) := false ;while ((some resident r is free) and
(r has a nonempty list)) {for (each hospital h at the head of r’s list) {
/* r proposes to h */provisionally assign r to h ;
if (h is oversubscribed)for (each resident s’ at the tail of h’s list) {
if (s’ is provisionally assigned to h)break the assignment ;
delete the pair (s’,h ) ; }if (h is full) {
full(h) := true ;s := worst resident provisionally assigned to h ;for (each strict successor s’ of s on h’s list)
delete the pair (s’,h ) ; } }}if ((some resident is multiply assigned) or
(some hospital h is undersubscribed and full(h) )no super-stable matching exists ;
elsethe assignment relation is a super-stable matching ;
L3 #52
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2
r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #53
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2 r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #54
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2
r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #55
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2
r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #56
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2
r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #57
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2 r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #58
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2 r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #59
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2
r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #60
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2
r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #61
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2
r3: h1 h3 fullr4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #62
Example execution of the algorithm
r1: h2 h1 Each hospital has 2 postsr2: h1 h2
r3: h1 h3
r4:(h2 h3) h1: r3 r1 r2 r5 r6
r5: h1 h2 h2: r2 r1 r6 (r4 r5) r6: h2 h1 h3: r4 r3
Resident preferences Hospital preferences• During the proposal sequence, for any hospital h,
– If h is oversubscribed then all residents tied in h’s last place are rejected
– If h is full then all residents strictly poorer than h’s worst provisional assignee are prevented
from proposing to h • At termination
– if some hospital is undersubscribed and was previously full or
– some resident is multiply assigned
then no super-stable matching exists, otherwisethe assignment relation is a super-stable matching
L3 #63
Super-stable matchings in HRT
• Theorem: Given an arbitrary instance of HRT:
– the algorithm either finds a super-stable matching M, or reports that none exists – the algorithm takes cmn steps, for some constant c
– each resident assigned in M is assigned to the best hospital that he could obtain in any super-stable matching
• We can also formulate a hospital-oriented algorithm
• Theorem: There may be more than one super-stable matching, but:
– All super-stable matchings have the same size
– The same residents are assigned in all super-stable matchings
– Any hospital that is undersubscribed in one super-stable matching is assigned exactly the same residents in all super-stable matchings
L3 #64
Super-stable vs. weakly stable matchings
• If a super-stable matching exists, it should be chosen in favour of a weakly stable matching
• Existence of a super-stable matching
• Structure of super-stable matchings in HRT
• Website for Stable Matching Algorithms project: http://www.dcs.gla.ac.uk/research/algorithms/stable
start
Let I be anHRT instance
Does Iadmit a super-stable
matching?
Find a super-stable
matching
Find a weakly stable
matching
No
Yes
stop
L3 #65
Strategic Issues
• Suppose that I is an instance of HR
• What if a set S of residents were to falsify their true preferences in I, in the hope of achieving a better hospital?
• Example (each hospital has 1 post):
r1: h1 h2 h3 h4 h1: r4 r1 r2 r3
r2: h1 h2 h3 h4 h2: r3 r1 r2 r4
r3: h1 h2 h3 h4 h3: r1 r2 r4 r3
r4: h3 h1 h2 h4 h4: r1 r2 r3 r4
Resident preferences Hospital preferences
L3 #66
Strategic Issues
• Suppose that I is an instance of HR
• What if a set S of residents were to falsify their true preferences in I, in the hope of achieving a better hospital?
• Example (each hospital has 1 post):
r1: h1 h2 h3 h4 h1: r4 r1 r2 r3
r2: h1 h2 h3 h4 h2: r3 r1 r2 r4
r3: h1 h2 h3 h4 h3: r1 r2 r4 r3
r4: h3 h1 h2 h4 h4: r1 r2 r3 r4
Resident preferences Hospital preferences
L3 #67
Strategic Issues
• Suppose that I is an instance of HR
• What if a set S of residents were to falsify their true preferences in I, in the hope of achieving a better hospital?
• Example (each hospital has 1 post):
r1: h1 h2 h3 h4 h1: r4 r1 r2 r3
r2: h1 h2 h3 h4 h2: r3 r1 r2 r4
r3: h1 h2 h3 h4 h3: r1 r2 r4 r3
r4: h3 h1 h2 h4 h4: r1 r2 r3 r4
Resident preferences Hospital preferences
• Suppose now that residents 1 and 2 falsify their preference lists
r1: h2 h1 h3 h4 h1: r4 r1 r2 r3
r2: h2 h4 h1 h3 h2: r3 r1 r2 r4
r3: h1 h2 h3 h4 h3: r1 r2 r4 r3
r4: h3 h1 h2 h4 h4: r1 r2 r3 r4
Resident preferences Hospital preferences
L3 #68
Strategic Issues
• Suppose that I is an instance of HR
• What if a set S of residents were to falsify their true preferences in I, in the hope of achieving a better hospital?
• Example (each hospital has 1 post):
r1: h1 h2 h3 h4 h1: r4 r1 r2 r3
r2: h1 h2 h3 h4 h2: r3 r1 r2 r4
r3: h1 h2 h3 h4 h3: r1 r2 r4 r3
r4: h3 h1 h2 h4 h4: r1 r2 r3 r4
Resident preferences Hospital preferences
• Suppose now that residents 1 and 2 falsify their preference lists
r1: h2 h4 h1 h3 h1: r4 r1 r2 r3
r2: h2 h4 h1 h3 h2: r3 r1 r2 r4
r3: h1 h2 h3 h4 h3: r1 r2 r4 r3
r4: h3 h1 h2 h4 h4: r1 r2 r3 r4
Resident preferences Hospital preferences
L3 #69
Strategic Issues
• Suppose that I is an instance of HR
• What if a set S of residents were to falsify their true preferences in I, in the hope of achieving a better hospital?
• Example (each hospital has 1 post):
r1: h1 h2 h3 h4 h1: r4 r1 r2 r3
r2: h1 h2 h3 h4 h2: r3 r1 r2 r4
r3: h1 h2 h3 h4 h3: r1 r2 r4 r3
r4: h3 h1 h2 h4 h4: r1 r2 r3 r4
Resident preferences Hospital preferences
• Residents r1, r3 and r4 have improved their assigned hospitals
• But, S={r1 ,r2} was the set of liars
• Is it possible for all members of the set S to obtain a better hospital?
L3 #70
Strategic Issues
• Let P denote the true preferences in I, and let P’ denote the falsified preferences in I • Theorem: There is no stable matching in P’ such that every resident in S obtains a better partner than he obtains in the resident-optimal stable matching in P
• However the same need not be true of hospitals!
L3 #71
Strategic Issues
• Let P denote the true preferences in I, and let P’ denote the falsified preferences in I • Theorem: There is no stable matching in P’ such that every resident in S obtains a better partner than he obtains in the resident-optimal stable matching in P
• However the same need not be true of hospitals!
• Example (h1 has 2 posts; h2, h3 have 1 post each) r1: h3 h1 h2 h1: r1 r2 r3 r4
r2: h2 h1 h3 h2: r1 r2 r3 r4
r3: h1 h3 h2 h3: r3 r1 r2 r4
r4: h1 h2 h3
Resident preferences Hospital preferences
L3 #72
Strategic Issues
• Let P denote the true preferences in I, and let P’ denote the falsified preferences in I • Theorem: There is no stable matching in P’ such that every resident in S obtains a better partner than he obtains in the resident-optimal stable matching in P
• However the same need not be true of hospitals!
• Example (h1 has 2 posts; h2, h3 have 1 post each) r1: h3 h1 h2 h1: r1 r2 r3 r4
r2: h2 h1 h3 h2: r1 r2 r3 r4
r3: h1 h3 h2 h3: r3 r1 r2 r4
r4: h1 h2 h3
Resident preferences Hospital preferences
L3 #73
Strategic Issues
• Let P denote the true preferences in I, and let P’ denote the falsified preferences in I • Theorem: There is no stable matching in P’ such that every resident in S obtains a better partner than he obtains in the resident-optimal stable matching in P
• However the same need not be true of hospitals!
• Example (h1 has 2 posts; h2, h3 have 1 post each) r1: h3 h1 h2 h1: r1 r2 r3 r4
r2: h2 h1 h3 h2: r1 r2 r3 r4
r3: h1 h3 h2 h3: r3 r1 r2 r4
r4: h1 h2 h3
Resident preferences Hospital preferences
• Now suppose that hospital h1 distorts its true preferences in the hope of obtaining a better set of residents
L3 #74
Strategic Issues
• Let P denote the true preferences in I, and let P’ denote the falsified preferences in I • Theorem: There is no stable matching in P’ such that every resident in S obtains a better partner than he obtains in the resident-optimal stable matching in P
• However the same need not be true of hospitals!
• Example (h1 has 2 posts; h2, h3 have 1 post each) r1: h3 h1 h2 h1: r2 r4 r1 r3
r2: h2 h1 h3 h2: r1 r2 r3 r4
r3: h1 h3 h2 h3: r3 r1 r2 r4
r4: h1 h2 h3
Resident preferences Hospital preferences
• Now suppose that hospital h1 distorts its true preferences in the hope of obtaining a better set of residents
L3 #75
Strategic Issues
• Let P denote the true preferences in I, and let P’ denote the falsified preferences in I • Theorem: There is no stable matching in P’ such that every resident in S obtains a better partner than he obtains in the resident-optimal stable matching in P
• However the same need not be true of hospitals!
• Example (h1 has 2 posts; h2, h3 have 1 post each) r1: h3 h1 h2 h1: r2 r4 r1 r3
r2: h2 h1 h3 h2: r1 r2 r3 r4
r3: h1 h3 h2 h3: r3 r1 r2 r4
r4: h1 h2 h3
Resident preferences Hospital preferences
• Now suppose that hospital h1 distorts its true preferences in the hope of obtaining a better set of residents
L3 #76
Strategic Issues
• Let P denote the true preferences in I, and let P’ denote the falsified preferences in I • Theorem: There is no stable matching in P’ such that every resident in S obtains a better partner than he obtains in the resident-optimal stable matching in P
• However the same need not be true of hospitals!
• Example (h1 has 2 posts; h2, h3 have 1 post each) r1: h3 h1 h2 h1: r1 r2 r3 r4
r2: h2 h1 h3 h2: r1 r2 r3 r4
r3: h1 h3 h2 h3: r3 r1 r2 r4
r4: h1 h2 h3
Resident preferences Hospital preferences
• Hospital h1 has gained a better set of residents
• Roth and Sotomayor (1990), “Two-Sided Matching: A Study in Game-Theoretic Modeling and Analysis”, Econometric Society Monographs, Cambridge Univ. Press
L3 #77
Summary
• Hospital / Residents problem (HR)
– All hospitals have capacity 1: stable marriage problem with unacceptable partners– Resident-oriented GS algorithm for HR– Hospital-oriented GS algorithm for HR
• Hospitals / Residents problem with Ties (HRT)
– Weakly stable matchings– Super-stable matchings
• Strategic issues in HR
• Open questions:
– Existence of super-stable matchings– Structure of super-stable matchings– Heuristics for finding large weakly stable matchings– Strategic issues for HRT