COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project...

34
COMP4801 Final Year Project A Web-based Project Allocation System Interim Report LEI Wan-hong, 3035202750 Department of Computer Science The University of Hong Kong supervised by Dr. T. W. Chim January 22, 2017

Transcript of COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project...

Page 1: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

COMP4801 Final Year Project

A Web-based Project AllocationSystem

Interim Report

LEI Wan-hong, 3035202750Department of Computer Science

The University of Hong Kong

supervised byDr. T. W. Chim

January 22, 2017

Page 2: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Abstract

This project presents a stable matching problem between students and projects calledthe Student-Project Allocation problem (spa) where students can work collaborativelyas a group. A matching between two sets students S and projects P is stable if thereare no two pairs (s, p) and (s′, p′) such that s prefers p′ to p and s′ prefers p to p′.Extensive researches have been carried out in relation to the stable matching problemand yet only few have addressed the spa problem depicted in this project.

The spa with group projects is studied in this project. An algorithm called the Spa-

Group is designed which aims to generate the stable matching. In addition, a webapplication called the Project Allocation System (PAS) is developed to simulate theproblem in an actual scenario. This enables users to securely submit their preferencesonline. It can also be used as a report generating tool in regard to matching details.

Currently, a prototype has been developed. This prototype implemented the algo-rithm to solve the spa without group projects. The goal is to convert it to solve thespa with group projects. Besides, a preliminary draft on the Spa-Group algorithmhas been done which is based on an existing algorithm.

Next, a preliminary work on the PAS will be followed. This will address the databaseand user-interface design of the PAS. The next deliverable will be the PAS demo sys-tem. This demo system contains basic functions of the system and will serve as theevolutionary prototype of the final PAS.

Page 3: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Acknowledgements

I would like to thank my supervisor Dr. T. W. Chim for his guidance and support.He is always kind and friendly to us. This project would not be possible without hisadvice. I am also indebted to Ken for his comments and suggestions on the draft ofthis report. I learnt invaluable report writing and presentation skills from him.

I also want to express my gratitude to the University of Hong Kong, in particular,the Department of Computer Science, for their comfortable study environment in whichI can carry out this project.

Page 4: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Contents

List of Figures iii

List of Tables iv

List of Symbols v

Abbreviations vi

1 Introduction 1

2 Background 32.1 Theoretical Aspect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.1 The spa without Group Projects . . . . . . . . . . . . . . . . . 32.1.2 The spa with Group Projects . . . . . . . . . . . . . . . . . . . 6

2.2 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Objectives 103.1 The Spa-Group Algorithm . . . . . . . . . . . . . . . . . . . . . . . . 103.2 The Project Allocation System . . . . . . . . . . . . . . . . . . . . . . 10

3.2.1 Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.2 Testing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3 Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4 Methodology 124.1 Software Development Process . . . . . . . . . . . . . . . . . . . . . . . 124.2 Algorithm Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.3 Technical Aspect of the PAS . . . . . . . . . . . . . . . . . . . . . . . . 12

4.3.1 Back-end Technologies . . . . . . . . . . . . . . . . . . . . . . . 134.3.2 Front-end Technologies . . . . . . . . . . . . . . . . . . . . . . . 14

i

Page 5: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

5 Current Progress 155.1 The Spa-lecturer Prototype . . . . . . . . . . . . . . . . . . . . . . 155.2 The Spa-Group Algorithm Draft . . . . . . . . . . . . . . . . . . . . . 15

6 Difficulties and Limitations 186.1 Technical Challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

6.1.1 Algorithm Complexity . . . . . . . . . . . . . . . . . . . . . . . 186.1.2 Browsers Compatibility . . . . . . . . . . . . . . . . . . . . . . . 18

6.2 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196.2.1 Correctness of the Spa-Group algorithm . . . . . . . . . . . . . 196.2.2 Definition of spa with group projects . . . . . . . . . . . . . . . 19

7 Schedule 20

8 Conclusion 22

Bibliography 24

Appendix A Pseudocode of the Spa-Lecturer I

ii

Page 6: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

List of Figures

2.1 An example to illustrate (a) Unstable matching and (b) Stable matching,with their assigned projects or students boxed. . . . . . . . . . . . . . . 5

2.2 Example to reduce the SPA with Group Projects into the SPA . . . . 8

