290 likes | 397 Views
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.
E N D
Student-Project Allocation withPreferences over Projects David Manlove Gregg O’Malley University of GlasgowDepartment of Computing Science Supported by EPSRC grant GR/R84597/01,RSE / Scottish Exec Personal Research Fellowship
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
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 • 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
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)
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 sifinds acceptable a set of projects Ai P • si ranks Ai in strict order of preference • Each project pjhas a capacitycj • Each lecturer lkhas a capacitydk • Each lecturer lkoffers a set of projects Pk P • lk ranks Pk in strict order of preference • assume that P1, P2, …, PqpartitionsP
Example SPA-P instance Student preferences Lecturer preferences Lecturer capacities s1 : p1p4 p3 l1 : p1p2p3 3 s2 :p5p1 Project capacities: 1 2 1 s3 :p2p5 s4 : p4p2 l2 : p4p5 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
Definition of a matching • A matching M is a subset of S×P such that • if(si, pj)Mthenpj Ai, i.e. si findspjacceptable • si S• |pj P:(si, pj)M}| 1 • pj P• |si S:(si, pj)M}| cj, • lk L• |si S:(si, pj)Mpj Pk}| dk • If (si, pj)M,where lk offers pj,we say that • siis assigned topj • siis assigned tolk • pj isassignedsi • lk is assignedsi • For any assigned student si , M(si) denotes the project thatsi is assigned to • For any project pj , M(pj) denotes the set of students assigned topj • For any lecturer lk , M(lk) denotes the set of students assigned to(projects offered by)lk
Definition of a matching • A matching M is a subset of S×P such that • if(si, pj)Mthenpj Ai, i.e. si findspjacceptable • si S• |pj P:(si, pj)M}| 1 • pj P• |si S:(si, pj)M}| cj, • lk L• |si S:(si, pj)Mpj Pk}| dk • If (si, pj)M,where lk offers pj,we say that • siis assigned topj • siis assigned tolk • pj isassignedsi • lk is assignedsi • For any assigned student si , M(si) denotes the project thatsi is assigned to • For any project pj , M(pj) denotes the set of students assigned topj • For any lecturer lk , M(lk) denotes the set of students assigned to(projects offered by)lk
Definition of a matching • A matching M is a subset of S×P such that • if(si, pj)Mthenpj Ai, i.e. si findspjacceptable • si S• |pj P:(si, pj)M}| 1 • pj P• |si S:(si, pj)M}| cj, • lk L• |si S:(si, pj)Mpj Pk}| dk • If (si, pj)M,where lk offers pj,we say that • siis assigned topj • siis assigned tolk • pj isassignedsi • lk is assignedsi • For any assigned student si , M(si) denotes the project thatsi is assigned to • For any project pj , M(pj) denotes the set of students assigned topj • For any lecturer lk , M(lk) denotes the set of students assigned to(projects offered by)lk
Example matching Student preferences Lecturer preferences Lecturer capacities s1 : p1p4 p3 l1 : p1p2p32/3 s2 :p5p1 Project capacities:0/11/21/1 s3 :p2p5 s4 : p4p2l2 : p4p52/2 s5 :p5p2 Project capacities:0/12/2 Lecturer capacities:d1= 3, d2 = 2 Project capacities: c1 = 1;c2 = 2;c3 = 1;c4 = 1;c5 = 2
Stable matchings • (si, pj) is a blocking pair of a matchingMif: • pj Ai • Either si is unmatched in M, or si prefers pj to M(si) • pjis 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 preferspj to his worst non-empty project where lk is the lecturer who offerspj • A matching M is stable if it admits no blocking pair
Example blocking pair (1) Student preferences Lecturer preferences Lecturer capacities s1 : p1p4 p3 l1 : p1p2p32/3 s2 :p5p1 Project capacities:0/11/21/1 s3 :p2p5 s4 : p4p2l2 : p4p52/2 s5 :p5p2 Project capacities:0/12/2 (s1, p1) is a blocking pair, since 3.p1is under-subscribed and • s1M(l1) and l1 prefers p1 to M(s1)=p3
Example blocking pair (2) Student preferences Lecturer preferences Lecturer capacities s1 : p1p4 p3 l1 : p1p2p32/3 s2 :p5p1 Project capacities:0/11/21/1 s3 :p2p5 s4 : p4p2l2 : p4p52/2 s5 :p5p2 Project capacities:0/12/2 (s2, p1) is a blocking pair, since 3.p1is under-subscribed and • s2M(l1) and l1 is under-subscribed
Example blocking pair (3) Student preferences Lecturer preferences Lecturer capacities s1 : p1p4 p3 l1 : p1p2p32/3 s2 :p5p1 Project capacities:0/11/21/1 s3 :p2p5 s4 : p4p2l2 : p4p52/2 s5 :p5p2 Project capacities:0/12/2 (s4, p4) is a blocking pair, since 3.p4is under-subscribed and • s4M(l2) and l2 prefersp4 to his worst non-empty project
Example stable matching Student preferences Lecturer preferences Lecturer capacities s1 :p1p4 p3 l1 : p1p2p3 2/3 s2 :p5p1 Project capacities:1/11/20/1 s3 :p2p5 s4 : p4p2 l2 : p4p52/2 s5 :p5p2 Project capacities:1/11/2
Sizes of stable matchings • Every instance of SPA-P admits at least one stable matching
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 preferences s1 : p1p2 l1 : p1 s2 :p1 l2 : p2 (each project and lecturer has capacity 1)
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 preferences s1 : p1p2l1 : p1 s2 :p1 l2 : p2 (each project and lecturer has capacity 1) M1={(s1, p1)}
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 preferences s1 : p1p2l1 : p1 s2 :p1 l2 : p2 (each project and lecturer has capacity 1) M1={(s1, p1)} Student preferences Lecturer preferences s1 : p1p2 l1 : p1 s2 :p1l2 : p2(each project and lecturer has capacity 1) M2={(s1, p2), (s2, p1)}
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
Approximation algorithm 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 */ M = ; while (some student si is free and sihas 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 */
Approximation algorithm 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 */ M = ; while (some student si is free and sihas 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 */
Approximation algorithm 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 */ M = ; while (some student si is free and sihas 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 */
Approximation algorithm 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 */ M = ; while (some student si is free and sihas 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 */
Approximation algorithm 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 */ M = ; while (some student si is free and sihas 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 */
Approximation algorithm 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 */ M = ; while (some student si is free and sihas 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 */
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”
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