330 likes | 469 Views
Lafayette Crisis Center Scheduling System. Project 2. Introduction. LCC scheduling system. Patryk Ozga , Computer Science, pozga@purdue.edu Sahaj Saini , Computer Science, ssaini@purdue.edu Richard Reasons , Computer Science, rreasons@purdue.edu. Agenda. Partner Profile
E N D
Introduction LCC scheduling system • PatrykOzga, Computer Science, pozga@purdue.edu • SahajSaini, Computer Science, ssaini@purdue.edu • Richard Reasons, Computer Science, rreasons@purdue.edu
Agenda • Partner Profile • Project Specifications • Approach – Algorithmic Choices • Development and Testing Strategy • Future Plans
Partner Profile LCC scheduling system • Lafayette Crisis Center (LCC) – local crisis hotline • 70+ volunteers/month • 5x7 shifts per week • 2 organizers Goal: replace manual scheduling
Scheduling System • The problem is to create monthly schedules for volunteers at the Lafayette Crisis Centre • The schedule must respect the scheduling constraints followed by the Lafayette Crisis Centre • The schedule must be fair to the volunteers based on their preferences
Project History • Project began in August 2009 • Contact person at LCC isJane McCann, Executive Director • Designed to use Visual Basic and Python to generate a schedule based on volunteer preferences
Goals of the project We hope to use the scheduling software to: Create accurate and reliable results that will satisfy volunteers Eliminate continual reanalysis of scheduling data Keep scheduling familiar & simplified LCC scheduling system
Success Criteria Overall objective More efficient scheduling system that will save time and effort The schedule will accurately fit volunteers’ preferences Provide administrator with customizable final schedule LCC scheduling system
Project Specifications LCC scheduling system • Provide input method for preferences • Shift availability, requested hours, days off • Restrict availability criteria • Shift frequency, workers per shift • Provide externally modifiable calendar
Project Stage Analysis Project Background Current Status Conceptual Design Detail Design Delivery Service & Maintenance • Conceptual Design • Detail Design • Delivery • Service & Maintenance
Old Operational Overview LCC scheduling system
Previous Approach LCC scheduling system • Non-integrated programming environment • Python, Visual Basic • Scripting requirements • Non-Maintainable • It would be hard to trace problems in case this code breaks • Recovery would take a lot of time – might have to be done by different people who do not understand the code • Non-extendable coding approach • Algorithm itself non-extendable • Future change in project specifications or other variables might break the code • Current changes in project specifications are almost impossible to incorporate • Rules out the possibility of extension to a Web-based version in the future
New Approach LCC scheduling system • Integrated programming environment • C# • Object-Oriented • Robust • Portable • No Scripting requirements • Extendable coding approach • Implement new features • Duplicate it to different organizations • Extend to a web-based version
New Operational Overview LCC scheduling system iCal GUI / Algorithm
Constraints LCC scheduling system • The 5-day constraint • Volunteers should not be scheduled for more than 1 shift within any 5-day period. • The days-off constraint • Volunteers should not be scheduled for any shifts on their days off
Constraints LCC scheduling system • The 1-shift-a-month constraint • Each volunteer should be scheduled for at least 1-shift a month, unless overridden by all days-off • The must-work constraint • Volunteers must be assigned to their must-work shifts if any
Constraints LCC scheduling system • The day-shift constraint • No more than 2 volunteers should be assigned to day shifts. • The night-shift constraint • No more than 1 volunteer should be assigned to a night shift. • The training-period constraint • Volunteer under a training period i.e. who have worked fewer than 39 shifts, should be scheduled for at least 1-shift a week.
Old Algorithm Hill Climbing Algorithm Nondeterministic Optimizes arbitrary scale Not suited for extensive constraints LCC scheduling system
New Algorithm Restricted Priority Algorithm Find Most Restrictive Shift Find Most Restrictive Volunteer for Shift Assign Volunteer to Shift Update Program State Iterate LCC scheduling system
Methodology Restrictiveness Stopping Criterion Inflation LCC scheduling system
Shift Restrictiveness Determined by the number of volunteers and their preferences for the shift (# of volunteers) * (sum of preferences for shift) LCC scheduling system
Volunteer Restrictiveness Determined by: Scheduled for at least one shift Number of Shifts per month Number of shifts per week Training period Weighted inflated preferences LCC scheduling system
Stopping Criterion All shifts are filled No more volunteers to assign Empty shifts conflict with volunteers’ preferences LCC scheduling system
Inflation Volunteers usually do not choose highest/lowest values in the preference range Need to normalize the preferences to schedule accurately Optimize the volunteer preference chart to give everyone a fair shot on being accurately scheduled LCC scheduling system
Testing Strategy - Algorithm • Use multiple real data sets • Estimate weights of restrictiveness parameters • Generate calendars and analyze them for discrepancies • Compare results between trials to perfect parameters
Testing Strategy - Calendars • Generate calendars based off real volunteer data • Test calendars against project specifications • Meet with project partner to spot problems • Iterate
Next Semester • Implement re-designed algorithm • Test and optimize the algorithm • Test calendars against project specifications • Deliver a prototype
Questions? LCC scheduling system