Student-Project Allocation with Preferences over Projects

28
1 Student-Project Allocation with Preferences over Projects David Manlove Gregg O’Malley University of Glasgow Department of Computing Science Supported by EPSRC grant GR/R84597/01, RSE / Scottish Exec Personal

description

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. - PowerPoint PPT Presentation

Transcript of Student-Project Allocation with Preferences over Projects

Page 1: Student-Project Allocation with Preferences over Projects

1

Student-Project Allocation with

Preferences over Projects

David ManloveGregg O’Malley

University of GlasgowDepartment of Computing Science

Supported by EPSRC grant GR/R84597/01,RSE / Scottish Exec Personal Research Fellowship

Page 2: Student-Project Allocation with Preferences over Projects

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

Page 3: Student-Project Allocation with Preferences over Projects

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

Page 4: Student-Project Allocation with Preferences over Projects

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)

Page 5: Student-Project Allocation with Preferences over Projects

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 si finds acceptable a set of projects Ai P si ranks Ai in strict order of preference

Each project pj has a capacity cj

Each lecturer lk has a capacity dk

Each lecturer lk offers a set of projects Pk P lk ranks Pk in strict order of preference assume that P1, P2, …, Pq partitions P

Page 6: Student-Project Allocation with Preferences over Projects

6

Example SPA-P instance

Student preferences Lecturer preferences Lecturer capacities

s1 : p1 p4 p3 l1 : p1 p2 p3 3

s2 : p5 p1 Project capacities: 1 2 1

s3 : p2 p5

s4 : p4 p2 l2 : p4 p5 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

Page 7: Student-Project Allocation with Preferences over Projects

7

A matching M is a subset of S×P such that1. if (si, pj)M then pj Ai , i.e. si finds pj acceptable2. si S • |pj P : (si, pj)M}| 13. pj P • |si S : (si, pj)M}| cj , 4. lk L • |si S : (si, pj)M pj Pk}| dk

If (si, pj)M , where lk offers pj , we say that si is assigned to pj

si is assigned to lk

pj is assigned si lk is assigned si

For any assigned student si , M(si) denotes the project that si is assigned to

For any project pj , M(pj) denotes the set of students assigned to pj

For any lecturer lk , M(lk) denotes the set of students assigned to (projects offered by) lk

Definition of a matching

Page 8: Student-Project Allocation with Preferences over Projects

8

A matching M is a subset of S×P such that1. if (si, pj)M then pj Ai , i.e. si finds pj acceptable2. si S • |pj P : (si, pj)M}| 13. pj P • |si S : (si, pj)M}| cj , 4. lk L • |si S : (si, pj)M pj Pk}| dk

If (si, pj)M , where lk offers pj , we say that si is assigned to pj

si is assigned to lk

pj is assigned si lk is assigned si

For any assigned student si , M(si) denotes the project that si is assigned to

For any project pj , M(pj) denotes the set of students assigned to pj

For any lecturer lk , M(lk) denotes the set of students assigned to (projects offered by) lk

Definition of a matching

Page 9: Student-Project Allocation with Preferences over Projects

9

A matching M is a subset of S×P such that1. if (si, pj)M then pj Ai , i.e. si finds pj acceptable2. si S • |pj P : (si, pj)M}| 13. pj P • |si S : (si, pj)M}| cj , 4. lk L • |si S : (si, pj)M pj Pk}| dk

If (si, pj)M , where lk offers pj , we say that si is assigned to pj

si is assigned to lk

pj is assigned si lk is assigned si

For any assigned student si , M(si) denotes the project that si is assigned to

For any project pj , M(pj) denotes the set of students assigned to pj

For any lecturer lk , M(lk) denotes the set of students assigned to (projects offered by) lk

Definition of a matching

Page 10: Student-Project Allocation with Preferences over Projects

10

Example matching

Student preferences Lecturer preferences Lecturer capacities

s1 : p1 p4 p3 l1 : p1 p2 p3 2/3

s2 : p5 p1 Project capacities: 0/1 1/2 1/1

s3 : p2 p5

s4 : p4 p2 l2 : p4 p5 2/2

s5 : p5 p2 Project capacities: 0/1 2/2

Lecturer capacities: d1 = 3, d2 = 2

Project capacities: c1 = 1; c2 = 2; c3 = 1; c4 = 1; c5 = 2

Page 11: Student-Project Allocation with Preferences over Projects

11

Stable matchings

(si, pj) is a blocking pair of a matching M if:

1. pj Ai

2. Either si is unmatched in M, or si prefers pj to M(si)

