lecture9.ppt

Contents College 9
• Chapter 9
• additional (sheets):
– workforce planning
– resource loading
1
Hierarchical capacity planning
Aggregate/
strategic
planning
Strategic
Tactical
Operational
Rough-cut
process
planning
Resource
loading
Engineering &
process
planning
Scheduling
2
Workforce planning
• Strategic level: workforce planning
– hiring/firing staff
– training staff
• Tactical level: resource loading
– planning overtime work
– hiring temporary staff (e.g. Randstad)
– subcontracting
Long term
decisions
Intermediate
term
decisions
• Operational level: workforce scheduling
– staffing
– shift scheduling
– days-off scheduling
Short term
decisions
3
Capacity planning
solution techniques
• (Strategic) workforce planning:
– linear programming
• (Tactical) resource loading:
– integer linear programming
– stochastic techniques
• (Operational) workforce scheduling:
– integer linear programming
– cyclic staffing algorithms
4
Workforce planning LP model
(1 product, various machines)
• Demand forecast: dt  demand  dt (t)
 sales (St) restriction: d  S  dt (t)
t
t
• Machine capacity restriction (machine j):
aj = production time on machine j
cjt = capacity machine j in period t
Xt = amount produced in period t
 a j X t  c jt (j, t)
5
Workforce planning LP model (cont.)
• Inventory balance restrictions:
It = inventory in period t  I0  0
I t  I t-1  X t  S t (t  1)
• Workforce balance restrictions (operators):
Wt = workforce in period t (initial workforce=w)
Ht = hired workforce in period t
Ft = fired workforce in period t
 W0  w
Wt  Wt-1  Ht  Ft (t  1)
6
Workforce planning LP model (cont.)
• Operator capacity restriction (machine j):
b = man-hours required to produce one item
Wt = Workforce in period t
Ot = Overtime in period t
Xt = amount produced in period t
 bX t  Wt  Ot (j, t)
• objective: maximize net profit, including labor,
overtime, inventory, hiring/firing costs
7
Workforce planning LP model overview
max
T
 s  S
t 1
t
 i  I t  w  Wt  o  O t  h  Ht  f  Ft 
subject to :
dt  S t  dt (t)
j  machine, t  period
X t  production in t
a j X t  c jt (j, t)
S t  amount sold in t
I t  I t 1  X t  S t (t  1); I0  0
Wt  workforce in t
I t  inventory at end of t
Wt  Wt 1  Ht  Ft (t  1); W0  w O
bX t  Wt  O t (t)
X t , S t , I t , O t , Wt , Ht , Ft  0 (t)
t
 overtime in t
