Download presentation
Presentation is loading. Please wait.
Published byElijah Phillips Modified over 10 years ago
1
1 Student-Project Allocation with Preferences over Projects David Manlove University of Glasgow Department of Computing Science Joint work with Gregg OMalley Supported by EPSRC grant GR/R84597/01, RSE / Scottish Exec Personal Research Fellowship
2
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
3 Related work (1) 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 Proll (1972), bottleneck assignment problem Teo and Ho (1998), greedy approach Anwar and Bahaj (2003), integer programming Harper et al (2005), genetic algorithm
4
4 Related work (2) Lecturer preferences over students 1. Project and lecturer capacities equal to 1 University of York, Department of Computer Science Constraint programming for stable marriage variants Dye (2001), Kazakov (2002), Thorn (2003) 2. Arbitrary project and lecturer capacities Linear-time combinatorial algorithms 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
5
5 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) DFM and OMalley, Student-Project Allocation with Preferences over Projects, Proc. ACID 2005, to appear Seek a stable matching as a solution Roth (1984)
6
6 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
7
7 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
8
8 An assignment M is a subset of S × P such that if (s i, p j ) M then s i finds p j acceptable Definition of a matching
9
9 An assignment M is a subset of S × P such that if (s i, p j ) M then s i finds p j acceptable 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 Definition of a matching
10
10 An assignment M is a subset of S × P such that if (s i, p j ) M then s i finds p j acceptable 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 student s i, M ( s i ) denotes the set of projects 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
11
11 Definition of a matching An assignment M is a subset of S × P such that if (s i, p j ) M then s i finds p j acceptable 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 student s i, M ( s i ) denotes the set of projects 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 A matching M is an assignment such that | M ( s i )| 1, |M(p j )| c j and |M(l k )| d k
12
12 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
13
13 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
14
14 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
15
15 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
16
16 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
17
17 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
18
18 Sizes of stable matchings Every instance of SPA-P admits at least one stable matching
19
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)
20
20 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 )}
21
21 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 )}
22
22 Maximisation problem MAX-SPA-P denotes the problem of finding a maximum cardinality stable matching, given an instance of SPA-P ALL-SPA-P denotes the problem of deciding whether an instance of SPA-P admits a stable matching in which every student is matched We show that ALL-SPA-P is NP-complete Immediate corollary is that MAX-SPA-P is NP-hard Result holds even if each project and lecturer has capacity 1
23
23 Exact Maximal Matching A matching M in a graph G is maximal if M { e } is not a matching for any edge e M u1u1 u2u2 w1w1 w2w2 u3u3 w3w3 u1u1 u2u2 w1w1 w2w2 u3u3 w3w3 The following problem is NP-complete: EXACT-MM Input: Bipartite graph G and integer K Question: does G contain a maximal matching of size (exactly) K ?
24
24 Overview of the reduction uiui wjwj must ensure that u i or w j matched EXACT-MM instance assume n 1 LH vertices assume n 2 RH vertices
25
25 Overview of the reduction uiui wjwj must ensure that u i or w j matched s i : p j … y 1 …y n 1 -K q j : p j z j ALL-SPA-P instance EXACT-MM instance Student preferences t i : z 1 …z n 2 assume n 1 LH vertices assume n 2 RH vertices Lecturer preferences (1 i n 1 ) (1 j n 2 ) (1 i n 2 -K) r j : y j (1 j n 1 -K) Each project and lecturer has capacity 1
26
26 Overview of the reduction uiui wjwj must ensure that u i or w j matched s i : p j … y 1 …y n 1 -K q j : p j z j ALL-SPA-P instance EXACT-MM instance Student preferences Each project and lecturer has capacity 1 t i : z 1 …z n 2 assume n 1 LH vertices assume n 2 RH vertices Lecturer preferences (1 i n 1 ) (1 j n 2 ) (1 i n 2 -K) r j : y j (1 j n 1 -K)
27
27 Approximation algorithm M = M {(s i, p j )} ; /* s i is provisionally assigned to p j and to l k */ 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 ; } 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 */ if (p j is full) delete p j from s i s list ; else if (l k is full) { p z = l k s worst non-empty project ; if (p z = p j ) delete p j from s i s list ; else { s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ;
28
28 Approximation algorithm M = M {(s i, p j )} ; /* s i is provisionally assigned to p j and to l k */ 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 ; } 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 */ if (p j is full) delete p j from s i s list ; else if (l k is full) { p z = l k s worst non-empty project ; if (p z = p j ) delete p j from s i s list ; else { s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ;
29
29 Approximation algorithm M = M {(s i, p j )} ; /* s i is provisionally assigned to p j and to l k */ 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 ; } 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 */ if (p j is full) delete p j from s i s list ; else if (l k is full) { p z = l k s worst non-empty project ; if (p z = p j ) delete p j from s i s list ; else { s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ;
30
30 Approximation algorithm M = M {(s i, p j )} ; /* s i is provisionally assigned to p j and to l k */ 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 ; } 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 */ if (p j is full) delete p j from s i s list ; else if (l k is full) { p z = l k s worst non-empty project ; if (p z = p j ) delete p j from s i s list ; else { s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ;
31
31 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 */ if (p j is full) delete p j from s i s list ; else if (l k is full) { p z = l k s worst non-empty project ; if (p z = p j ) delete p j from s i s list ; else { s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ; M = M {(s i, p j )} ; /* s i is provisionally assigned to p j and to l k */ 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 ; }
32
32 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 */ if (p j is full) delete p j from s i s list ; else if (l k is full) { p z = l k s worst non-empty project ; if (p z = p j ) delete p j from s i s list ; else { s r = some student in M(p z ); M = M \ {(s r, p z )} ; delete p z from s r s list ; M = M {(s i, p j )} ; /* s i is provisionally assigned to p j and to l k */ 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 ; }
33
33 Example SPA-P instance Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3 s 2 : p 1 p 4 Project capacities: 1 2 2 1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 3 s 5 : p 3 p 5 Project capacities: 1 2 s 6 : p 5 p 3 p 6 Lecturer capacities: d 1 = 3, d 2 = 3 Project capacities: c 1 = 2 ; c 2 = 2 ; c 3 = 1 ; c 4 = 1 ; c 5 = 1 ; c 6 = 2
34
34 Example SPA-P instance Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 1/3 s 2 : p 1 p 4 Project capacities: 0/1 1/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 0/3 s 5 : p 3 p 5 Project capacities: 0/1 0/2 s 6 : p 5 p 3 p 6 s 1 applies to p 1 p 1 remains under-subscribed ; l 1 remains under-subscribed
35
35 Example SPA-P instance Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 2/3 s 2 : p 1 p 4 Project capacities: 0/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 0/3 s 5 : p 3 p 5 Project capacities: 0/1 0/2 s 6 : p 5 p 3 p 6 s 2 applies to p 1 p 1 becomes full ; l 1 remains under-subscribed
36
36 Example SPA-P instance Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 2/3 s 2 : p 1 p 4 Project capacities: 0/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 0/3 s 5 : p 3 p 5 Project capacities: 0/1 0/2 s 6 : p 5 p 3 p 6 s 3 applies to p 1 p 1 is already full
37
37 Example SPA-P instance Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 2/3 s 2 : p 1 p 4 Project capacities: 0/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 0/3 s 5 : p 3 p 5 Project capacities: 0/1 0/2 s 6 : p 5 p 3 p 6 s 3 applies to p 1 p 1 is already full ; p 1 is deleted from s 3 s list
38
38 Example SPA-P instance Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 0/1 2/2 1/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 0/3 s 5 : p 3 p 5 Project capacities: 0/1 0/2 s 6 : p 5 p 3 p 6 s 3 applies to p 2 p 2 remains under-subscribed ; l 1 becomes full
39
39 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 0/1 2/2 1/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 0/3 s 5 : p 3 p 5 Project capacities: 0/1 0/2 s 6 : p 5 p 3 p 6 s 3 applies to p 2 p 2 remains under-subscribed ; l 1 becomes full ; p 4 is deleted from s 2 s list Example SPA-P instance
40
40 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 0/1 2/2 1/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 0/3 s 5 : p 3 p 5 Project capacities: 0/1 0/2 s 6 : p 5 p 3 p 6 s 4 applies to p 3 l 1 is already full Example SPA-P instance
41
41 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 0/3 s 5 : p 3 p 5 Project capacities: 0/1 0/2 s 6 : p 5 p 3 p 6 s 4 applies to p 3 l 1 is already full ; s 3 is rejected from p 2 ; p 3 becomes full Example SPA-P instance
42
42 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 0/3 s 5 : p 3 p 5 Project capacities: 0/1 0/2 s 6 : p 5 p 3 p 6 s 4 applies to p 3 l 1 is already full ; s 3 is rejected from p 2 ; s 3 is rejected from p 2 ; p 2 is deleted from s 1 s list Example SPA-P instance
43
43 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 1/3 s 5 : p 3 p 5 Project capacities: 1/1 0/2 s 6 : p 5 p 3 p 6 s 3 applies to p 5 p 5 becomes full ; l 2 remains under-subscribed Example SPA-P instance
44
44 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 1/3 s 5 : p 3 p 5 Project capacities: 1/1 0/2 s 6 : p 5 p 3 p 6 s 5 applies to p 3 p 3 is already full Example SPA-P instance
45
45 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 1/3 s 5 : p 3 p 5 Project capacities: 1/1 0/2 s 6 : p 5 p 3 p 6 s 5 applies to p 3 p 3 is already full ; p 3 is deleted from s 5 s list Example SPA-P instance
46
46 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 1/3 s 5 : p 3 p 5 Project capacities: 1/1 0/2 s 6 : p 5 p 3 p 6 s 5 applies to p 5 p 5 is already full Example SPA-P instance
47
47 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 1/3 s 5 : p 3 p 5 Project capacities: 1/1 0/2 s 6 : p 5 p 3 p 6 s 5 applies to p 5 p 5 is already full ; p 5 is deleted from s 5 s list Example SPA-P instance
48
48 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 1/3 s 5 : p 3 p 5 Project capacities: 1/1 0/2 s 6 : p 5 p 3 p 6 s 6 applies to p 5 p 5 is already full Example SPA-P instance
49
49 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 1/3 s 5 : p 3 p 5 Project capacities: 1/1 0/2 s 6 : p 5 p 3 p 6 s 6 applies to p 5 p 5 is already full ; p 5 is deleted from s 6 s list Example SPA-P instance
50
50 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 1/3 s 5 : p 3 p 5 Project capacities: 1/1 0/2 s 6 : p 5 p 3 p 6 s 6 applies to p 3 p 3 is already full Example SPA-P instance
51
51 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 1/3 s 5 : p 3 p 5 Project capacities: 1/1 0/2 s 6 : p 5 p 3 p 6 s 6 applies to p 3 p 3 is already full ; p 3 is deleted from s 6 s list Example SPA-P instance
52
52 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 2/3 s 5 : p 3 p 5 Project capacities: 1/1 1/2 s 6 : p 5 p 3 p 6 s 6 applies to p 6 p 6 remains under-subscribed ; l 2 remains under-subscribed Example SPA-P instance
53
53 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 2/3 s 5 : p 3 p 5 Project capacities: 1/1 1/2 s 6 : p 5 p 3 p 6 Example SPA-P instance
54
54 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 2/3 s 5 : p 3 p 5 Project capacities: 1/1 1/2 s 6 : p 5 p 3 p 6 Algorithm terminates with a stable matching of size 5 Example SPA-P instance
55
55 Student preferences Lecturer preferences Lecturer capacities s 1 : p 1 p 2 p 6 l 1 : p 3 p 1 p 2 p 4 3/3 s 2 : p 1 p 4 Project capacities: 1/1 2/2 0/2 0/1 s 3 : p 1 p 2 p 5 s 4 : p 3 l 2 : p 5 p 6 3/3 s 5 : p 3 p 5 Project capacities: 1/1 2/2 s 6 : p 5 p 3 p 6 Stable matching of size 6 Example SPA-P instance
56
56 Theoretical results Algorithm produces a stable matching, given an instance of SPA-P So every instance of SPA-P admits a stable matching Approximation algorithm has a performance guarantee of 2 Algorithm may be implemented to run in O(L) time, where L is total length of the students preference lists The constructed matching admits no exchange-blocking coalition
57
57 A worst-case example Student preferencesLecturer preferences s 1 : p 1 p 2 l 1 : p 1 s 2 : p 1 l 2 : p 2 s 3 : p 3 p 4 l 3 : p 3 s 4 : p 3 l 4 : p 4 … s 2n-1 : p 2n-1 p 2n l 2n-1 : p 2n-1 s 2n : p 2n-1 l 2n : p 2n Each project and lecturer has capacity 1
58
58 A worst-case example Student preferencesLecturer preferences s 1 : p 1 p 2 l 1 : p 1 s 2 : p 1 l 2 : p 2 s 3 : p 3 p 4 l 3 : p 3 s 4 : p 3 l 4 : p 4 … s 2n-1 : p 2n-1 p 2n l 2n-1 : p 2n-1 s 2n : p 2n-1 l 2n : p 2n Each project and lecturer has capacity 1 Students apply to projects in increasing indicial order M 1 ={(s 1, p 1 ), (s 3, p 3 ), …, (s 2n-1, p 2n-1 )}, |M 1 |=n
59
59 A worst-case example Student preferencesLecturer preferences s 1 : p 1 p 2 l 1 : p 1 s 2 : p 1 l 2 : p 2 s 3 : p 3 p 4 l 3 : p 3 s 4 : p 3 l 4 : p 4 … s 2n-1 : p 2n-1 p 2n l 2n-1 : p 2n-1 s 2n : p 2n-1 l 2n : p 2n Each project and lecturer has capacity 1 Students apply to projects in decreasing indicial order M 2 ={(s 1, p 2 ), (s 2, p 1 ), …, (s 2n-1, p 2n ), (s 2n, p 2n-1 )}, |M 2 |=2n
60
60 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
© 2024 SlidePlayer.com Inc.
All rights reserved.