lafayette crisis center scheduling system
DESCRIPTION
Lafayette Crisis Center Scheduling System. Project 2. Introduction. LCC scheduling system. Patryk Ozga , Computer Science, [email protected] Sahaj Saini , Computer Science, [email protected] Richard Reasons , Computer Science, [email protected]. Agenda. Partner Profile - PowerPoint PPT PresentationTRANSCRIPT
Lafayette Crisis Center Scheduling System
Project 2
1
Introduction Patryk Ozga, Computer Science, [email protected] Sahaj Saini, Computer Science, [email protected] Richard Reasons, Computer Science, [email protected]
LCC scheduling system
2
Agenda Partner Profile Project Specifications Approach – Algorithmic Choices Development and Testing Strategy Future Plans
3
Partner Profile Lafayette Crisis Center (LCC) – local crisis hotline 70+ volunteers/month 5x7 shifts per week 2 organizers
Goal: replace manual scheduling
LCC scheduling system
4
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
5
Project History Project began in August 2009
Contact person at LCC is Jane McCann, Executive Director
Designed to use Visual Basic and Python to generate a schedule based on volunteer preferences
6
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
7
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
8
Project Specifications Provide input method for preferences
Shift availability, requested hours, days off
Restrict availability criteria Shift frequency, workers per shift
Provide externally modifiable calendar
9
LCC scheduling system
Project Stage Analysis
Project Background
Conceptual Design Detail Design Delivery Service & Maintenance
Current Status
Conceptual Design Detail Design Delivery Service & Maintenance
10
Old Operational OverviewLCC scheduling
system
11
12
Previous Approach 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
LCC scheduling system
13
New Approach 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
LCC scheduling system
New Operational OverviewLCC scheduling
system
14
GUI / Algorithm
iCal
15
CRISIS CENTER VOLUNTEER AVAILABILITY FORM My availability for Crisis Center shifts as shown on this form begins on the 1st of (month) October, 2010 and will be the same unless I submit a new one.
Volunteer’s Name Bob B. Date 9/ 17/ 11 Vols Phone #(s) (H) (W) (C)
IMPORTANT POLICY INFORMATION! 1. Volunteers who have not yet completed 39 shifts are committed to working one scheduled shift weekly (or one
overnight shift every other week) and must have an active availability form on file with the Volunteer Coordinator. 2. To remain active, volunteers who have completed at least 39 shifts, are required to work 6 shifts within 6 months (at
least one per month would be best). If you choose to sign on, please indicate this on your availability form and sign on by the first of each month.
3. An availability form remains in effect until a new one is submitted. All vols must turn in availability forms unless arranged previously with staff.
4. Fill out your availability carefully. It is possible that you may be scheduled in a slot that contains a "1". If you cannot work the shift, put a "0" in the slot. The scheduler tries to honor all "3" shifts but it is not always possible.
5. Write in any special requests for shifts; i.e., dates you will not be available due to holidays and/or vacations. # of shifts wanting to work in the week (Circle one): 1 2 3 4+ # of shifts wanting to work in a month (Circle one): 1 2 3 4+ Special Requests: I can't work October 17th-19th Instructions: Make sure you put one of the following code numbers into each and every slot below. Leave no slots empty or they will be considered as a "2".
0 = I can NOT work this shift; don't schedule me for it. 1 = I can work this shift but would prefer not to. 2 = I can work this shift. 3 = I would prefer to work this shift.
11:45pm - 8 am 8 am - noon noon - 4 pm 4 pm - 8 pm 8 pm – mid
Monday
0 0 0 0 0
Tuesday
0 0 0 0 3
Wednesday
0 0 0 0 2
Thursday
0 0 0 0 3
Friday
0 0 0 0 1
Saturday
0 0 0 0 0
Sunday
0 0 0 0 0
Revised 1/94 as per Town Hall policy revisions
16
17
18
Constraints 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
LCC scheduling system
19
Constraints 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
LCC scheduling system
20
Constraints 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.
LCC scheduling system
Old Algorithm
Hill Climbing Algorithm Nondeterministic Optimizes arbitrary scale Not suited for extensive constraints
LCC scheduling system
21
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
22
Methodology
Restrictiveness Stopping Criterion Inflation
LCC scheduling system
23
Shift Restrictiveness
Determined by the number of volunteers and their preferences for the shift
(# of volunteers) * (sum of preferences for shift)
LCC scheduling system
24
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
25
Stopping Criterion
All shifts are filled No more volunteers to assign Empty shifts conflict with volunteers’ preferences
LCC scheduling system
26
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
27
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
28
Testing Strategy - Calendars Generate calendars based off real volunteer data
Test calendars against project specifications
Meet with project partner to spot problems
Iterate
29
30
Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8 Week 9 Week 10 Week 11 Week 12 Week 13 Week 14 Week 15Study project historyMeet with project partnerDetermine current shortcomingsEstablish semester goalsReplace file format with JSONImplement JSON parserAssess algorithm viabilitiesDebug scheduled days off Debug shift frequency standardsAssess project delivery viabilityGUI and Algorithm refinementAssess project partner opinionPlan future web-based scheduler
31
Week 10 Week 11 Week 12 Week 13 Week 14 Week 15Discuss re-designing the algorithmCode the data structuresLaid out database schemaPort GUI Design Restricted Priority AlgorithmDesign Shift RestrictivenessDesign Volunteer RestrictivenessPrepare for Design Review
Next Semester
Implement re-designed algorithm Test and optimize the algorithm Test calendars against project specifications Deliver a prototype
32
Questions?
LCC scheduling system
33