4.1 A high-level system architecture diagram. Li represents the i-th layer. . 13

iii

Page 7: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

List of Tables

2.1 Matching status for each project pj in P and each lecturer lk in L. . . . 4

4.1 3 core technologies used in the front-end in the PAS. . . . . . . . . . . 14

7.1 Tentative schedule. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

iv

Page 8: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

List of Symbols

Gi a set of students in a group.

L a set of m lecturers.

M a matching or an assignment.

O a set of r group.

P a set of q projects.

Pli a subset of projects P offered by lecturer li.

R a set of Representative-Members tuples among r group.

S a set of n students.

αi preference list of student si in S.

βji preference list of lecturer li in L on project pj in Pli .

ci project’s capacity constraint.

di lecturer’s capacity constraint.

v

Page 9: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Abbreviations

spa Student-Project Allocation problem.

CDN Content Delivery Network.

PAS Project Allocation System.

RM-tuple Representative-Members tuple.

vi

Page 10: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Chapter 1

Introduction

In many universities, students are generally required to undertake a project beforethey graduate. Lecturers first propose one or more projects for students to choosefrom. Students can then take any one of these projects and are supervised by thecorresponding lecturers. In addition, different students can work together as a group.Usually, these projects are not expected to be fully taken up by students whilst thenumber of these are generally sufficient for all students.

To reduce the chance of clashing between different students or lecturers, they arerequired to provide a finite number of projects or students that they are interestedin. This list of ordering with priority is known as the preference list. The optimal1

matching between students and projects is then left to be constructed using a cen-tralised matching algorithm based on their preferences. It is important to realise that acentralised matching scheme is preferred than that of decentralised because of the prop-erty of optimality [5]. A decentralised approach cannot guarantee the such property ingeneral.

The problem depicted here is similar to that of the Student-Project Allocation prob-lem (spa) which can be further generalised by the Two-sided Matching problem [1].Researchers have been studying similar matching problems for decades. A study sug-gested two linear-time algorithms to solve the spa without group projects [1]. However,only few studies have been done on the spa with group projects [2, 3].

This project aims to make two contributions. First, it introduces an algorithmcalled the Spa-Group to deal wth the spa with group projects. Second, it implementsa web application called the Project Allocation System (PAS) to stimulate the match-

1Definition will be discussed in Section 2.1.

1

Page 11: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

ing problem. Students and lecturers are able to register and submit their preferencesonline. This goal of this system is to facilitate secretarial staffs to construct the optimalmatching.

Currently, a prototype written in Python has been developed. This prototype usedthe algorithm which solves the spa without group projects. Besides, a preliminarydraft on the Spa-Group algorithm is introduced. Along with this, database and basicuser-interfaces design will be followed. Preliminary implementation on the PAS withbasic functions is also expected to be completed within next month.

The remainder of this report proceeds as follows. First, a precise definition of the spa

with group projects are presented. Next, the PAS is introduced with clear objectives andgoals. Then the implementation details of the PAS and the methodology are followed.Current progress of the project is followed. Finally, difficulties and limitations arediscussed and a tentative schedule is included.

2

Page 12: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Chapter 2

Background

Constructing the optimal matching between students and projects can be done manuallywhen both the size of students and projects are fairly small, possibly within 10. Astraightforward approach to construct a matching is to individually match each studentwith an unallocated project that has a highest priority on the student’s preference list.This decentralised approach is known to be deficient and cannot guarantee the stabilityproperty [1]. The result generated by a decentralised matching scheme is thereby notoptimal.

In addition, when substantial number of students and projects are required to bematched, constructing such a matching manually can take up to few months or evenimpossible. A software system that can generate the optimal matching is thereforedesperately needed.

2.1 Theoretical Aspect

2.1.1 The spa without Group Projects

An instance of the spa without group projects, or simply the original spa, can bedefined as follows. Let

S = {s1, s2, · · · , sn} be the set of n students,

L = {l1, l2, · · · , lm} be the set of m lecturers and

P = {p1, p2, · · · , pq} be the set of q projects.

3

Page 13: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Each lecturer li offers a subset of project Pli which is a partition of P . Assume eachproject is uniquely offered by one lecturer, the disjoint union of Pl1 , · · · , Plm is then P .Each student si has a preference list αi which contains a sequence of subset P . Forexample, if student si prefers p2 to p1, then si’s preference list is αi = 〈p2, p1〉. Similarly,each lecturer li has a preference list βj

