# 1 Student-Project Allocation with Preferences over Projects David Manlove Gregg OMalley University of Glasgow Department of Computing Science Supported.

## Presentation on theme: "1 Student-Project Allocation with Preferences over Projects David Manlove Gregg OMalley University of Glasgow Department of Computing Science Supported."— Presentation transcript:

1 Student-Project Allocation with Preferences over Projects David Manlove Gregg OMalley University of Glasgow Department 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 preferences over 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={s 1, s 2, …, s n } Set of projects P={p 1, p 2, …, p m } Set of lecturers L={l 1, l 2, …, l q } Each student s i finds acceptable a set of projects A i P s i ranks A i in strict order of preference Each project p j has a capacity c j Each lecturer l k has a capacity d k Each lecturer l k offers a set of projects P k P l k ranks P k in strict order of preference assume that P 1, P 2, …, P q partitions P

6 Example SPA-P instance Student preferencesLecturer preferencesLecturer capacities s 1 : p 1 p 4 p 3 l 1 : p 1 p 2 p 3 3 s 2 : p 5 p 1 Project capacities: 1 2 1 s 3 : p 2 p 5 s 4 : p 4 p 2 l 2 : p 4 p 5 2 s 5 : p 5 p 2 Project capacities: 1 2 Lecturer capacities: d 1 = 3, d 2 = 2 Project capacities: c 1 = 1 ; c 2 = 2 ; c 3 = 1 ; c 4 = 2 ; c 5 = 1

7 A matching M is a subset of S × P such that 1. if (s i, p j ) M then p j A i, i.e. s i finds p j acceptable 2. s i S | p j P : (s i, p j ) M}| 1 3. p j P | s i S : (s i, p j ) M}| c j, 4. l k L | s i S : (s i, p j ) M p j P k }| d k If (s i, p j ) M, where l k offers p j, we say that s i is assigned to p j s i is assigned to l k p j is assigned s i l k is assigned s i For any assigned student s i, M ( s i ) denotes the project that s i is assigned to For any project p j, M ( p j ) denotes the set of students assigned to p j For any lecturer l k, M ( l k ) denotes the set of students assigned to (projects offered by) l k Definition of a matching

8 A matching M is a subset of S × P such that 1. if (s i, p j ) M then p j A i, i.e. s i finds p j acceptable 2. s i S | p j P : (s i, p j ) M}| 1 3. p j P | s i S : (s i, p j ) M}| c j, 4. l k L | s i S : (s i, p j ) M p j P k }| d k If (s i, p j ) M, where l k offers p j, we say that s i is assigned to p j s i is assigned to l k p j is assigned s i l k is assigned s i For any assigned student s i, M ( s i ) denotes the project that s i is assigned to For any project p j, M ( p j ) denotes the set of students assigned to p j For any lecturer l k, M ( l k ) denotes the set of students assigned to (projects offered by) l k Definition of a matching

9 A matching M is a subset of S × P such that 1. if (s i, p j ) M then p j A i, i.e. s i finds p j acceptable 2. s i S | p j P : (s i, p j ) M}| 1 3. p j P | s i S : (s i, p j ) M}| c j, 4. l k L | s i S : (s i, p j ) M p j P k }| d k If (s i, p j ) M, where l k offers p j, we say that s i is assigned to p j s i is assigned to l k p j is assigned s i l k is assigned s i For any assigned student s i, M ( s i ) denotes the project that s i is assigned to For any project p j, M ( p j ) denotes the set of students assigned to p j For any lecturer l k, M ( l k ) denotes the set of students assigned to (projects offered by) l k Definition of a matching

10 Example matching Student preferencesLecturer preferencesLecturer capacities s 1 : p 1 p 4 p 3 l 1 : p 1 p 2 p 3 2/3 s 2 : p 5 p 1 Project capacities: 0/1 1/2 1/1 s 3 : p 2 p 5 s 4 : p 4 p 2 l 2 : p 4 p 5 2/2 s 5 : p 5 p 2 Project capacities: 0/1 2/2 Lecturer capacities: d 1 = 3, d 2 = 2 Project capacities: c 1 = 1 ; c 2 = 2 ; c 3 = 1 ; c 4 = 1 ; c 5 = 2