Ht  hired workforce in t
Ft  fired workforce in t
8
Resource loading example:
furniture manufacturer
Furniture manufacturer:
• Produces large quantities of furniture to order
• Mostly standard products (manufacture-to-order)
• 6 production activities: 1. Sawmilling (S)
2.
3.
4.
5.
6.
Assembly (A)
Cleaning (C)
Painting (P)
Decoration (D)
Quality control (Q)
9
Resource loading example (cont.)
Order acceptance:
• Sales department negotiates prices & due dates
(i.e. delivery dates) with customers
• Given are for each department:
– available machine capacity (in hours per week)
– operator capacity per week (regular & overtime)
10
Resource loading example (cont.)
example data
customer
order
1
2
3
4
5
6
7
processing times (hours)
1
S (37)
S (18)
S (20)
A (10)
S (16)
S (36)
S (15)
A
A
A
C
A
A
A
2
(19)
(12)
(21)
(25)
(33)
(16)
(10)
3
C (14)
C (15)
C (17)
D (16)
C (14)
C (20)
C (15)
4
D (32)
P (10)
Q (8)
Q (7)
P (16)
P (15)
P (15)
5
6
Q (5)
D (14) Q (10)
D (15) Q (9)
D (15) Q (10)
D (20) Q (10)
due
date
(week)
7
8
5
5
9
9
6
Example customer order:
S
A
C
P
D
Q
11
Resource loading questions
During order acceptance, for any given set of orders, these
questions need to be answered:
• When should orders be released for production?
• Can the delivery dates be met?
• How much operator & machine capacity is required per
department per week?
• Is irregular capacity (e.g. overtime work, subcontracting)
required?
This problem is the so-called resource loading problem
12
Resource loading example (cont.)
loading method of planner
• customer order consists of x jobs, each
corresponding to a production activity
due
• lead time = 1 week per job
number
date
of jobs
• operator and machine capacity
(week)
check per department
7
5
8
6
• repair plan, if infeasible
5
4
• let each department solve their
5
4
9
6
scheduling problem
9
6
6
6
start
time
(week)
3
3
2
2
4
4
1
13
30
order1
25
order2
5
hours
Machine capacity
check for
Ddepartment:
35
order3
20
order4
1
15
order5
order6
7
10
4
5
2
6
7
8
order7
0
0
1
2
3
4
5
6
9
weeks
20
18
16
14
hours
Machine capacity
check for
Qdepartment:
5
12
order2
order3
3
10
order1
order4
8
order5
6
7
4
2
4
order6
6
1
2
0
0
1
2
3
4
5
weeks
6
7
8
9
order7
30
order1
25
order2
5
hours
Machine capacity
check for
Ddepartment:
35
order3
20
order4
1
15
order5
order6
7
10
4
5
2
6
7
8
order7
0
0
1
2
3
4
5
6
9
weeks
35
Optimal loading
of D-department:
30
order1
25
hours
order2
4
20
1
order3
order4
1
15
order5
order6
10
7
5
2
6
5
6
7
8
order7
7
0
0
1
2
3
4
5
weeks
9
20
18
16
14
hours
Machine capacity
check for
Qdepartment:
5
12
order2
order3
3
10
order1
order4
8
order5
6
7
4
2
4
order6
6
order7
1
2
0
0
1
2
3
4
5
6
7
8
9
weeks
20
Optimal loading
of Q-department:
18
16
order1
hours
14
order2
1
12
order3
10
order4
8
order5
6
4
3
4
4
5
7
2
6
7
5
6
order7
2
0
0
1
2
3
weeks
8
order6
9
Repairing an infeasible plan
Tardy orders may induce penalty costs
Options to come to a feasible plan:
• Shift jobs in time; split jobs over 2 or more weeks
• Increase order lead time
• Expand operator capacity (overtime, hiring staff)
• Subcontracting jobs or entire orders
17
Resource loading problems
formal description
• Production system: job shop with operators and machine
groups
• Demand: a predefined set of orders that consist of jobs
• Time horizon/time unit: T periods (=weeks) / hours
• Order constraints: release and due dates (weeks)
• Job constraints:
– Pre-emption is allowed
– Precedence relations (generic)
– Machine and operator requirement (hours)
– Optional: one-job-per-order-per-week production policy
– Minimal duration
18
Resource loading problems (cont.)
formal description
• Resource capacity constraints:
– Operator capacity: regular, overtime,
subcontracting
– Machine group capacity: regular
hiring,
• Objective:
assign jobs to machines and operators, and:
minimize the cost of the use of non-regular capacity
19
Resource loading
Model formulation
Order plan:
indicates per job per order per week whether this
job may be processed in that week
 Input for the model as binary columns
Order schedule:
indicates per job per order per week the fraction
that is assigned to that week
 Output of the model; must match with order plan
20
Resource loading
Model formulation (cont.)
Order plan represented
by a binary column:
2
1
3
21
Resource loading
Model objective
Select one order plan per order, and determine the
corresponding order schedule. Minimize the use of
non-regular capacity.
PROBLEM: there are exponentially many feasible
order plans
SOLUTION: column generation approach
22
Column generation algorithm
Solve
Restricted Linear
Program (RLP)
Solve pricing
algorithm
Columns exist with
negative reduced costs?
no
Add
columns
to RLP
yes
LP relaxation
solved
23
Model formulation (cont.)
MILP model for resource loading
minimize
 (o O  h H  s  S
 X  1 (j )
t
t
t
t
t
t
subject to:
mt
objective function
)
m
select order plan
jk
k
Fbjt   abjtk X jk
F
bjt
(b, j , t )
k
 1 (b, j )
match order schedule
with order plan
all work must be done
t
 pbj Fbjt  S mt  mcmt (m, t )
{b , j |
b on m}
 pbj Fbjt  ct Ot  H t   S mt (t )
