Student-Project Allocation with Preferences over Projects - PowerPoint PPT Presentation

1 / 60
About This Presentation
Title:

Student-Project Allocation with Preferences over Projects

Description:

University of Glasgow. Department of Computing Science. Joint work ... University of Southampton. Proll (1972), bottleneck ... University of York, Department ... – PowerPoint PPT presentation

Number of Views:187
Avg rating:3.0/5.0
Slides: 61
Provided by: dcsG6
Category:

less

Transcript and Presenter's Notes

Title: Student-Project Allocation with Preferences over Projects


1
Student-Project Allocation withPreferences over
Projects
  • David Manlove
  • University of GlasgowDepartment 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
  • 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)
  • 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 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)
  • 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 Ss1, s2, , sn
  • Set of projects Pp1, p2, , pm
  • Set of lecturers Ll1, 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

7
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

8
Definition of a matching
  • An assignment M is a subset of SP such that if
    (si, pj)?M then si finds pj acceptable

9
Definition of a matching
  • An assignment M is a subset of SP such that if
    (si, pj)?M then si finds pj acceptable
  • 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

10
Definition of a matching
  • An assignment M is a subset of SP such that if
    (si, pj)?M then si finds pj acceptable
  • 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 student si , M(si) denotes the set of
    projects 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

11
Definition of a matching
  • An assignment M is a subset of SP such that if
    (si, pj)?M then si finds pj acceptable
  • 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 student si , M(si) denotes the set of
    projects 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
  • A matching M is an assignment such that
    M(si)?1, M(pj)?cj and M(lk)?dk

12
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

13
Stable matchings
  • (si, pj) is a blocking pair of a matching M if
  • pj ? Ai
  • Either si is unmatched in M, or si prefers pj to
    M(si)
  • pj is under-subscribed and either
  • si ?M(lk) and lk prefers pj to M(si)
  • si ?M(lk) and lk is under-subscribed
  • 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

14
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
  • s1 ?M(l1) and l1 prefers p1 to M(s1)p3

15
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
  • s2 ?M(l1) and l1 is under-subscribed

16
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
  • s4 ?M(l2) and l2 prefers p4 to his worst
    non-empty project