i for each project pj in Pli (i.e. offered project) ina sequence. Also, each project pi has a capacity constraint ci which limits the maximumnumber of students in the project. Likewise, each lecturer li has a capacity constraintdi which limits the maximum number of students that the lecturer can supervise. Itfollows that a matching or an assignment M is a subset of S × P such that [1]:

1. If (si, pj) belongs to M , then pj belongs to αi, that is, si’s preference list containsproject pj;

2. For each student si, at most one project pj is matched to si in M ;

3. For each project pi in P , ∑∀(sk,pi)∈M

sk ≤ ci,

that is, the number of students matched must not be greater than ci; and

4. For each lecturer li in L, ∑∀(sk,pj)∈M

sk ≤ di,

that is, the number of students matched must not be greater than di.

Then (si, pj) means that si is assigned to pj and is denoted by M (pj) = {si}. If pj isoffered by lk then it also means lk is assigned to si and is denoted by M (lk) = {si}.Project pi is under-subscribed, full or over-subscribed if the total number of studentsassigned to pi is less than, equal to or greater than the project capacity ci [1]. Thisapplies to lecturer lk with capacity dk who has assigned toM(lk). [5]. Table 2.1 outlines

Matching Status Under-subscribed Full Over-subscribed

Project pi |M (pi)| < ci |M (pi)| = ci |M (pi)| > ci

Lecturer lk |M (lk)| < dk |M (lk)| = dk |M (lk)| > dk

Table 2.1: Matching status for each project pj in P and each lecturer lk in L.

4

Page 14: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

all possible matching status for each project pj in P and each lecturer lk in L. Thecriteria for different matching status are tabulated with the corresponding status in thecolumn title.

Furthermore, the stability of a matching may be defined as follows [4]:

Definition 1 A matching M is called stable if it does not exist two students s1 withproject p1 and s2 with projects p2 that s1 prefers p2 to p1 and s2 prefers p1 to p2.

Figure 2.1 is an example to illustrate the difference between stable and unstable match-ing. Suppose lecturer l1 offers project p1 and that of l2 offers project p2. Student s1 hasa preference list of α1 = {p2, p1} such that p2 is more preferable than p1. This priority,as defined, applies to preference list of students or lecturers.

s1: p2, p1

s2: p1, p2

l1: s2, s1

l2: s1, s2

(a) Unstable matching

s1: p2 , p1

s2: p1 , p2

l1: s2 , s1

l2: s1 , s2

(b) Stable matching

Figure 2.1: An example to illustrate (a) Unstable matching and (b) Stable matching,with their assigned projects or students boxed.

An unstable matching N happens when N = {(s1, p1) , (s2, p2)} (see Figure 2.1(a)).When such a pair exists, a stable matching M = {(s1, p2) , (s2, p1)} (see Figure 2.1(b))can always obtain by swapping their projects. This stable matching is better than thatof the unstable because it prevents “private” re-assignment, that is, s1 and s2 agree toswap their projects given an unstable matching N .

There are potentially many stable matchings existed in a spa instance. Howeverthe optimal one is preferred among all these matchings [4].

Definition 2 A stable matching is called optimal if every student is at least as welloff in this matching as in any other stable matchings.

This definition says that a stable matching is optimal if and only if it matches eachstudent with a project that has a highest priority on the its preference list than thatof the other projects among other stable matchings. This optimal matching is uniqueif it is existed [4].

5

Page 15: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

2.1.2 The spa with Group Projects

Given the definition in the original spa, an instance of spa with group projects may bedefined as follows. Let

O = {G1, G2, · · · , Gr} be the set of r group.

Each group Gi in O is a subset of students S such that each student sk in S is uniquelyexisted in O. Specifically, if s in G then s will not in O \ G. This means a studentcannot belong to 2 different group. A single student s can also in a group Gi = {s}. Thecardinality of each group |Gi|, or the group capacity, is the total number of members inthe group Gi. It follows that a set of r group O can be expressed as

O ={{

s1,1, · · · , s1,|G1|}︸ ︷︷ ︸

G1

,{s2,1, · · · , s2,|G2|

}︸ ︷︷ ︸G2

, · · · ,{sr,1, · · · , sr,|Gr|

}︸ ︷︷ ︸Gr

},