3. pj is under-subscribed and eithera) si M(lk) and lk prefers pj to M(si)

b) si M(lk) and lk is under-subscribed

c) si M(lk) and lk prefers pj to his worst non-empty project

where lk is the lecturer who offers pj

A matching M is stable if it admits no blocking pair

Page 12: Student-Project Allocation with Preferences over Projects

12

Example blocking pair (1)

Student preferences Lecturer preferences Lecturer capacities

s1 : p1 p4 p3 l1 : p1 p2 p3 2/3

s2 : p5 p1 Project capacities: 0/1 1/2 1/1

s3 : p2 p5

s4 : p4 p2 l2 : p4 p5 2/2

s5 : p5 p2 Project capacities: 0/1 2/2

(s1, p1) is a blocking pair, since

3. p1 is under-subscribed and

a) s1 M(l1) and l1 prefers p1 to M(s1)=p3

Page 13: Student-Project Allocation with Preferences over Projects

13

Example blocking pair (2)

Student preferences Lecturer preferences Lecturer capacities

s1 : p1 p4 p3 l1 : p1 p2 p3 2/3

s2 : p5 p1 Project capacities: 0/1 1/2 1/1

s3 : p2 p5

s4 : p4 p2 l2 : p4 p5 2/2

s5 : p5 p2 Project capacities: 0/1 2/2

(s2, p1) is a blocking pair, since

3. p1 is under-subscribed and

b) s2 M(l1) and l1 is under-subscribed

Page 14: Student-Project Allocation with Preferences over Projects

14

Example blocking pair (3)

Student preferences Lecturer preferences Lecturer capacities

s1 : p1 p4 p3 l1 : p1 p2 p3 2/3

s2 : p5 p1 Project capacities: 0/1 1/2 1/1

s3 : p2 p5

s4 : p4 p2 l2 : p4 p5 2/2

s5 : p5 p2 Project capacities: 0/1 2/2

(s4, p4) is a blocking pair, since

3. p4 is under-subscribed and

c) s4 M(l2) and l2 prefers p4 to his worst non-empty project

Page 15: Student-Project Allocation with Preferences over Projects

15

Example stable matching

Student preferences Lecturer preferences Lecturer capacities

s1 : p1 p4 p3 l1 : p1 p2 p3 2/3

s2 : p5 p1 Project capacities: 1/1 1/2 0/1

s3 : p2 p5

s4 : p4 p2 l2 : p4 p5 2/2

s5 : p5 p2 Project capacities: 1/1 1/2

Page 16: Student-Project Allocation with Preferences over Projects

16

Sizes of stable matchings

Every instance of SPA-P admits at least one stable matching

Page 17: Student-Project Allocation with Preferences over Projects

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 preferencess1 : p1 p2 l1 : p1

s2 : p1 l2 : p2 (each project and lecturer has capacity 1)

Page 18: Student-Project Allocation with Preferences over Projects

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 preferencess1 : p1 p2 l1 : p1

s2 : p1 l2 : p2 (each project and lecturer has capacity 1)

M1={(s1, p1)}

Page 19: Student-Project Allocation with Preferences over Projects

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 preferencess1 : p1 p2 l1 : p1

s2 : p1 l2 : p2 (each project and lecturer has capacity 1)

M1={(s1, p1)}

Student preferences Lecturer preferencess1 : p1 p2 l1 : p1

s2 : p1 l2 : p2 (each project and lecturer has capacity 1)

M2={(s1, p2), (s2, p1)}

Page 20: Student-Project Allocation with Preferences over Projects

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

Page 21: Student-Project Allocation with Preferences over Projects

21

Approximation algorithm

M = ;while (some student si is free and si has 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 */

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

Page 22: Student-Project Allocation with Preferences over Projects

22

Approximation algorithm

M = ;while (some student si is free and si has 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 */

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

Page 23: Student-Project Allocation with Preferences over Projects

23

Approximation algorithm

M = ;while (some student si is free and si has 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 */

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

Page 24: Student-Project Allocation with Preferences over Projects

24

Approximation algorithm

M = ;while (some student si is free and si has 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 */

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

Page 25: Student-Project Allocation with Preferences over Projects

25

Approximation algorithm

M = ;while (some student si is free and si has 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 */

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

Page 26: Student-Project Allocation with Preferences over Projects

26

Approximation algorithm

M = ;while (some student si is free and si has 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 */

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

Page 27: Student-Project Allocation with Preferences over Projects

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”

Page 28: Student-Project Allocation with Preferences over Projects

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