© J. Christopher Beck Lecture 18: Service Scheduling & Timetabling
© J. Christopher Beck Outline Introduction to Service Scheduling Characteristics of Service Scheduling Differences with Manufacturing UofT APSC Timetabling Reservations without Slack Example IP formulation Algorithm 9.2.2
© J. Christopher Beck Readings P Ch 3 P Ch 9.6, 9.2 Questions I Like: 9.1, 9.2, 9.4, 9.6
© J. Christopher Beck Examples of Service Scheduling We will look at: Timetabling Classrooms Sports Scheduling ACC Basketball Workforce scheduling Workers in a call centre
© J. Christopher Beck Example Classroom Scheduling Assign classes to rooms such that Rooms are big enough No two classes as in the same room at the same time No prof has to teach two classes at one time No students have to take two classes at one time
© J. Christopher Beck Service Scheduling Characteristics: Resources Classroom, hotel, rental car, stadium, operating room, plane, ship, airport gate, dock, railroad track, person (nurse/pilot) Synchronization of resources may be important Need a plane and a pilot Classroom, AV equipment, prof, students
© J. Christopher Beck Service Scheduling Characteristics: Resources Each resource may have its own characteristics Classroom: capacity, equipment, cost, accessibility Truck: capacity, refrigeration, speed Person: specialist (surgeon, nurse) with skills (languages)
© J. Christopher Beck Service Scheduling Characteristics Activities may have Time windows Capacity requirements/constraints Resources may have Setup/transition time – runways! Operator/tooling requirements Workforce scheduling constraints Shift patterns, break requirements Union and safety rules
© J. Christopher Beck Differences from Manufacturing Impossible to “store” goods If you don’t fill a hotel room you can’t “get back” the lost time Resource availability often varies May even be part of the objective function Saying “no” to a customer is common “No available seats on that flight” (even if there are some!) Try to book a restaurant for 8 PM
© J. Christopher Beck Classroom Timetabling APSC, U of T ’06-’ students, 1200 first year 7 departments, 9 degree programs 79 programs of study (programs/options and year) 219 faculty members, 12 buildings, 80 lab rooms 75% of the timetables are delivered to students conflict-free
© J. Christopher Beck APSC Timetabling Process Data acquisition departments send data on courses, staffing, resources, enrollment limits, … time frame: months Decide roll-over strategy what can be kept from previous year? curriculum changes, staff changes, … were there problems with last year’s schedule?
© J. Christopher Beck APSC Timetabling Process Schedule 1 st year Separately for each department many shared courses but each course is “owned” by one department Automated “first” schedule Very iterative and mostly manual changes May be changed later (e.g., to fix a big problem in later year schedule) Usually leaves some classes unscheduled
© J. Christopher Beck APSC Timetabling Process Schedule 2 nd year automated schedule (with 1 st year fixed) manual scheduling, rescheduling may make changed to 1 st year Schedule 3 rd & 4 th year is similar Assign rooms Upload to ROSI
© J. Christopher Beck APSC Timetabling Student Goals Conflict-free for 1 to 3 and for core 4 th next best: minimize conflict, limit to tutorials and labs 4 th year: minimize conflicts among popular courses Deliver required courses Meet student criteria
© J. Christopher Beck APSC Timetabling Student Goals 9-5 with lunch between 12 and 2 next best: 9-6, then 9-7, lunch between 11 and 2 Minimize number of gaps in a day Existing gaps should be short Provide some study time All student groups should have equal access to resources
© J. Christopher Beck APSC Timetabling Faculty Goals Meet staff criteria Professors should have one day per week with no teaching Conflict-free
© J. Christopher Beck APSC Timetabling Process Data collection starts in January Schedule available in August But not completely finished until the course drop dates (i.e., mid-Sept) About 25 people involved About 3 full-time
© J. Christopher Beck Classroom Timetabling UC Berkeley 30,000 students, 80 depts, 4000 classes, 250 rooms 3 schedulers and 1 supervisor Read about it in Ch 9.6
© J. Christopher Beck Reservation Systems Hotel rooms, car rentals, airline tickets (and classroom scheduling) You want to have the use of a resource for a given period of time With slack: p j < d j – r j Without slack p j = d j – r j May not be able to schedule all requests
© J. Christopher Beck Objectives Maximize $$ Maximize resource usage Minimize number of rejected requests Minimize $$ of rejected requests
© J. Christopher Beck Reservations without Slack n activities, m resources All activities and resources are independent p j = d j – r j Activities have weight w j or w ij (see next slide) May have resource subsets You don’t want to rent any car, you want to rent an SUV Some substitutability of resources Weight is often equivalent to profit
© J. Christopher Beck Weights Can Get Complicated (Ex ) Car rental agency with 4 car types Customer j wants either a subcompact or midsize Customer k wants a subcompact but there are none left w ij = (q j – c i ) * p j q j is the price charged per day to customer j c i is the cost (to the rental agency) per day of a car in class i Yield management
© J. Christopher Beck IP Formulation H slots x ij : binary variable that is 1 if activity j is assigned to resource i J t : set of activities that need a resource in slot t
© J. Christopher Beck IP Formulation maximize Every activity is assigned to at most one resource Does not represented resource subsets! Each resource has only one activity per time slot
© J. Christopher Beck IP Formulation General problem is hard Special cases are easy All activities have duration of 1 – independent problem for each time slot See p. 209 All weights are 1, all resources in a single set, durations are arbitrary Maximize the number of scheduled activities
© J. Christopher Beck Alg 9.2.2: Maximize # of Scheduled Activities All weights are 1, all resources in a single set, durations are arbitrary Order activities in ascending order of release date Let J be the set of already scheduled activities Step 1: J = {}, j = 1
© J. Christopher Beck Alg Step 2: If a resource is available at r j, assign it to activity j, add activity j to J, and goto 4. Step 3: Let j* in J with max. completion time. If C j > C j*, then don’t schedule j. Else replace j* with j in J Step 4: If j = n, STOP. Else j = j +1 and goto Step 2.
© J. Christopher Beck Exercise 9.1: 3 resources, 0 slack activities rjrj djdj Use Alg to find max # activities Find schedule that maximizes sum of durations of activities scheduled What is the minimum number of resources needed to do all activities?