where each si,j is the j-th student in a group Gi. A representative of each group Gi iselected among themselves who delegates the group Gi. Without loss of generality, thefirst student si,1 in each group Gi is assumed to be the representative of the group Gi.A Representative-Members tuple (RM-tuple) ri for each group Gi is defined as

ri = (representative of Gi, number of members in group Gi) .

A set of RM-tuples R can then be constructed as follows.

R ={(s1,1, |G1|) , (s2,1, |G2|) , · · · , (sr,1, |Gr|)

}= {r1, r2, · · · , rr} .

This representation R over a set of r group O reduces the problem into the original spawith additional group capacity constraint |G|. Each group Gi in O has a total numberof members |Gi| who is delegated by a single student si,1. All students si,1, · · · , si,|G| inthe same group Gi has the same preference which is delegated by si,1. Each lecturer lkonly need to rank the RM-tuple of group.

Similar to the original spa, a matching M ′ is a subset of R× P such that:

1. If (ri, pj) belongs to M ′, then pj is in si,1 preference list;

2. For each group Gi, at most one project pj is matched to Gi in M ′;

6

Page 16: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

3. For each project pi in P , ∑∀(rk,pi)∈M ′

|Gk| ≤ ci,

that is, the total number of students in all group matched must not be greaterthan ci; and

4. For each lecturer li in L, for all pj in Pli∑∀(rk,pj)∈M ′

|Gk| ≤ di,

that is, the total number of students in all group matched must not be greaterthan di.

Then (ri, pj) means that all students in the group Gi are assigned to pj. If pj is offeredby lk then lk supervises all students in the group Gi. The matching status of M ′(pj)

andM ′(lk) are, however, required to define rigorously to avoid confusion. The matchingstatus of pj in M ′ is defined as:

Definition 3 If M ′ ∈ R× P ,

M ′ (pj) = {Gi ∈ S | (ri, pj) ∈M ′}

is called the matching status of pj in M ′ and is denoted by M ′(pj).

Likewise, the matching status of lk in M ′ is defined as:

Definition 4 If M ′ ∈ R× P ,

M ′ (lk) = {Gi ∈ S | (ri, pj) ∈M ′ and pj ∈ Plk}

is called the matching status of lk in M ′ and is denoted by M ′(lk).

It follows that the matching status of projects or lecturers is the same as in Table 2.1.Essentially, the status is summing all students from all group matched instead of allstudents matched.

Besides, the stability property will be followed provided that both projects havesufficient capacities to hold the group members (i.e. group capacity |G|) after swapping.The optimality is then defined as in the original spa.

7

Page 17: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

s1

s2

s3

s4

s5

s6

Students S

G1

G2

G3

Group G Set R

s1, 3

s4, 2

s6, 1

SPA-Group

α1

α2

α3

Lecturers’ Preferences

Stable MatchingM ′ ∈ R× P

SPA with additional group capacity constraints

Figure 2.2: Example to reduce the SPA with Group Projects into the SPA

Figure 2.2 illustrates an example of reduction from the original SPA to the newSPA with group projects. There are 6 students S = {s1 · · · s6} with 3 groups. GroupG1 has students s1, s2, s3, group G2 has students s4, s5 and group G3 has student s6only. The RM-tuple of G1 is therefore r1 = (s1, 3), and G2 is r2 = (s4, 2), and G3

is r3 = (s6, 1). The SPA-Group will then generate a stable matching M ′ from thepreferences and the RM-tuples.

2.2 Related Work

There are two linear-time algorithms, Spa-Student and Spa-Lecturer, suggestedto solve the original spa using appropriate data structures [1]. Conceivably, either stu-dents or lecturers are allowed to reject their temporary assignments in order to subse-quently allocate better assignments. Therefore the Spa-Student algorithm generatesa student-oriented matching but the Spa-Lecturer algorithm generates a lecturer-oriented matching. However, this paper defined lecturers’ preference lists differently.Each lecturer lk has a single preference list which contains all students who are enrolledin lk’s projects. All students in all projects are then rank accordingly. This allowslecturers to rank their students once only.

8

Page 18: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Another research studied a spa problem with grouping [3]. But the preferencelist of lecturers is absent. Instead, the relationship between students and projects isdetermined by a weighting factor. They proved that such problem is Np-Complete