11 Stable matchings (s i, p j ) is a blocking pair of a matching M if: 1. p j A i 2. Either s i is unmatched in M, or s i prefers p j to M(s i ) 3. p j is under-subscribed and either a) s i M(l k ) and l k prefers p j to M(s i ) b) s i M(l k ) and l k is under-subscribed c) s i M(l k ) and l k prefers p j to his worst non-empty project where l k is the lecturer who offers p j A matching M is stable if it admits no blocking pair

12 Example blocking pair (1) Student preferencesLecturer preferencesLecturer capacities s 1 : p 1 p 4 p 3 l 1 : p 1 p 2 p 3 2/3 s 2 : p 5 p 1 Project capacities: 0/1 1/2 1/1 s 3 : p 2 p 5 s 4 : p 4 p 2 l 2 : p 4 p 5 2/2 s 5 : p 5 p 2 Project capacities: 0/1 2/2 (s 1, p 1 ) is a blocking pair, since 3. p 1 is under-subscribed and a) s 1 M(l 1 ) and l 1 prefers p 1 to M(s 1 )=p 3

13 Example blocking pair (2) Student preferencesLecturer preferencesLecturer capacities s 1 : p 1 p 4 p 3 l 1 : p 1 p 2 p 3 2/3 s 2 : p 5 p 1 Project capacities: 0/1 1/2 1/1 s 3 : p 2 p 5 s 4 : p 4 p 2 l 2 : p 4 p 5 2/2 s 5 : p 5 p 2 Project capacities: 0/1 2/2 (s 2, p 1 ) is a blocking pair, since 3. p 1 is under-subscribed and b) s 2 M(l 1 ) and l 1 is under-subscribed

14 Example blocking pair (3) Student preferencesLecturer preferencesLecturer capacities s 1 : p 1 p 4 p 3 l 1 : p 1 p 2 p 3 2/3 s 2 : p 5 p 1 Project capacities: 0/1 1/2 1/1 s 3 : p 2 p 5 s 4 : p 4 p 2 l 2 : p 4 p 5 2/2 s 5 : p 5 p 2 Project capacities: 0/1 2/2 (s 4, p 4 ) is a blocking pair, since 3. p 4 is under-subscribed and c) s 4 M(l 2 ) and l 2 prefers p 4 to his worst non-empty project

15 Example stable matching Student preferencesLecturer preferencesLecturer capacities s 1 : p 1 p 4 p 3 l 1 : p 1 p 2 p 3 2/3 s 2 : p 5 p 1 Project capacities: 1/1 1/2 0/1 s 3 : p 2 p 5 s 4 : p 4 p 2 l 2 : p 4 p 5 2/2 s 5 : p 5 p 2 Project capacities: 1/1 1/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 preferencesLecturer preferences s 1 : p 1 p 2 l 1 : p 1 s 2 : p 1 l 2 : p 2 (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 preferencesLecturer preferences s 1 : p 1 p 2 l 1 : p 1 s 2 : p 1 l 2 : p 2 (each project and lecturer has capacity 1) M 1 ={(s 1, p 1 )}

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 preferencesLecturer preferences s 1 : p 1 p 2 l 1 : p 1 s 2 : p 1 l 2 : p 2 (each project and lecturer has capacity 1) M 1 ={(s 1, p 1 )} Student preferencesLecturer preferences s 1 : p 1 p 2 l 1 : p 1 s 2 : p 1 l 2 : p 2 (each project and lecturer has capacity 1) M 2 ={(s 1, p 2 ), (s 2, p 1 )}

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 s i is free and s i has a nonempty list) { p j = first project on s i s list ; l k = lecturer who offers p j ; /* s i applies to p j */ p z = l k s worst non-empty project ; if (p j is full or (l k is full and p z = p j )) delete p j from s i s list ; else { M = M {(s i, p j )} ; /* s i is provisionally assigned /* to p j and l k */ if (l k is over-subscribed) { /* l k prefers p j to p z */ s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ; } if (l k is full) { p z = l k s worst non-empty project ; for (each successor p t of p z on l k s list) for (each student s r such that s r A t ) delete p t from s r s list ; } } /* else */ } /* while */

