Title: Student-Project Allocation with Preferences over Projects
1Student-Project Allocation withPreferences over
Projects
- David Manlove
- Gregg OMalley
- University of GlasgowDepartment of Computing
Science
Supported by EPSRC grant GR/R84597/01,RSE /
Scottish Exec Personal Research Fellowship
2Background and motivation
- Students may undertake project work during degree
course - Set of students, projects and lecturers
- Typically a wide range of projects exceeding
number of students - Students may rank projects in preference order
- Lecturers may have preferences over students /
projects - Projects / lecturers may have capacities
3Related work
- Growing interest in automating the allocation
process - Efficient algorithms are important
- Formalise the matching problem
- The Student-Project Allocation problem (SPA)
- No explicit lecturer preferences
- University of Southampton
- Lecturer preferences over students
- Project and lecturer capacities equal to 1
- University of York, Department of Computer
Science - Arbitrary project and lecturer capacities
- Abraham, Irving and DFM, The student-project
allocation problem, Proc. ISAAC 2003, LNCS - Abraham, Irving and DFM, Two algorithms for the
student-project allocation problem, 2004,
submitted
4Lecturer preferencesover projects
- Lecturer preferences over students
- Defaults to academic merit order?
- Weaker students obtain less preferable projects
- Lecturer preferences over projects
- Ranking could reflect research interests, for
example - Lecturer implicitly indifferent among all
students who find a given project acceptable - Student-Project Allocation problem with Project
preferences (SPA-P) - Seek a stable matching as a solution
- Roth (1984)
5Formal definition of SPA-P
- Set of students Ss1, s2, , sn
- Set of projects Pp1, p2, , pm
- Set of lecturers Ll1, l2, , lq
- Each student si finds acceptable a set of
projects Ai ? P - si ranks Ai in strict order of preference
- Each project pj has a capacity cj
- Each lecturer lk has a capacity dk
- Each lecturer lk offers a set of projects Pk ? P
- lk ranks Pk in strict order of preference
- assume that P1, P2, , Pq partitions P
6Example SPA-P instance
- Student preferences Lecturer preferences Lecturer
capacities - s1 p1 p4 p3 l1 p1 p2 p3
3 - s2 p5 p1 Project capacities 1 2
1 - s3 p2 p5
- s4 p4 p2 l2 p4 p5 2
- s5 p5 p2 Project capacities 1 2
- Lecturer capacities d1 3, d2 2
- Project capacities c1 1 c2 2 c3 1 c4
2 c5 1
7Definition of a matching
- A matching M is a subset of SP such that
- if (si, pj)?M then pj ? Ai , i.e. si finds pj
acceptable - ? si ?S pj ?P (si, pj)?M ?1
- ? pj ?P si ?S (si, pj)?M ?cj ,
- ? lk ?L si ?S (si, pj)?M ? pj ? Pk ?dk
- If (si, pj)?M , where lk offers pj , we say that
- si is assigned to pj
- si is assigned to lk
- pj is assigned si
- lk is assigned si
- For any assigned student si , M(si) denotes the
project that si is assigned to - For any project pj , M(pj) denotes the set of
students assigned to pj - For any lecturer lk , M(lk) denotes the set of
students assigned to (projects offered by) lk
8Definition of a matching
- A matching M is a subset of SP such that
- if (si, pj)?M then pj ? Ai , i.e. si finds pj
acceptable - ? si ?S pj ?P (si, pj)?M ?1
- ? pj ?P si ?S (si, pj)?M ?cj ,
- ? lk ?L si ?S (si, pj)?M ? pj ? Pk ?dk
- If (si, pj)?M , where lk offers pj , we say that
- si is assigned to pj
- si is assigned to lk
- pj is assigned si
- lk is assigned si
- For any assigned student si , M(si) denotes the
project that si is assigned to - For any project pj , M(pj) denotes the set of
students assigned to pj - For any lecturer lk , M(lk) denotes the set of
students assigned to (projects offered by) lk
9Definition of a matching
- A matching M is a subset of SP such that
- if (si, pj)?M then pj ? Ai , i.e. si finds pj
acceptable - ? si ?S pj ?P (si, pj)?M ?1
- ? pj ?P si ?S (si, pj)?M ?cj ,
- ? lk ?L si ?S (si, pj)?M ? pj ? Pk ?dk
- If (si, pj)?M , where lk offers pj , we say that
- si is assigned to pj
- si is assigned to lk
- pj is assigned si
- lk is assigned si
- For any assigned student si , M(si) denotes the
project that si is assigned to - For any project pj , M(pj) denotes the set of
students assigned to pj - For any lecturer lk , M(lk) denotes the set of
students assigned to (projects offered by) lk
10Example matching
- Student preferences Lecturer preferences Lecturer
capacities - s1 p1 p4 p3 l1 p1 p2
p3 2/3 - s2 p5 p1 Project capacities 0/1 1/2
1/1 - s3 p2 p5
- s4 p4 p2 l2 p4 p5 2/2
- s5 p5 p2 Project capacities 0/1 2/2
- Lecturer capacities d1 3, d2 2
- Project capacities c1 1 c2 2 c3 1 c4
1 c5 2
11Stable matchings
- (si, pj) is a blocking pair of a matching M if
- pj ? Ai
- Either si is unmatched in M, or si prefers pj to
M(si) - pj is under-subscribed and either
- si ?M(lk) and lk prefers pj to M(si)
- si ?M(lk) and lk is under-subscribed
- si ?M(lk) and lk prefers pj to his worst
non-empty project - where lk is the lecturer who offers pj
- A matching M is stable if it admits no blocking
pair
12Example blocking pair (1)
- Student preferences Lecturer preferences Lecturer
capacities - s1 p1 p4 p3 l1 p1 p2
p3 2/3 - s2 p5 p1 Project capacities 0/1 1/2
1/1 - s3 p2 p5
- s4 p4 p2 l2 p4 p5 2/2
- s5 p5 p2 Project capacities 0/1 2/2
- (s1, p1) is a blocking pair, since
- 3. p1 is under-subscribed and
- s1 ?M(l1) and l1 prefers p1 to M(s1)p3
13Example blocking pair (2)
- Student preferences Lecturer preferences Lecturer
capacities - s1 p1 p4 p3 l1 p1 p2
p3 2/3 - s2 p5 p1 Project capacities 0/1 1/2
1/1 - s3 p2 p5
- s4 p4 p2 l2 p4 p5 2/2
- s5 p5 p2 Project capacities 0/1 2/2
- (s2, p1) is a blocking pair, since
- 3. p1 is under-subscribed and
- s2 ?M(l1) and l1 is under-subscribed
14Example blocking pair (3)
- Student preferences Lecturer preferences Lecturer
capacities - s1 p1 p4 p3 l1 p1 p2
p3 2/3 - s2 p5 p1 Project capacities 0/1 1/2
1/1 - s3 p2 p5
- s4 p4 p2 l2 p4 p5 2/2
- s5 p5 p2 Project capacities 0/1 2/2
- (s4, p4) is a blocking pair, since
- 3. p4 is under-subscribed and
- s4 ?M(l2) and l2 prefers p4 to his worst
non-empty project
15Example stable matching
- Student preferences Lecturer preferences Lecturer
capacities - s1 p1 p4 p3 l1 p1 p2
p3 2/3 - s2 p5 p1 Project capacities 1/1 1/2
0/1 - s3 p2 p5
- s4 p4 p2 l2 p4 p5 2/2
- s5 p5 p2 Project capacities 1/1 1/2
16Sizes of stable matchings
- Every instance of SPA-P admits at least one
stable matching
17Sizes of stable matchings
- Every instance of SPA-P admits at least one
stable matching - But, stable matchings can have different sizes,
e.g. - Student preferences Lecturer preferences
- s1 p1 p2 l1 p1
- s2 p1 l2 p2 (each project and lecturer
has capacity 1)
18Sizes of stable matchings
- Every instance of SPA-P admits at least one
stable matching - But, stable matchings can have different sizes,
e.g. - Student preferences Lecturer preferences
- s1 p1 p2 l1 p1
- s2 p1 l2 p2 (each project and lecturer
has capacity 1) - M1(s1, p1)
19Sizes of stable matchings
- Every instance of SPA-P admits at least one
stable matching - But, stable matchings can have different sizes,
e.g. - Student preferences Lecturer preferences
- s1 p1 p2 l1 p1
- s2 p1 l2 p2 (each project and lecturer
has capacity 1) - M1(s1, p1)
- Student preferences Lecturer preferences
- s1 p1 p2 l1 p1
- s2 p1 l2 p2 (each project and lecturer
has capacity 1) - M2(s1, p2), (s2, p1)
20Maximisation problem
- MAX-SPA-P denotes the problem of finding a
maximum cardinality stable matching, given an
instance of SPA-P - There exists some ?gt1 such that the problem of
approximating MAX-SPA-P within ? is NP-hard - Result holds even if each project and lecturer
has capacity 1, and all preference lists are of
constant length - Gap-preserving reduction from Minimum Maximal
Matching (MMM) - There exists some ?gt1 such that the problem of
approximating MMM within ? is NP-hard - Result holds even for subdivision graphs of cubic
graphs - Halldorsson, Irving, Iwama, DFM, Miyazaki, Morita
and Scott, Approximability results for stable
marriage problems with ties, Theoretical
Computer Science, 2003
21Approximation algorithm
if (lk is over-subscribed)
/ lk prefers pj to pz / sr some
student in M(pz) M M \ (sr , pz)
delete pz from srs list
if (lk is full) pz lks
worst non-empty project for (each
successor pt of pz on lks list)
for (each student sr such that sr?At)
delete pt from srs list
/ else / / while /
- M ?
- while (some student si is free and
- si has a nonempty list)
- pj first project on sis list
- lk lecturer who offers pj
- / si applies to pj /
- pz lks worst non-empty project
- if (pj is full or (lk is full and pz pj ))
- delete pj from sis list
- else
- M M ? (si, pj)
- / si is provisionally assigned
- / to pj and lk /
22Approximation algorithm
if (lk is over-subscribed)
/ lk prefers pj to pz / sr some
student in M(pz) M M \ (sr , pz)
delete pz from srs list
if (lk is full) pz lks
worst non-empty project for (each
successor pt of pz on lks list)
for (each student sr such that sr?At)
delete pt from srs list
/ else / / while /
- M ?
- while (some student si is free and
- si has a nonempty list)
- pj first project on sis list
- lk lecturer who offers pj
- / si applies to pj /
- pz lks worst non-empty project
- if (pj is full or (lk is full and pz pj ))
- delete pj from sis list
- else
- M M ? (si, pj)
- / si is provisionally assigned
- / to pj and lk /
23Approximation algorithm
if (lk is over-subscribed)
/ lk prefers pj to pz / sr some
student in M(pz) M M \ (sr , pz)
delete pz from srs list
if (lk is full) pz lks
worst non-empty project for (each
successor pt of pz on lks list)
for (each student sr such that sr?At)
delete pt from srs list
/ else / / while /
- M ?
- while (some student si is free and
- si has a nonempty list)
- pj first project on sis list
- lk lecturer who offers pj
- / si applies to pj /
- pz lks worst non-empty project
- if (pj is full or (lk is full and pz pj ))
- delete pj from sis list
- else
- M M ? (si, pj)
- / si is provisionally assigned
- / to pj and lk /
24Approximation algorithm
if (lk is over-subscribed)
/ lk prefers pj to pz / sr some
student in M(pz) M M \ (sr , pz)
delete pz from srs list
if (lk is full) pz lks
worst non-empty project for (each
successor pt of pz on lks list)
for (each student sr such that sr?At)
delete pt from srs list
/ else / / while /
- M ?
- while (some student si is free and
- si has a nonempty list)
- pj first project on sis list
- lk lecturer who offers pj
- / si applies to pj /
- pz lks worst non-empty project
- if (pj is full or (lk is full and pz pj ))
- delete pj from sis list
- else
- M M ? (si, pj)
- / si is provisionally assigned
- / to pj and lk /
25Approximation algorithm
if (lk is over-subscribed)
/ lk prefers pj to pz / sr some
student in M(pz) M M \ (sr , pz)
delete pz from srs list
if (lk is full) pz lks
worst non-empty project for (each
successor pt of pz on lks list)
for (each student sr such that sr?At)
delete pt from srs list
/ else / / while /
- M ?
- while (some student si is free and
- si has a nonempty list)
- pj first project on sis list
- lk lecturer who offers pj
- / si applies to pj /
- pz lks worst non-empty project
- if (pj is full or (lk is full and pz pj ))
- delete pj from sis list
- else
- M M ? (si, pj)
- / si is provisionally assigned
- / to pj and lk /
26Approximation algorithm
if (lk is over-subscribed)
/ lk prefers pj to pz / sr some
student in M(pz) M M \ (sr , pz)
delete pz from srs list
if (lk is full) pz lks
worst non-empty project for (each
successor pt of pz on lks list)
for (each student sr such that sr?At)
delete pt from srs list
/ else / / while /
- M ?
- while (some student si is free and
- si has a nonempty list)
- pj first project on sis list
- lk lecturer who offers pj
- / si applies to pj /
- pz lks worst non-empty project
- if (pj is full or (lk is full and pz pj ))
- delete pj from sis list
- else
- M M ? (si, pj)
- / si is provisionally assigned
- / to pj and lk /
27Theoretical results
- Algorithm produces a stable matching, given an
instance of SPA-P - So every instance of SPA-P admits a stable
matching - Algorithm may be implemented to run in O(L) time,
where L is total length of the students
preference lists - Approximation algorithm has a performance
guarantee of 2 - Analysis is tight
- The constructed matching admits no
exchange-blocking coalition
28Open problems
- Improved approximation algorithm?
- Extend to the case where lecturers have
preferences over (student, project) pairs - E.g. l1 (s1, p2) (s2, p2) (s1, p3)
- Ties in the preference lists
- Lower bounds on projects