unless each project has a capacity smaller than or equal to 2, that is, ci ≤ 2 for all piin P . An approximation algorithm is suggested to tackle this problem in general. Alinear programming technique is also suggested by a study [2]. Because this techniqueis not consider in this project, the result of the study may not be applicable.

9

Page 19: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Chapter 3

Objectives

This project has two main objectives. First, it aims to design an enhanced algorithmcalled the Spa-Group to solve the Student-Project Allocation problem (spa) withgroup projects. This algorithm generates an optimal matching based the constraintsstipulated in Section 2.1. Second, it aims to implement a web application called theProject Allocation System (PAS). This web-based system utilises the enhanced algo-rithm to generate the optimal matching.

3.1 The Spa-Group Algorithm

The Spa-Group algorithm should contain following properties:

1. Optimal matching. The matching generated should be optimal.

2. Lecturer-oriented matching. Only lecturers are allowed to reject their temporaryassignments.

3.2 The Project Allocation System

3.2.1 Scope

The PAS should contain following major functions:

1. Student registration. Each student can register as a user in the system.

2. Proposing projects. Each lecturer can propose various projects.

10

Page 20: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

3. Ranking projects/students. Users are allowed to rank a finite number of projectsor students.

4. Generate the optimal matching. After the system collected preference lists fromall users, the optimal matching is generated.

5. Checking Stability. A function to check if the generated matching is stable or not.

6. Administrator panel. For administrator to manage the system. One major func-tion is to approve generated matching.

7. Generating Reports. The system can generate various metrics based on the match-ing result. These metrics can be the total number of matchings, loading factor ofeach lecturer lk (i.e. ratio of supervised projects M(lk) to capacity dk).

3.2.2 Testing Data

The system will first take a simple 5×5 matching which comprises 5 students, lecturersand projects for initial testing. The optimal matching will be done manually to checkagainst the generated matching. The number 5 is chosen because the optimal matchingcan be readily done by hand and checking against it is effortless.

A random test case generator will then be programmed after the system passes theinitial testing. A set of 50×50, 100×100, 500×500 and 1000×1000 matchings will begenerated for testing purpose. However, the stability of the results can only be checkedusing the stability checking function because of the large size of data set.

3.3 Goals

The ultimate goal of this project is to improve the efficiency in constructing the optimalmatching. It is a tedious and painstaking task to construct this matching manually.The web application PAS is built to achieve this goal. By utilising the web nature ofthe system, the time and cost in collecting user’s preferences can be greatly reduced.The optimal matching between students and projects can then be easily generated. Inaddition, the Spa-Group algorithm allows different students work together as a groupwhile maintaining the optimality of the matching.

11

Page 21: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Chapter 4

Methodology

4.1 Software Development Process

An unified software development process is used in this project. The advantage of thisprocess is that error can be readily rectified even at the later phase of the project.The entire development process is divided into three distinct phases where each phasecontains iterative and incremental cycles. Changes are constantly made in each cycleand followed by a testing. This can accelerate the development process. The threephases are Inception, Elaboration and Construction phases. The details of each phaseare given in Table 7.1.

4.2 Algorithm Design

The Spa-Group algorithm may be designed based on the Spa-Lectuer algorithmwhich solves the spa without group projects [1]. The pseducode of Spa-Lectuer isattached to the Appendix A. It has been proved that the generated is optimal by arigorous proof on its correctness. The Spa-Group algorithm is expected to be basedon the Spa-Lecturer algorithm upon modification.

4.3 Technical Aspect of the PAS

Since the Project Allocation System (PAS) is a web application, both web server anddatabase management system are necessary. A high-level system architecture diagramis illustrated in Figure 4.1. The system consist of front-end and back-end (see the left

12

Page 22: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

hand side of Figure 4.1) and is categorised into 5 layers (see the right hand side ofFigure 4.1). All software used in this project are free and open source.

Proxy to Django using uWSGI module

Hardware

GNU/Linux

PostgreSQL

nginx Django

Project Allocation System (PAS)

L0: Hardware Layer

L1: Operating System

L2: Database System

L3: Web Server

L4: Application LayerFront-end

Back-end

Figure 4.1: A high-level system architecture diagram. Li represents the i-th layer.

