150 likes | 289 Views
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
E N D
A Constraint Programming Approach to theHospitals / 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 We have n residents and m hospitals Each hospital has a capacity c Each resident ranks the m hospitals And each hospital ranks the n residents Residents Hospitals H1 H2 : R2 R3 R1 : R2 R1 R3 R1 R2 R3 : H1 H2 : H1 H2 : H1 H2 (2) (1) Objective : To find a matching of residents to hospitals Such that the matching is Stable And the hospital capacities not exceeded
The Hospital/Residents Problem A matching But not a stable one R3 and H1 would both be better off if they were matched to each other Residents Hospitals H1 H2 : R2 R3 R1 : R2 R1 R3 R1 R2 R3 : H1 H2 : H1 H2 : H1 H2 (2) (1) In this matching R3 and H1 are a Blocking pair A matching is only stable iff it contains no Blocking pairs
The Hospital/Residents Problem A stable matching Residents Hospitals H1 H2 : R2 R3 R1 : R2 R1 R3 R1 R2 R3 : H1 H2 : H1 H2 : H1 H2 (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 If a hospital has capacity > 1 It can be cloned into c hospitals with capacity 1 We then expand the residents preference lists Residents Hospitals H1 H2 : R2 R3 R1 : R2 R1 R3 R1 R2 R3 : H1 H2 : H1 H2 : H1 H2 : H1a H1b H2 : H1a H1b H2 : H1a H1b H2 H1a H1b H2 (1) (1) (1) : R2 R3 R1 : R2 R3 R1 : R2 R1 R3 (2) (1) 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 r1,r2,h1,h2 combination • Such that: • r1 prefers h1 to h2 • r2 prefers h2 to h1 • r1=h2 r2≠h1 • r1=h2 r2≠h1
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 • r1=hi r2=hi • 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?