A Constraint Programming Approach to theHospitals / Residents ProblemBy 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
R1R2R3
: R2 R3 R1: R2 R1 R3
: H1 H2: H1 H2: H1 H2
H1H2
We have n residentsand m hospitals
Each resident ranks the m hospitalsAnd each hospital ranks the n residents
Objective :To find a matching of residents to hospitalsSuch 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
R1R2R3
: R2 R3 R1: R2 R1 R3
: H1 H2: H1 H2: H1 H2
H1H2
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
R1R2R3
: R2 R3 R1: R2 R1 R3
: H1 H2: H1 H2: H1 H2
H1H2
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
R1R2R3
: R2 R3 R1: R2 R1 R3
: H1 H2: H1 H2: H1 H2
H1H2
If a hospital has capacity > 1
(2)(1)
H1aH1bH2
(1)(1)(1)
: R2 R3 R1: R2 R3 R1: R2 R1 R3
: H1a H1b H2: H1a H1b H2: H1a H1b H2
It can be cloned into c hospitals with capacity 1We then expand the residents preference lists
This is now a stable marriage instanceWhich 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?