4.3.1 Back-end Technologies

The details of each layer are discussed below. Each layer can be referred to the righthand side of Figure 4.1.

L0: Hardware Layer

This layer contains necessary hardware for the PAS to depoly.

L1: Operating System

The PAS will deploy under the GNU/Linux operating system which operatedabove the L0: Hardware Layer. This offers a robust and security platform forsoftware to run.

L2: Database System

PostgreSQL is chosen as the database system. It is an object-relational databasesystem (ORDS) that is renowned for its reliability and data integrity.

L3: Web Server

The PAS uses the Django web framework as its back-end system. The scriptinglanguage for the Django is Python. With comprehensive built-in functions inDjango, it provides a rapid development environment.

13

Page 23: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

To handle users’ requests, nginx is chosen for the web server. It is a lightweightand yet a highly scalable server compared with Apache. By adding the uWSGImodule, it serves as a proxy server to redirect requests to the Django web frame-work so as to provide dynamic web contents. Whenever there is a request sentfrom the user, nginx will redirect the request to Django through the uWSGI mod-ule.

Together with the PostgreSQL database system, the performance of the PAS willoutperform the traditional LAMP stack which comprises GNU/Linux, Apacheweb server, MySQL database system and PHP.

4.3.2 Front-end Technologies

The front-end comprises of the web application PAS which operated in the L4: Applica-tion Layer (see Figure 4.1). There are 3 core web technologies used in this layer. Thesetechnologies are HTML, CSS and JavaScript. Each following technology has followingfunction on the PAS:

Technology Full name Major functions on a web page

HTML Hypertext Markup Language Outline the structure of a web page, itserves as the building blocks

CSS Cascading Style Sheets Set the visual style to provide a betteruser interface

JavaScript N/A Provide interactive elements

Table 4.1: 3 core technologies used in the front-end in the PAS.

14

Page 24: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Chapter 5

Current Progress

At present, a Spa-lecturer prototype has been implemented to solve the Student-Project Allocation problem (spa) without group projects. The aim of the prototype isto is to provide a pragmatic solution for the spa without group projects. In addition,a preliminary draft on the Spa-Group algorithm has been done. It is based on theexisting Spa-Lecturer algorithm.

5.1 The Spa-lecturer Prototype

This prototype is a simple command-line application written in Python such that itcan be readily integrated into Django subsequently. It is built upon the pesudocode ofSpa-Lecturer (see Appendix A). The purpose of this prototype is to illustrate theunderlying principle of the matching procedure of spa without group projects. It ishoped that this prototype can convert to support Spa-Group algorithm.

A generator is also developed to generate random data set for testing. Currently,matching size up to ten thousand is tested and the result is stable.

5.2 The Spa-Group Algorithm Draft

The pseduocode of the current Spa-Group algorithm is listed in Algorithm 1. Thealgorithm takes an instance I of spa with group projects as an input. Students andlecturers are initialised as free which mean no project has been matched to them. Thematching M ′ ∈ R× P is also initialised as an empty set. The algorithm then continuesearch for a lecturer lk with an under-subscribed project pj in Plk (i.e. offered project pj

15

Page 25: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

is under-subscribed). If such a project pj exists for lecturer lk, a group Gi has followingconditions in order to match with pj:

1. on the lk’s preference list on project pj (i.e. βjk), the first RM-tuple ri = (si,1, |Gi|)

of the group Gi who is delegated by si,1, must be preferred pj to current temporaryassignment, if any; and

2. on the si,1 preference list αi,1, pj must be the first such under-subscribed project;and

3. the group capacity |Gi| must not be larger than the current current lk availability,that is

|Gi| < (dk − |M ′ (lk)|) ,

such that lk can supervise all students from group Gi.

Algorithm 1 The pseudocode of the current Spa-Group.1: procedure Spa-Group(I)2: initialise each student, project and lecturer to be free3: M ′ = ∅ . the matching result4: while there is a lecturer lk with a project pj ∈ Plk under-subscribed do5: ri = first such RM-tuple on lk’s preference list on project pj6: pj = first such project on si,1’s preference list7: if |Gi| > (dk − |M ′ (lk)|) then . |Gi| larger than lk capacity8: delete ri on lk’s preference list9: continue10: if (ri, pj) 6∈M ′ then11: if si,1 is assigned to a project p then12: delete (ri, p) ∈M ′

