1 / 28

Student-Project Allocation with Preferences over Projects

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.

alena
Download Presentation

Student-Project Allocation with Preferences over Projects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  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 • 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

  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 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

  6. 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

  7. 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)Mpj  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

  8. 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)Mpj  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

  9. 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)Mpj  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

  10. 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

  11. 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

  12. 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 • s1M(l1) and l1 prefers p1 to M(s1)=p3

  13. 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 • s2M(l1) and l1 is under-subscribed

  14. 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 • s4M(l2) and l2 prefersp4 to his worst non-empty project

  15. 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

  16. Sizes of stable matchings • Every instance of SPA-P admits at least one stable matching

  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 preferences s1 : p1p2 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 preferences s1 : p1p2l1 : 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 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)}

  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 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 srAt) 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 */

  22. 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 srAt) 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 */

  23. 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 srAt) 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 */

  24. 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 srAt) 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 */

  25. 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 srAt) 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 */

  26. 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 srAt) 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 */

  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”

  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

More Related