b, j
Fbjt , Ot , H t , S mt , X jk  0
m
machine capacity
restriction
operator capacity
restriction
24
variable restrictions
Workforce scheduling topics
(chapter 9)
• Days-off scheduling
– assigning employees to work-patterns
– various assignment patterns over the cycle
• Shift scheduling
– assigning employees to shift-patterns
– each shift has its own cost
– objective: minimize cost
• Cyclic staffing problem & extensions
– assigning people to m-period cyclic schedule, so that
requirement in each period is met
• Crew scheduling
– transportation crew scheduling (airline industry)
25
Days-off scheduling
Find the minimum number of employees to
cover a 7-day-a-week operation, so that the
following constraints are satisfied:
1. The demand per day (nj) is met (n1=Sunday)
2. Each employee is given each k1 out of k2
weekends off
3. Each employee works exactly 5 out of 7 days
4. Each employee works no more than 6
consecutive days
26
Days-off scheduling (cont.)
W = required workforce
3 lower bounds on W:
1. weekend constraint:
k 2  k1
W  max(n1 , n7 )
k2
 k 2 max(n1 , n7 ) 
W

k 2  k1


2. total demand constraint:
1 7 
5W   n j  W    n j 
j1
 5 j1 
7
3. maximum daily demand constraint:
W  max n j


 k 2  max(n1 , n7 )   1 7 

 W  max 
nj 
 ,   n j  , max
j
k

k
5


j

1
2
1






j
27
Days-off scheduling (cont.)
Define:
n = max (n1,n7) = maximum weekend demand
uj = surplus of employees = W - nj (if j=2,…,6)
n - nj (if j=1,7)
Assumption:
the first day to be scheduled is a Saturday
28
Days-off scheduling algorithm
• STEP 1: schedule the weekends off
maximum demand in weekend is n  W-n empl. Free
 Cyclically assign the weekends of to W-n employees
• STEP 2: Determine the additional off-day pairs
Construct a list of n “off day”-pairs (k,l):
– choose day k, such that uk =max (u1,…,u7)
– choose day l (l  k) such that ul  0, if ul = 0 for all l, then
set l = k.
– decrease uk and ul with 1
Pairs (k,k) are non-distinctive pairs
29
Days-off scheduling algorithm (cont.)
• STEP 3: Categorize employees in week i
type
type
type
type
T1
T2
T3
T4
weekend
weekend
weekend
weekend
i
i
i
i
off
off
on
on
weekend
weekend
weekend
weekend
i+1
i+1
i+1
i+1
off
on
off
on
Off-days
required
during
week i
0
1
1
2
note: |T3|+|T4| = n, and |T2|+|T4| = n |T2|=|T3|
 pair each employee of T2 with an employee of T3
30
Days-off scheduling algorithm (cont.)
• STEP 4: Assign the n off-day pairs in week i
First assign off-day pairs to the employees of T4
Then assign off-day pairs to the T2-T3 pairs of
employees. Assign the earliest day to the T3-empl.
Set i = i+1 and GO TO STEP 3.
31
Days-off scheduling example
Demand requirement:
day
SMTWTFS
requirement 1 0 3 3 3 3 2
n = max(d1,d7)=2
k 1  1, k 2  3 


 3  n   1 7 

W  max 
,   n j  , max n j   max3,3,3  3

j
3

1
5




j

1




surplus: day S M T W T F S
u(j) 1 3 0 0 0 0 0
day-pairs: Sun-Mon & Mon-Mon
32
Days-off scheduling example (cont.)
employee S S M T W T F S S M T W T F S S M T W T F S
1
XX
XX
2
XX
3
XX
employee S S M T W T F S S M T W T F S S M T W T F S
1
XX
XX
2
XX
3
X X
XX
employee S S M T W T F S S M T W T F S S M T W T F S
1
XX X
XX
2
X
XX
3
X X
XX
33
Days-off scheduling example (cont.)
employee S S M T W T F S S M T W T F S S M T W T F S
1
XX X
X X
XX
2
X
XX
3
X X
XX
employee S S M T W T F S S M T W T F S S M T W T F S
1
XX X
X X
XX
2
X
XX X
3
X X
X
XX
employee S S M T W T F S S M T W T F S S M T W T F S
1
XX X
X X
XX
2
X
XX X
3
X X
X
XX
34
Days-off scheduling example (cont.)
employee S S M T W T F S S M T W T F S S M T W T F S
1
XX X
X X
XX
2
X
XX X
X X
3
X X
X
XX
employee S S M T W T F S S M T W T F S S M T W T F S
1
XX X
X X
X
XX
2
X
XX X
X X
3
X X
X
XX X
Minimum 4-day, maximum 6-day work stretch:
employee S S M T W T F S S M T W T F S S M T W T F S
1
XX X
X X
X
XX
2
X
XX X
X X
35
3
X X
X
XX X
Days-off scheduling algorithm properties
• If all off-pairs are distinct  maximum workstretch is 5 days
• Schedule always satisfies the constraints
• There exists an optimal cyclic schedule, that
may be found by the algorithm
36
Shift scheduling
• Generalization of days-off scheduling problem
• Cycle of periods is predetermined (e.g. 1 day
cycle, with periods of hours)
• Several shift patterns, with associated costs
cj. Shift pattern j is binary vector a(i,j).
• Personnel requirement bi per period
solution method: linear programming
37
Shift scheduling ILP model
min c1 x1  c 2 x 2  ...  c n x n
subject to :
a11 x1  a12 x 2  ...  a1n x n  b1
N patterns
m periods
bi = requirement
a21 x1  a22 x 2  ...  a2n x n  b 2

