1 Student-Project Allocation with Preferences over Projects David Manlove Gregg OMalley University...

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

Transcript of 1 Student-Project Allocation with Preferences over Projects David Manlove Gregg OMalley University...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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