A Constraint Programming Approach to the Hospitals / Residents Problem By David Manlove, Gregg O’Malley, Patrick Prosser and Chris Unsworth
Contents The Hospital/Residents Problem The Algorithms Cloned Solution Constraint Based Model (CBM) Specialised N-ary Constraint (HRN) Versatility Conclusion Questions
The Hospital/Residents Problem This is a real world problem The National Resident Matching Program (NRMP) in the US 31,000 residents matched to 2,300 hospitals The Canadian Resident Matching Service (CaRMS) The Scottish PRHO Allocation scheme (SPA)
The Hospital/Residents Problem Residents Hospitals R1 R2 R3 : R2 R3 R1 : R2 R1 R3 : H1 H2 H1 H2 We have n residentsand m hospitals Each resident ranks the m hospitals And each hospital ranks the n residents Objective : To find a matching of residents to hospitals Such that the matching is Stable (2) (1) Each hospital has a capacity c And the hospital capacities not exceeded
The Hospital/Residents Problem Residents Hospitals R1 R2 R3 : R2 R3 R1 : R2 R1 R3 : H1 H2 H1 H2 A matching R3 and H1 would both be better off if they were matched to each other (2) (1) But not a stable one A matching is only stable iff it contains no Blocking pairs In this matching R3 and H1 are a Blocking pair
The Hospital/Residents Problem Residents Hospitals R1 R2 R3 : R2 R3 R1 : R2 R1 R3 : H1 H2 H1 H2 A stable matching (2) (1)
The Algorithms Two Algorithms Resident-Oriented (RGS) Hospital-Oriented (HGS) Both reach a fixed point RGS-lists HGS-lists Union of these is GS-lists Both run in O(L) time and require O(nm) space
Cloned Solution Residents Hospitals R1 R2 R3 : R2 R3 R1 : R2 R1 R3 : H1 H2 H1 H2 If a hospital has capacity > 1 (2) (1) H1a H1b H2 (1) : R2 R3 R1 : R2 R1 R3 : H1a H1b H2 It can be cloned into c hospitals with capacity 1 We then expand the residents preference lists This is now a stable marriage instance Which can be solved by any stable marriage solution
Constraint Based Model (CBM) a variable for each of the n Residents each with a domain (1.. m) C variables for each of the m Hospitals each with a domain (1.. n) O(Lc) standard “toolbox” constraints Takes O(Lc(n+m)) time to enforce AC Takes O(Lc) space
Specialised N-ary Constraint (HRN) a variable for each of the n Residents each with a domain (1.. m) a variables for each of the m Hospitals each with a domain (1.. n) 1 Specialised n-ary constraints Details are in the paper Takes O(Lc) time to enforce AC Takes O(nm) space
Versatility Resident-exchange-stable NP-Complete Constraint for each r 1,r 2,h 1,h 2 combination Such that: r 1 prefers h 1 to h 2 r 2 prefers h 2 to h 1 r 1 =h 2 r 2 ≠h 1
Versatility Forbidden pairs Linear time solvable decision problem Not all instances are solvable Relaxed optimisation problem No poly-time algorithm Add {0,1} variable for each forbidden pair Minimise the sum
Versatility Groups No poly-time algorithm Constraint for each group r 1 =h i r 2 =h i Ties in preference lists
Conclusion We have proposed three new constraint solutions to the Hospital/Residents problem A Reformulation technique A model that uses toolbox constraints A specialised n-ary constraint Demonstration of versatility
Questions Any Questions?