Software Engineer
with Jiaao Hou
The Yale Student Technology Collaborative (STC) hires over a hundred students each semester to staff the library's technology help walk-in office hours. It is important for the office to be supported during the day since students and faculty depend on its service. Therefore, when the STC managers assign shifts to student employees, they must take into account not only the time preferences of the employee, but also the constraint of ensuring that the office is staffed. In this project, we automated the process of deciding how to assign shifts to students based off of their time preferences.
Our algorithm employed a mathematical formulation of value, together with a rule-based system, to decide how to assign shifts.
We needed a way to decide when to assign a shift to a student, based on our assessment of the student's inflexibility (likelihood of being able to take another, less popular, shift later on in the algorithm). We created a mathematical formula to assess this "inflexibility score", and it is that formula that governs which student we preference in assigning shifts at any given time.
On top of this, we also used a rule-based system to decide which shift (out of many possible preferences) to assign to a given student. We made rules to determine which shift intervals, if assigned, were more likely to lead to a successful solution.
Check out the code on GitHub