13: assign (ri, pj) ∈M ′ . lk offers pj to Gi

14: for all successor pl of pj on αi,1 do15: delete pl on αi,1 and βl

d . if pl is offered by ld16: else17: continue . next lecturer or project18: return M ′ ∈ R× P

If the condition 3 fails, then the algorithm will remove the RM-tuple (si,1, Gi) from lk’spreference list βj

k and continue search for next group (si+1,1, Gi+1) on the list. Thesecriteria guarantee the optimality of a matching. When such a group Gi is found, thealgorithm will break the current assignment of Gi, if any, such that pj offered by lk can

16

Page 26: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

be assigned to Gi. It follows that for each projects pl such that si,1 prefers pj to pl isremoved from si,1’s preference list αi,1. If pl is offered by ld, then pl is also removed fromld’s preference list βl

d. It is because both of them will not prefer a project (or a student)that has lower preference than their current assignment. The algorithm terminateswhen no lk, pj and Gi can be found.

Nevertheless, the current Spa-Group algorithm has not yet been proved or imple-mented and subsequent modification is expected. It serves as the purpose to explorethe possibilities in solving the problem based on the Spa-Lecturer algorithm [1]. TheSpa-Group algorithm is largely contingent upon this algorithm.

17

Page 27: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Chapter 6

Difficulties and Limitations

6.1 Technical Challenges

6.1.1 Algorithm Complexity

The Student-Project Allocation problem (spa) with group projects introduced in thisproject can be an Np-Complete problem. Since such problems cannot be solved inpolynomial-time, the performance of the Spa-Group algorithm will be greatly reducedwhen the input is vast, say millions of students or projects. Generally, techniques likeapproximation or randomisation are used to cope with Np-Complete problems. Inthis project, parameterisation technique may be used if it is an Np-Complete prob-lem. Parameter(s) is/are fixed to solve the problem in polynomial-time. For example,capacity of projects or lecturers is fixed to a upper or lower bound.

6.1.2 Browsers Compatibility

Since only web interface will be implemented, there may have discrepancy betweendifferent devices. This will lead to difficulties for users to use the system. It is hoped thatby using some well-written web front-end frameworks, the user interface can maintainits consistency across different devices.

18

Page 28: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

6.2 Limitations

6.2.1 Correctness of the Spa-Group algorithm

Since this project mainly focuses on the Project Allocation System (PAS) implemen-tation, rigorous mathematical proof of the correctness of the Spa-Group algorithm isnot expected to be included. This leads to a difficulty in analysing the result whether itis the optimal matching or not. When substantial number of students and projects arerequired to be matched, checking the result manually is impossible. The correctness ofthe result can only be measured using the Stability Checking function which requiredexhaustive testings.

6.2.2 Definition of spa with group projects

The definition of spa with group projects in Subsection 2.1.2 has an assumption thateach group Gi’s representative has delegated all Gi students’ preferences. All membersfrom the same group Gi have assumed to agree representative preference. In general,this assumption is acceptable because otherwise the student sd will not join the groupGi if sd has a different preference than that of si,1. However, a more general situationwhere each student sk in group Gi has a different preference than that of si,1 is notaddressed in this project.

19

Page 29: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Chapter 7

Schedule

The tentative schedule to design and implement the Project Allocation System (PAS)is given in Table 7.1. There are distinct milestones to be achieved on each phase. Thereare 3 major deliverables on each phase.

1. Spa-lecturer Prototype, completed, delivered in November 2016.

This Spa-lecturer prototype implemented the Spa-Lecturer algorithm. Thisprototype is programmed in Python and is aimed to solve the spa without groupprojects.

2. The PAS, to be delivered in April 2017.

All functions of the PAS, including matching generation and administrator panel,will be completed together with a meticulous final report containing all the details.

20

Page 30: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Date Tasks Status

4 Oct 2016 Deliverables of Phase 1 (Inception)• Detailed project plan• Project website

Completed

Oct 2016 Requirements gathering and analysis• Collect user requirements• Further study on spa based on the require-

ments• Implement a prototype to solve the spa

Completed

Nov 2016 Deliver the Spa-lecturer prototype and the pre-liminary draft on the Spa-Group algorithm

Completed

Dec 2016 Development on the PAS Demo System• Database and user interface design

