View
215
Download
1
Category
Preview:
Citation preview
1
Student-Project Allocation with
Preferences over Projects
David ManloveGregg O’Malley
University of GlasgowDepartment of Computing Science
Supported by EPSRC grant GR/R84597/01,RSE / Scottish Exec Personal Research Fellowship
2
Background 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
3
Related 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
1. Project and lecturer capacities equal to 1 University of York, Department of Computer Science
2. 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
4
Lecturer 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)
5
Formal definition of SPA-P
Set of students S={s1, s2, …, sn} Set of projects P={p1, p2, …, pm} Set of lecturers L={l1, 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
6
Example 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
7
A matching M is a subset of S×P such that1. if (si, pj)M then pj Ai , i.e. si finds pj acceptable2. si S • |pj P : (si, pj)M}| 13. pj P • |si S : (si, pj)M}| cj , 4. 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
Definition of a matching
8
A matching M is a subset of S×P such that1. if (si, pj)M then pj Ai , i.e. si finds pj acceptable2. si S • |pj P : (si, pj)M}| 13. pj P • |si S : (si, pj)M}| cj , 4. 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
Definition of a matching
9
A matching M is a subset of S×P such that1. if (si, pj)M then pj Ai , i.e. si finds pj acceptable2. si S • |pj P : (si, pj)M}| 13. pj P • |si S : (si, pj)M}| cj , 4. 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
Definition of a matching
10
Example 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
11
Stable matchings
(si, pj) is a blocking pair of a matching M if:
1. pj Ai
2. Either si is unmatched in M, or si prefers pj to M(si)
3. pj is under-subscribed and eithera) si M(lk) and lk prefers pj to M(si)
b) si M(lk) and lk is under-subscribed
c) 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
12
Example 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
a) s1 M(l1) and l1 prefers p1 to M(s1)=p3
13
Example 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
b) s2 M(l1) and l1 is under-subscribed
14
Example 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
c) s4 M(l2) and l2 prefers p4 to his worst non-empty project
15
Example 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
17
Sizes 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 preferencess1 : p1 p2 l1 : p1
s2 : p1 l2 : p2 (each project and lecturer has capacity 1)
18
Sizes 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 preferencess1 : p1 p2 l1 : p1
s2 : p1 l2 : p2 (each project and lecturer has capacity 1)
M1={(s1, p1)}
19
Sizes 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 preferencess1 : p1 p2 l1 : p1
s2 : p1 l2 : p2 (each project and lecturer has capacity 1)
M1={(s1, p1)}
Student preferences Lecturer preferencess1 : p1 p2 l1 : p1
s2 : p1 l2 : p2 (each project and lecturer has capacity 1)
M2={(s1, p2), (s2, p1)}
20
Maximisation problem
MAX-SPA-P denotes the problem of finding a maximum cardinality stable matching, given an instance of SPA-P
There exists some >1 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 >1 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
21
Approximation algorithm
M = ;while (some student si is free and si has a nonempty list) { pj = first project on si’s list ; lk = lecturer who offers pj ; /* si applies to pj */ pz = lk’s worst non-empty project ; if (pj is full or (lk is full and pz = pj )) delete pj from si’s list ; else { M = M {(si, pj)} ; /* si is provisionally assigned /* to pj and lk */
if (lk is over-subscribed) { /* lk prefers pj to pz */ sr = some student in M(pz); M = M \ {(sr , pz)} ; delete pz from sr’s list ; } if (lk is full) { pz = lk’s worst non-empty project ; for (each successor pt of pz on lk’s list) for (each student sr such that srAt) delete pt from sr’s list ; } } /* else */} /* while */
22
Approximation algorithm
M = ;while (some student si is free and si has a nonempty list) { pj = first project on si’s list ; lk = lecturer who offers pj ; /* si applies to pj */ pz = lk’s worst non-empty project ; if (pj is full or (lk is full and pz = pj )) delete pj from si’s list ; else { M = M {(si, pj)} ; /* si is provisionally assigned /* to pj and lk */
if (lk is over-subscribed) { /* lk prefers pj to pz */ sr = some student in M(pz); M = M \ {(sr , pz)} ; delete pz from sr’s list ; } if (lk is full) { pz = lk’s worst non-empty project ; for (each successor pt of pz on lk’s list) for (each student sr such that srAt) delete pt from sr’s list ; } } /* else */} /* while */
23
Approximation algorithm
M = ;while (some student si is free and si has a nonempty list) { pj = first project on si’s list ; lk = lecturer who offers pj ; /* si applies to pj */ pz = lk’s worst non-empty project ; if (pj is full or (lk is full and pz = pj )) delete pj from si’s list ; else { M = M {(si, pj)} ; /* si is provisionally assigned /* to pj and lk */
if (lk is over-subscribed) { /* lk prefers pj to pz */ sr = some student in M(pz); M = M \ {(sr , pz)} ; delete pz from sr’s list ; } if (lk is full) { pz = lk’s worst non-empty project ; for (each successor pt of pz on lk’s list) for (each student sr such that srAt) delete pt from sr’s list ; } } /* else */} /* while */
24
Approximation algorithm
M = ;while (some student si is free and si has a nonempty list) { pj = first project on si’s list ; lk = lecturer who offers pj ; /* si applies to pj */ pz = lk’s worst non-empty project ; if (pj is full or (lk is full and pz = pj )) delete pj from si’s list ; else { M = M {(si, pj)} ; /* si is provisionally assigned /* to pj and lk */
if (lk is over-subscribed) { /* lk prefers pj to pz */ sr = some student in M(pz); M = M \ {(sr , pz)} ; delete pz from sr’s list ; } if (lk is full) { pz = lk’s worst non-empty project ; for (each successor pt of pz on lk’s list) for (each student sr such that srAt) delete pt from sr’s list ; } } /* else */} /* while */
25
Approximation algorithm
M = ;while (some student si is free and si has a nonempty list) { pj = first project on si’s list ; lk = lecturer who offers pj ; /* si applies to pj */ pz = lk’s worst non-empty project ; if (pj is full or (lk is full and pz = pj )) delete pj from si’s list ; else { M = M {(si, pj)} ; /* si is provisionally assigned /* to pj and lk */
if (lk is over-subscribed) { /* lk prefers pj to pz */ sr = some student in M(pz); M = M \ {(sr , pz)} ; delete pz from sr’s list ; } if (lk is full) { pz = lk’s worst non-empty project ; for (each successor pt of pz on lk’s list) for (each student sr such that srAt) delete pt from sr’s list ; } } /* else */} /* while */
26
Approximation algorithm
M = ;while (some student si is free and si has a nonempty list) { pj = first project on si’s list ; lk = lecturer who offers pj ; /* si applies to pj */ pz = lk’s worst non-empty project ; if (pj is full or (lk is full and pz = pj )) delete pj from si’s list ; else { M = M {(si, pj)} ; /* si is provisionally assigned /* to pj and lk */
if (lk is over-subscribed) { /* lk prefers pj to pz */ sr = some student in M(pz); M = M \ {(sr , pz)} ; delete pz from sr’s list ; } if (lk is full) { pz = lk’s worst non-empty project ; for (each successor pt of pz on lk’s list) for (each student sr such that srAt) delete pt from sr’s list ; } } /* else */} /* while */
27
Theoretical 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”
Recommended