Staff Scheduling

Post on 07-Dec-2014

5.304 views 0 download

description

STAFF SCHEDULING

Transcript of Staff Scheduling

STAFF SCHEDULING

Burcu Felekoğlu 2000503024Sema Eroğlu 1999503081Yuri Volkov 2000503076

Overview

What is Staff Scheduling? Types of Staff Scheduling Problems Application Areas Solution Techniques Modeling Approach A Real Time Problem in USPS Expression in Lingo Discussion of Solution

What is Staff Scheduling? Staff scheduling problems are

concerned with scheduling a workforce so as to meet demand which varies with the time of day and with the day of week.

The major challenge is providing a reasonable labor cost and customer satisfaction while meeting this varying demand.

Types of Staff Scheduling Problems

There are three kinds of staffing problems

Shift scheduling Days-on scheduling problem Tour scheduling problem

Shift Scheduling

It includes finding the optimal crew size and assigning each member of the crew to various shifts during the day.

Days-on scheduling

This kind of scheduling requires to define the working days and not working days of employees in their work schedules in order to satisfy their days-off requirement.

Tour scheduling It contains both shift scheduling and

days-on scheduling and it provides to plan working days of each employee in a planned period which is covered by the schedule.

The objective of the tour scheduling problem is to find the least costly way to staff the system at the targeted levels by determining the ideal number of employees to be assigned to each feasible work schedule.

Break window

A break must be given in all shifts which are longer than a specific number of periods.

These breaks generally can start after a specific time and must finish before another specific time; in literature this interval is called as break window.

Application Areas

Some of application areas of staff scheduling are;

Hospitals (especially in nurse scheduling) Mail processing organizations Hub of trucking systems Airlines Call centers Catering and house keeping workforce in the

hospitality industry

Solution Techniques

Integer linear programming; to achieve an optimal schedule,

Heuristics; to reach good, if not optimal, solutions to very complex situations.

Combinations of linear programming and heuristics.

Modeling Approaches

Constraints Hard Constaints Soft Constaints Sequence Constaints Incompatibility Constaints

Objectives Cost, Fairness, Soft constraint violations

A Real Problem in USPS

An employee works 8 ½ consecutive hours which includes a ½ h allowance for a lunch break.

The organization operates 24 h a day, 7 days a week.

The workday has 48 periods, each 30 min. long.

The model includes 9 different full-time shifts whose start times are:

Shift Type Start Times Shift Length

Full time

7:00, 8:00, 9:00 (a.m.)

8 ½ hour (17 periods)

3:00, 4:00, 5:00 (p.m.)

8:30, 9:30,10:30 (p.m.)

For every worker a break window of 4 periods is assigned between 9th and 12th period.

Each worker works 5 days a week. The goal is to minimize the total

weekly cost of the workforce

Expression in Lingo SETS: days/sat, sun, mon, tue, wed, thu, fri/; shifts/1..9/ : start, total; periods/1..48/; shift_x_day(shifts, days): number; period_x_day(periods, days): required,

breaks; covers(shifts, periods): cover; n_m_set/1..9/:n, m; ENDSETS

DATA: required = 4 4 7 7 7 7 6 7 4 9 9 10 10 9 6 4 8 8 9 9 8 ………………………………………; start = 1 3 5 17 19 21 28 30 32; n = 12 14 16 28 30 32 39 41 43; m = 9 11 13 25 27 29 36 38 40; ENDDATA

min = @sum(shifts(f):total(f)); (1)

@for(days(d): @for(periods(t): @sum(shifts(f):cover(f, t)*number(f, d)) - breaks(t, d) >= required(t, d))); (2)

@for(shifts(f): total(f) >= 0.20*@sum(days(d):number(f, d))); (3)

@for(shifts(f): @for(days(d): total(f) >= number(f, d))); (4)

@for(covers(f, t)|t #le# (start(f) + 16) #and# t #ge# start(f): cover(f, t) = 1);

@for(covers(f, t)|t #gt# (start(f) + 16) #or# t #lt# start(f) : cover(f, t) = 0);

@for(cover(f, t)| t #ge# (start(f) + 8) #and# t #le# (start(f) + 11) : break_window(f, t) = 1);

@for(cover(f, t)| t #lt# (start(f) + 8) #or# t #gt# (start(f) + 11) : break_window(f, t) = 0);

@for(period_x_day(t, d) | @sum(shifts(f): break_window(f, t) #le# 0: breaks(t, d) = 0);

@for(shifts(f):@gin(total(f))); (8)

@for(shift_x_day(f, d):@gin(number(f, d))); (8)

@for(days(d):@sum(shifts(f):number(f, d)) = @sum(periods(t)| t #ge# 9 #and# t #le# 40: breaks(t, d))); (7)

@for(days(d):@for(n_m_set(i):@sum(periods(t)|t #ge# 9 #and# t #le# n(i):breaks(t, d)) >= @sum(shifts(f)|(start(f) + 8) #ge# 9 #and# (start(f) + 11) #le# n(i): number(f, d)))); (5)

@for(days(d):@for(n_m_set(i):@sum(periods(t)|t #ge# m(i) #and# t #le# 40:breaks(t, d)) >= @sum(shifts(f)|(start(f) + 8) #ge# m(i) #and# (start(f) + 11) #le# 40: number(f, d)))); (6)

Discussion of Solution.

Shift Type (f)

Total Enrolled (wf)

Number of employees working on each weekday(d) (xfd )

Sat Sun Mon Tue Wed Thu Fri

1 15 9* 4 13 9 15 14 11

2 4 4 3 0 4 0 3 3

3 7 2 1 7 7 7 5 6

4 21 21 3 13 13 16 18 21

5 9** 1 6 9 9 9 9 2

6 10 2 1 10 10 10 8 9

7 10 2 4 9 7 9 8 8

8 11 7 1 8 10 10 11 5

9 39 26 7 30 30 33 33 34

Periods (t)Number of breaks initiated on period (t) on each weekday(d) (fd )

Sat Sun Mon Tue Wed Thu Fri

1

8

9 10 3 14 14 15 13

10 9 14 13 15 15

11 6 1 8 9 9 8

12 6 1 7 8 9 6 8

13 6 1 8 7 8

Thank YouWe wish you a happy

new year!