am1 x1  am2 x 2  ...  amn x n  bm
x j  0 ( j  1,  , n), integer
T
min c x

Ax  b
x0
38
Shift scheduling ILP model properties
• Strongly NP-hard problem
• When shift-columns contain a contiguous set
of 1’s, the LP-relaxation solution is integer
(note: LP optimization in polynomial time)
• Other special cases of shift scheduling also
solvable: cyclic staffing problem
39
Cyclic staffing problem
• Special case of shift planning problem
• m-period cyclic schedule: period m is followed by
period 1
• Personnel requirement is bi per period
• Each person works k consecutive periods, and is
free for the remaining m-k periods
1 0 0 1
• Example: (3,5)-cyclic staffing problem: 
1 1 0 0

• Columns of A do not always have a
A  1 1 1 0

contiguous set of ones  LP solution
0 1 1 1
close to ILP solution
0 0 1 1

40
1

1
0

0
1 
Exact cyclic staffing algorithm
STEP 1: solve LP-relaxation  solution vector x*
if x* integer  done, else: go to step 2
STEP 2: form two linear programs LP’ and LP’’, so that
these constraints are added respectively:
x1  ...  x n  x  ...  x
*
1
*
n
x1  ...  x n  x1*  ...  x *n
 added to LP'
 added to LP' '
LP’’ has an optimal solution that is integer
if LP’ is not feasible  LP’’ solution optimal
otherwise: LP’ has an optimal solution that is integer,
and the optimal solution is the best of the solutions
41
of LP’ and LP’’
Extensions of cyclic staffing
• Days-off scheduling with a fixed cycle
– each employee 2 days off a week
– every other weekend off (e.g. 1st, 3rd, 5th, etc.)
 solved by column generation
• Cyclic staffing with overtime
– 3 work shifts: 8:00-16:00, 16:00-0:00, 0:00-8:00
– matrix A:
0 1 1 1 
0
0 \ 1
 1


0 0 1 1



A  0 \ 1 1
0 , 0 \ 1 
0 0 0 1 
 0
0 \ 1 1 


0 0 0 0
42
 solved by algorithm 9.4.1 (cyclic staffing algorithm)
Extensions of cyclic staffing (cont.)
• Cyclic staffing with linear penalties for underand overstaffing
– varying demand bi
– penalty ci’ and ci’’ for under- and overstaffing
– understaffing = x’
 overstaffing = bi- (ai1x1+ … + ai1x1) - xi’
model: min c x  c' x 'c' ' (b  A x  x ' )
A x  Ix'  b
x0
43
if c-c’’A0 and c’-c’’ 0  solvable by alg. 9.4.1
Crew scheduling
• Applications in airline/transportation industry
• Each crew performs a number of jobs (flight legs) in
a so-called ‘round trip’
• There are m jobs (flight legs), and n feasible round
trips
• A round trip has costs cj
• objective: choose a set of round trips, so that each
flight leg is covered exactly once, by one and only
one round trip  set partitioning problem
• solution method: column generation heuristic on ILP
model
44
ILP model for crew scheduling
min c1 x1  c 2 x 2  ...  c n x n
subject to :
N round trips
m jobs
a11 x1  a12 x 2  ...  a1n x n  1
a21 x1  a22 x 2  ...  a2n x n  1

am1 x1  am2 x 2  ...  amn x n  1
x j  {0,1}
45