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

Slides:



Advertisements
Similar presentations
Numbers Treasure Hunt Following each question, click on the answer. If correct, the next page will load with a graphic first – these can be used to check.
Advertisements

2 Casa 15m Perspectiva Lateral Izquierda.
1 A B C
Scenario: EOT/EOT-R/COT Resident admitted March 10th Admitted for PT and OT following knee replacement for patient with CHF, COPD, shortness of breath.
Simplifications of Context-Free Grammars
Variations of the Turing Machine
PDAs Accept Context-Free Languages
Angstrom Care 培苗社 Quadratic Equation II
AP STUDY SESSION 2.
1
Select from the most commonly used minutes below.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
STATISTICS HYPOTHESES TEST (I)
STATISTICS INTERVAL ESTIMATION Professor Ke-Sheng Cheng Department of Bioenvironmental Systems Engineering National Taiwan University.
David Burdett May 11, 2004 Package Binding for WS CDL.
Create an Application Title 1Y - Youth Chapter 5.
CALENDAR.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt BlendsDigraphsShort.
1 Almost stable matchings in the Roommates problem David Abraham Computer Science Department Carnegie-Mellon University Péter Biró Department of Computer.
1 Approximability Results for Induced Matchings in Graphs David Manlove University of Glasgow Joint work with Billy Duckworth Michele Zito Macquarie University.
1 Student-Project Allocation with Preferences over Projects David Manlove Gregg OMalley University of Glasgow Department of Computing Science Supported.
1 Almost stable matchings in the Roommates problem David Abraham Computer Science Department Carnegie-Mellon University, USA Péter Biró Department of Computer.
Strong Stability in the Hospitals/Residents Problem
1 Click here to End Presentation Software: Installation and Updates Internet Download CD release NACIS Updates.
The 5S numbers game..
Online and Offline Selling in Limit Order Markets Aaron Johnson Yale University Kevin Chang Yahoo! Inc. Workshop on Internet and Network Economics December,
Media-Monitoring Final Report April - May 2010 News.
Break Time Remaining 10:00.
EE, NCKU Tien-Hao Chang (Darby Chang)
Turing Machines.
Table 12.1: Cash Flows to a Cash and Carry Trading Strategy.
PP Test Review Sections 6-1 to 6-6
Outline Minimum Spanning Tree Maximal Flow Algorithm LP formulation 1.
1 The Royal Doulton Company The Royal Doulton Company is an English company producing tableware and collectables, dating to Operating originally.
Operating Systems Operating Systems - Winter 2010 Chapter 3 – Input/Output Vrije Universiteit Amsterdam.
Exarte Bezoek aan de Mediacampus Bachelor in de grafische en digitale media April 2014.
TESOL International Convention Presentation- ESL Instruction: Developing Your Skills to Become a Master Conductor by Beth Clifton Crumpler by.
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
1..
Adding Up In Chunks.
MaK_Full ahead loaded 1 Alarm Page Directory (F11)
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Synthetic.
1 Termination and shape-shifting heaps Byron Cook Microsoft Research, Cambridge Joint work with Josh Berdine, Dino Distefano, and.
Artificial Intelligence
Before Between After.
Subtraction: Adding UP
: 3 00.
5 minutes.
1 Non Deterministic Automata. 2 Alphabet = Nondeterministic Finite Accepter (NFA)
1 hi at no doifpi me be go we of at be do go hi if me no of pi we Inorder Traversal Inorder traversal. n Visit the left subtree. n Visit the node. n Visit.
1 Let’s Recapitulate. 2 Regular Languages DFAs NFAs Regular Expressions Regular Grammars.
Types of selection structures
Speak Up for Safety Dr. Susan Strauss Harassment & Bullying Consultant November 9, 2012.
Essential Cell Biology
Converting a Fraction to %
Numerical Analysis 1 EE, NCKU Tien-Hao Chang (Darby Chang)
Clock will move after 1 minute
famous photographer Ara Guler famous photographer ARA GULER.
PSSA Preparation.
Immunobiology: The Immune System in Health & Disease Sixth Edition
Physics for Scientists & Engineers, 3rd Edition
Select a time to count down from the clock above
Copyright Tim Morris/St Stephen's School
1.step PMIT start + initial project data input Concept Concept.
1 Dr. Scott Schaefer Least Squares Curves, Rational Representations, Splines and Continuity.
1 Decidability continued…. 2 Theorem: For a recursively enumerable language it is undecidable to determine whether is finite Proof: We will reduce the.
1 Non Deterministic Automata. 2 Alphabet = Nondeterministic Finite Accepter (NFA)
Algorithms for Student-Project Allocation
Presentation transcript:

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 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 (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 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 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 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 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: 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 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 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 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 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 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 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 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 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 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 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 Sizes of stable matchings Every instance of SPA-P admits at least one stable matching

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