22 Approximation algorithm M = ; while (some student s i is free and s i has a nonempty list) { p j = first project on s i s list ; l k = lecturer who offers p j ; /* s i applies to p j */ p z = l k s worst non-empty project ; if (p j is full or (l k is full and p z = p j )) delete p j from s i s list ; else { M = M {(s i, p j )} ; /* s i is provisionally assigned /* to p j and l k */ if (l k is over-subscribed) { /* l k prefers p j to p z */ s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ; } if (l k is full) { p z = l k s worst non-empty project ; for (each successor p t of p z on l k s list) for (each student s r such that s r A t ) delete p t from s r s list ; } } /* else */ } /* while */

23 Approximation algorithm M = ; while (some student s i is free and s i has a nonempty list) { p j = first project on s i s list ; l k = lecturer who offers p j ; /* s i applies to p j */ p z = l k s worst non-empty project ; if (p j is full or (l k is full and p z = p j )) delete p j from s i s list ; else { M = M {(s i, p j )} ; /* s i is provisionally assigned /* to p j and l k */ if (l k is over-subscribed) { /* l k prefers p j to p z */ s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ; } if (l k is full) { p z = l k s worst non-empty project ; for (each successor p t of p z on l k s list) for (each student s r such that s r A t ) delete p t from s r s list ; } } /* else */ } /* while */

24 Approximation algorithm M = ; while (some student s i is free and s i has a nonempty list) { p j = first project on s i s list ; l k = lecturer who offers p j ; /* s i applies to p j */ p z = l k s worst non-empty project ; if (p j is full or (l k is full and p z = p j )) delete p j from s i s list ; else { M = M {(s i, p j )} ; /* s i is provisionally assigned /* to p j and l k */ if (l k is over-subscribed) { /* l k prefers p j to p z */ s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ; } if (l k is full) { p z = l k s worst non-empty project ; for (each successor p t of p z on l k s list) for (each student s r such that s r A t ) delete p t from s r s list ; } } /* else */ } /* while */

25 Approximation algorithm M = ; while (some student s i is free and s i has a nonempty list) { p j = first project on s i s list ; l k = lecturer who offers p j ; /* s i applies to p j */ p z = l k s worst non-empty project ; if (p j is full or (l k is full and p z = p j )) delete p j from s i s list ; else { M = M {(s i, p j )} ; /* s i is provisionally assigned /* to p j and l k */ if (l k is over-subscribed) { /* l k prefers p j to p z */ s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ; } if (l k is full) { p z = l k s worst non-empty project ; for (each successor p t of p z on l k s list) for (each student s r such that s r A t ) delete p t from s r s list ; } } /* else */ } /* while */

26 Approximation algorithm M = ; while (some student s i is free and s i has a nonempty list) { p j = first project on s i s list ; l k = lecturer who offers p j ; /* s i applies to p j */ p z = l k s worst non-empty project ; if (p j is full or (l k is full and p z = p j )) delete p j from s i s list ; else { M = M {(s i, p j )} ; /* s i is provisionally assigned /* to p j and l k */ if (l k is over-subscribed) { /* l k prefers p j to p z */ s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ; } if (l k is full) { p z = l k s worst non-empty project ; for (each successor p t of p z on l k s list) for (each student s r such that s r A t ) delete p t from s r 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

28 Open problems Improved approximation algorithm? Extend to the case where lecturers have preferences over (student, project) pairs E.g. l 1 : (s 1, p 2 ) (s 2, p 2 ) (s 1, p 3 ) … Ties in the preference lists Lower bounds on projects

Similar presentations