student-project allocation with preferences over projects
DESCRIPTION
Student-Project Allocation with Preferences over Projects. David Manlove Gregg O’Malley University of Glasgow Department of Computing Science. S upported by E PSR C grant GR/R84597/01, RSE / Scottish Exec Personal Research Fellowship. Background and motivation. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/1.jpg)
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
![Page 2: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/2.jpg)
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
![Page 3: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/3.jpg)
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
![Page 4: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/4.jpg)
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)
![Page 5: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/5.jpg)
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
![Page 6: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/6.jpg)
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
![Page 7: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/7.jpg)
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
![Page 8: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/8.jpg)
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
![Page 9: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/9.jpg)
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
![Page 10: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/10.jpg)
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
![Page 11: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/11.jpg)
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
![Page 12: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/12.jpg)
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
![Page 13: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/13.jpg)
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
![Page 14: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/14.jpg)
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
![Page 15: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/15.jpg)
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
![Page 16: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/16.jpg)
16
Sizes of stable matchings
Every instance of SPA-P admits at least one stable matching
![Page 17: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/17.jpg)
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)
![Page 18: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/18.jpg)
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)}
![Page 19: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/19.jpg)
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)}
![Page 20: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/20.jpg)
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
![Page 21: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/21.jpg)
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 */
![Page 22: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/22.jpg)
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 */
![Page 23: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/23.jpg)
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 */
![Page 24: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/24.jpg)
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 */
![Page 25: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/25.jpg)
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 */
![Page 26: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/26.jpg)
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 */
![Page 27: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/27.jpg)
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”
![Page 28: Student-Project Allocation with Preferences over Projects](https://reader035.vdocuments.mx/reader035/viewer/2022062517/56813e11550346895da7f09a/html5/thumbnails/28.jpg)
28
Open 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