17
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

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 preferences Lecturer preferences
  • s1 p1 p2 l1 p1
  • s2 p1 l2 p2 (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 preferences Lecturer preferences
  • s1 p1 p2 l1 p1
  • s2 p1 l2 p2 (each project and lecturer
    has capacity 1)
  • M1(s1, p1)

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 preferences Lecturer preferences
  • s1 p1 p2 l1 p1
  • s2 p1 l2 p2 (each project and lecturer
    has capacity 1)
  • M1(s1, p1)
  • Student preferences Lecturer preferences
  • s1 p1 p2 l1 p1
  • s2 p1 l2 p2 (each project and lecturer
    has capacity 1)
  • M2(s1, p2), (s2, p1)

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

u1
w1
w2
u2
w3
u3
  • 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
must ensure that ui or wj matched
ui
EXACT-MM instance
wj
assume n2 RH vertices
assume n1 LH vertices
25
Overview of the reduction
must ensure that ui or wj matched
ui
EXACT-MM instance
wj
assume n2 RH vertices
assume n1 LH vertices
Student preferences
Lecturer preferences
ALL-SPA-P instance
si pj y1yn1-K
qj pj zj
(1 ? j ? n2)
(1 ? i ? n1)
ti z1zn2
rj yj
(1 ? i ? n2-K)
(1 ? j ? n1-K)
Each project and lecturer has capacity 1
26
Overview of the reduction
must ensure that ui or wj matched
ui
EXACT-MM instance
wj
assume n2 RH vertices
assume n1 LH vertices
Student preferences
Lecturer preferences
ALL-SPA-P instance
si pj y1yn1-K
qj pj zj
(1 ? j ? n2)
(1 ? i ? n1)
ti z1zn2
rj yj
(1 ? i ? n2-K)
(1 ? j ? n1-K)
Each project and lecturer has capacity 1
27
Approximation algorithm
M M ? (si, pj) / si is
provisionally assigned to pj and to lk / if
(lk is full) pz lks worst non-empty
project for (each successor pt of pz on
lks list) for (each student sr such
that sr?At) delete pt from srs
list
  • M ?
  • while (some student si is free and
  • si has a nonempty list)
  • pj first project on sis list
  • lk lecturer who offers pj
  • / si applies to pj /
  • if (pj is full)
  • delete pj from sis list
  • else if (lk is full)
  • pz lks worst non-empty project
  • if (pz pj )
  • delete pj from sis list
  • else
  • sr some student in M(pz)
  • M M \ (sr , pz)
  • delete pz from srs list

28
Approximation algorithm
M M ? (si, pj) / si is
provisionally assigned to pj and to lk / if
(lk is full) pz lks worst non-empty
project for (each successor pt of pz on
lks list) for (each student sr such
that sr?At) delete pt from srs
list
  • M ?
  • while (some student si is free and
  • si has a nonempty list)
  • pj first project on sis list
  • lk lecturer who offers pj
  • / si applies to pj /
  • if (pj is full)
  • delete pj from sis list
  • else if (lk is full)
  • pz lks worst non-empty project
  • if (pz pj )
  • delete pj from sis list
  • else
  • sr some student in M(pz)
  • M M \ (sr , pz)
  • delete pz from srs list

29
Approximation algorithm
M M ? (si, pj) / si is
provisionally assigned to pj and to lk / if
(lk is full) pz lks worst non-empty
project for (each successor pt of pz on
lks list) for (each student sr such
that sr?At) delete pt from srs
list
  • M ?
  • while (some student si is free and
  • si has a nonempty list)
  • pj first project on sis list
  • lk lecturer who offers pj
  • / si applies to pj /
  • if (pj is full)
  • delete pj from sis list
  • else if (lk is full)
  • pz lks worst non-empty project
  • if (pz pj )
  • delete pj from sis list
  • else
  • sr some student in M(pz)
  • M M \ (sr , pz)
  • delete pz from srs list

30
Approximation algorithm
M M ? (si, pj) / si is
provisionally assigned to pj and to lk / if
(lk is full) pz lks worst non-empty
project for (each successor pt of pz on
lks list) for (each student sr such
that sr?At) delete pt from srs
list
  • M ?
  • while (some student si is free and
  • si has a nonempty list)
  • pj first project on sis list
  • lk lecturer who offers pj
  • / si applies to pj /
  • if (pj is full)
  • delete pj from sis list
  • else if (lk is full)
  • pz lks worst non-empty project
  • if (pz pj )
  • delete pj from sis list
  • else
  • sr some student in M(pz)
  • M M \ (sr , pz)
  • delete pz from srs list

31
Approximation algorithm
M M ? (si, pj) / si is
provisionally assigned to pj and to lk / if
(lk is full) pz lks worst non-empty
project for (each successor pt of pz on
lks list) for (each student sr such
that sr?At) delete pt from srs
list
  • M ?
  • while (some student si is free and
  • si has a nonempty list)
  • pj first project on sis list
  • lk lecturer who offers pj
  • / si applies to pj /
  • if (pj is full)
  • delete pj from sis list
  • else if (lk is full)
  • pz lks worst non-empty project
  • if (pz pj )
  • delete pj from sis list
  • else
  • sr some student in M(pz)
  • M M \ (sr , pz)
  • delete pz from srs list

32
Approximation algorithm
M M ? (si, pj) / si is
provisionally assigned to pj and to lk / if
(lk is full) pz lks worst non-empty
project for (each successor pt of pz on
lks list) for (each student sr such
that sr?At) delete pt from srs
list
  • M ?
  • while (some student si is free and
  • si has a nonempty list)
  • pj first project on sis list
  • lk lecturer who offers pj
  • / si applies to pj /
  • if (pj is full)
  • delete pj from sis list
  • else if (lk is full)
  • pz lks worst non-empty project
  • if (pz pj )
  • delete pj from sis list
  • else
  • sr some student in M(pz)
  • M M \ (sr , pz)
  • delete pz from srs list

33
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3
  • s2 p1 p4 Project capacities 1 2
    2 1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 3
  • s5 p3 p5 Project capacities 1
    2
  • s6 p5 p3 p6
  • Lecturer capacities d1 3, d2 3
  • Project capacities c1 2 c2 2 c3 1 c4
    1 c5 1 c6 2

34
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 1/3
  • s2 p1 p4 Project capacities 0/1 1/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 0/3
  • s5 p3 p5 Project capacities 0/1
    0/2
  • s6 p5 p3 p6
  • s1 applies to p1
  • p1 remains under-subscribed l1 remains
    under-subscribed

35
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 2/3
  • s2 p1 p4 Project capacities 0/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 0/3
  • s5 p3 p5 Project capacities 0/1
    0/2
  • s6 p5 p3 p6
  • s2 applies to p1
  • p1 becomes full l1 remains under-subscribed

36
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 2/3
  • s2 p1 p4 Project capacities 0/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 0/3
  • s5 p3 p5 Project capacities 0/1
    0/2
  • s6 p5 p3 p6
  • s3 applies to p1
  • p1 is already full

37
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 2/3
  • s2 p1 p4 Project capacities 0/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 0/3
  • s5 p3 p5 Project capacities 0/1
    0/2
  • s6 p5 p3 p6
  • s3 applies to p1
  • p1 is already full p1 is deleted from s3s list

?
38
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 0/1 2/2
    1/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 0/3
  • s5 p3 p5 Project capacities 0/1
    0/2
  • s6 p5 p3 p6
  • s3 applies to p2
  • p2 remains under-subscribed l1 becomes full

?
39
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 0/1 2/2
    1/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 0/3
  • s5 p3 p5 Project capacities 0/1
    0/2
  • s6 p5 p3 p6
  • s3 applies to p2
  • p2 remains under-subscribed l1 becomes full
    p4 is deleted from s2s list

?
?
40
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 0/1 2/2
    1/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 0/3
  • s5 p3 p5 Project capacities 0/1
    0/2
  • s6 p5 p3 p6
  • s4 applies to p3
  • l1 is already full

?
?
41
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 0/3
  • s5 p3 p5 Project capacities 0/1
    0/2
  • s6 p5 p3 p6
  • s4 applies to p3
  • l1 is already full s3 is rejected from p2 p3
    becomes full

?
?
?
42
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 0/3
  • s5 p3 p5 Project capacities 0/1
    0/2
  • s6 p5 p3 p6
  • s4 applies to p3
  • l1 is already full s3 is rejected from p2 s3
    is rejected from p2
  • p2 is deleted from s1s list

?
?
?
?
43
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 1/3
  • s5 p3 p5 Project capacities 1/1
    0/2
  • s6 p5 p3 p6
  • s3 applies to p5
  • p5 becomes full l2 remains under-subscribed

?
?
?
?
44
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 1/3
  • s5 p3 p5 Project capacities 1/1
    0/2
  • s6 p5 p3 p6
  • s5 applies to p3
  • p3 is already full

?
?
?
?
45
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 1/3
  • s5 p3 p5 Project capacities 1/1
    0/2
  • s6 p5 p3 p6
  • s5 applies to p3
  • p3 is already full p3 is deleted from s5s list

?
?
?
?
?
46
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 1/3
  • s5 p3 p5 Project capacities 1/1
    0/2
  • s6 p5 p3 p6
  • s5 applies to p5
  • p5 is already full

?
?
?
?
?
47
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 1/3
  • s5 p3 p5 Project capacities 1/1
    0/2
  • s6 p5 p3 p6
  • s5 applies to p5
  • p5 is already full p5 is deleted from s5s list

?
?
?
?
?
?
48
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 1/3
  • s5 p3 p5 Project capacities 1/1
    0/2
  • s6 p5 p3 p6
  • s6 applies to p5
  • p5 is already full

?
?
?
?
?
?
49
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 1/3
  • s5 p3 p5 Project capacities 1/1
    0/2
  • s6 p5 p3 p6
  • s6 applies to p5
  • p5 is already full p5 is deleted from s6s list

?
?
?
?
?
?
?
50
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 1/3
  • s5 p3 p5 Project capacities 1/1
    0/2
  • s6 p5 p3 p6
  • s6 applies to p3
  • p3 is already full

?
?
?
?
?
?
?
51
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 1/3
  • s5 p3 p5 Project capacities 1/1
    0/2
  • s6 p5 p3 p6
  • s6 applies to p3
  • p3 is already full p3 is deleted from s6s list

?
?
?
?
?
?
?
?
52
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 2/3
  • s5 p3 p5 Project capacities 1/1
    1/2
  • s6 p5 p3 p6
  • s6 applies to p6
  • p6 remains under-subscribed l2 remains
    under-subscribed

?
?
?
?
?
?
?
?
53
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 2/3
  • s5 p3 p5 Project capacities 1/1
    1/2
  • s6 p5 p3 p6

?
?
?
?
?
?
?
?
54
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 2/3
  • s5 p3 p5 Project capacities 1/1
    1/2
  • s6 p5 p3 p6
  • Algorithm terminates with a stable matching of
    size 5

55
Example SPA-P instance
  • Student preferences Lecturer preferences
    Lecturer capacities
  • s1 p1 p2 p6 l1 p3 p1 p2
    p4 3/3
  • s2 p1 p4 Project capacities 1/1 2/2
    0/2 0/1
  • s3 p1 p2 p5
  • s4 p3 l2 p5 p6 3/3
  • s5 p3 p5 Project capacities 1/1
    2/2
  • s6 p5 p3 p6
  • Stable matching of size 6

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 preferences Lecturer preferences s1 p1
p2 l1 p1 s2 p1 l2 p2 s3 p3 p4
l3 p3 s4 p3 l4 p4 s2n-1 p2n-1
p2n l2n-1 p2n-1 s2n p2n-1 l2n
p2n Each project and lecturer has capacity 1
58
A worst-case example
Student preferences Lecturer preferences s1 p1
p2 l1 p1 s2 p1 l2 p2 s3 p3 p4
l3 p3 s4 p3 l4 p4 s2n-1 p2n-1
p2n l2n-1 p2n-1 s2n p2n-1 l2n
p2n Each project and lecturer has capacity
1 Students apply to projects in increasing
indicial order M1(s1, p1), (s3, p3), ,
(s2n-1, p2n-1), M1n
59
A worst-case example
Student preferences Lecturer preferences s1 p1
p2 l1 p1 s2 p1 l2 p2 s3 p3 p4
l3 p3 s4 p3 l4 p4 s2n-1 p2n-1
p2n l2n-1 p2n-1 s2n p2n-1 l2n
p2n Each project and lecturer has capacity
1 Students apply to projects in decreasing
indicial order M2(s1, p2), (s2, p1), ,
(s2n-1, p2n), (s2n, p2n-1), M22n
60
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
Write a Comment
User Comments (0)
About PowerShow.com