Completed

22 Jan 2017 Deliverables of Phase 2 (Elaboration)• Detailed interim report

Completed

Feb 2017to

Mar 2017

System Design and Construction• Refine the PAS Demo System• Implement the administrator user interface

In-progress

Apr 2017 Deployment and Testing• Final testing and optimisation• Deploy the PAS

17 Apr 2017 Deliverables of Phase 3 (Construction)• Finalised PAS implementation• Final report

Table 7.1: Tentative schedule.

21

Page 31: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Chapter 8

Conclusion

This project has introduced the web-based Project Allocation System (PAS) that aimedto model the Student-Project Allocation problem (spa) with group projects in a real-life scenario. The web-based nature of the system allows great flexibility across devices.This spa with group projects allows different students work together as a group which iscommonly adopted by many universities. Also, the project has presented an algorithmcalled the Spa-Group that targeted to generate the optimal matching between studentsand projects based on the preferences and the capacities. Unlike previous algorithms,it supports grouping between different students.

This report described the implementation details of the PAS, in particular, thesystem architecture is presented. Although currently only the Spa-lecturer proto-type using the existing algorithm is implemented, it is hoped that this can be pos-sibly converted or merged into the final PAS. In addition, the preliminary draft onthe Spa-Group algorithm helped to identify the underlying principle of the existingSpa-Lecturer algorithm. Along with this, a PAS Demo System is expected to bedelivered next.

Despite the project only describes a matching problem between students and projects,there are versatile applications of this centralised matching algorithm. It is in fact con-stantly appears on different contexts. For example, in a Content Delivery Network1

(CDN), a group of users (group of students) from related regions may send requeststo the CDN. It will then list out a number of available servers (projects) that can beused to respond to the requests with a priority that possibly based on the geographicallocation. A centralised matching scheme is run to generate the optimal matching that

1a distributed network of servers that provides high performance service in delivering web content

22

Page 32: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

maps each user to the closest sever. There are potentially many uses of this algorithmthat are left to be discovered.

23

Page 33: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Bibliography

[1] D. J. Abraham, R. W. Irving, and D. F. Manlove. Two algorithms for the student-project allocation problem. Journal of Discrete Algorithms, 5(1):73–90, 2007. 1, 2,2.1.1, 2.1.1, 2.2, 4.2, 5.2, A

[2] A. A. Anwar and A. Bahaj. Student project allocation using integer programming.IEEE Transactions on Education, 46(3):359–367, 2003. 1, 2.2

[3] A. Arulselvan, Á. Cseh, and J. Matuschke. The student/project allocation problemwith group projects. arXiv preprint arXiv:1412.0325, 2014. 1, 2.2

[4] D. Gale and L. S. Shapley. College admissions and the stability of marriage. TheAmerican Mathematical Monthly, 69(1):9–15, 1962. 2.1.1, 2.1.1, 2.1.1

[5] D. F. Manlove. Algorithmics of matching under preferences, volume 2. WorldScientific, 2013. 1, 2.1.1

24

Page 34: COMP4801 Final Year Project AWeb-basedProjectAllocation System€¦ · COMP4801 Final Year Project AWeb-basedProjectAllocation System Interim Report LEI Wan-hong, 3035202750 Department

Appendix A

Pseudocode of the Spa-Lecturer

The pseudocode of Spa-Lecturer algorithm is listed in Algorithm 2. This algorithmis an adaption from a study [1]. Changes have been made to conform the definitionstipulated in Section 2.1. The main logic of this algorithm is similar to that of theSpa-Group algorithm except that no group capacity is checked.

Algorithm 2 The pseudocode of the Spa-Lecturer.1: procedure Spa-Lecturer(I)2: initialise each student, project and lecturer to be free3: M = ∅ . the matching result4: while there is a lecturer lk with a pj ∈ Plk under-subscribed do5: si = first student on lk’s preference list . si ∈ βj

k

6: pj = first project on si’s preference list . pj ∈ αi

7: if (si, pj) 6∈M then8: if si is assigned to a project p then9: delete (si, p) ∈M . delete current si’s matching10: assign (si, pj) ∈M . lk offers pj to si11: for all successor pl of pj on αi do12: delete pl on αi and βl

d . if pl is offered by ld13: else14: continue15: return M ∈ S × P

I