Lec9.ppt

Lecture 9:
Simplified Shifting Bottleneck
© J. Christopher Beck 2008
1
Outline

Simplified Shifting Bottleneck Heuristic


Example 5.4.2
Try it out
© J. Christopher Beck 2008
2
Readings

P Ch 5.4
© J. Christopher Beck 2008
3
Shifting Bottleneck

Heuristic Method for JSP


Bottleneck resource: the most used
resource


makespan minimization
the one in which the activities are “latest”
in some sort of relaxation of the problem
Idea:
solve a series of 1-machine problems from
the most to least loaded resource
4
© J. Christopher Beck 2008

Simplified Shifting
Bottleneck (SSBH)

Find optimal 1-machine schedule for
each unscheduled machine



subject to any already scheduled resources
Identify bottleneck resource
Keep optimal 1-machine sequence for
bottleneck resource
© J. Christopher Beck 2008
5
Simplified Shifting Bottleneck
Heuristic (SSBH)


M = set of all machines
M0 = set of “already scheduled”
machines


Initially M0 is empty
“already scheduled” means all activities on
that resource have been sequenced
© J. Christopher Beck 2008
6
SSBH Overview

Step 1: Find Cmax, release, and due
dates





CPM
Step 2: Find min Lmax 1-machine
schedules
Step 3: Add max Lmax machine to M0
Step 4: (SKIPPED – see Lecture 10)
Step 5: If M = M0, done. Else goto 1
© J. Christopher Beck 2008
7
Example 5.4.2, p. 89

JSP, min Cmax
Jobs
1
2
3
Machines
1,2,3
2,1,4,3
1,2,4
M1
Processing times
p11=10, p21=8, p31=4
p22=8, p12=3, p42=5 , p32=6
p13=4, p23=7, p43=3
J1
10
M3
J2
8
M4
J3
M2
© J. Christopher Beck 2008
4
8
3
7
4
5
3
6
8
SSBH Step 1


Find release date and due date of each
operation
Use CPM to find CP and min. start time,
max. end time for each activity
© J. Christopher Beck 2008
9
SSBH Step 1: Find Cmax
10
8
4
© J. Christopher Beck 2008
8
3
4
5
7
6
3
10
SSBH Step 1: Find Cmax
[10
[0
[10
10
[8
[0
8
[8
[4
4
© J. Christopher Beck 2008
[11
3
8
[0
[18
[18
[4
[22
4
[11
[16
[16
5
[11
7
[22
6
[11
[14
3
11
SSBH Step 1: Find Cmax
[10 10]
[0 0]
[10 10] [18 18]
10
[8 8]
[0 0]
8
8
4
© J. Christopher Beck 2008
4
[8 8] [11 11] [11 11] [16 16]
3
[16 16] [22 22]
5
[4 12] [4 12] [11 19]
[0 8]
[18 18] [22 22]
7
rj = min start
dj = max end
6
[11 19] [14 22]
3
12
SSBH Step 1: Find Release &
Due Dates (CPM)
Questions?
release date
due date
J1
10
8
[0 10]
J2
[10 18]
4
5
6
[8 11] [11 16] [16 22]
7
[0 12] [4 19]
© J. Christopher Beck 2008
[18 22]
3
8
[0 8]
J3
4
3
[11 22]
13
SSBH Step 2: Find Min
Lmax 1-Machine Schedules

Using release and due dates, min. Lmax
[0 10]
M2
J1
8
[10 18]
M3
3
10
M1
4
[8 11] [0 12]
J2
10 3
4
8
[0 8]
0
J3 7
[4 19]
10 13
J2
0
8 J3 7 J1
8
15
6
[18 22] [16 22]
M4
Lmax(1) = 5
4
5
3
[11 16] [11 22]
© J. Christopher Beck 2008
16
Lj = Cj – dj
Lmax = max(Lj)
5 3
11 16
8
Lmax(2) = 5
6
Lmax(3) = 4
4
22
Lmax(4) = 0
14
SSBH Step 3:
Add Machine to M0


Pick machine with highest Lmax
Use sequence found in Step 2


Lmax(1) = Lmax(2) = 5
Arbitrarily choose to add machine 1
© J. Christopher Beck 2008
15
SSBH Step 4: (SKIPPED)

Step 4 from SBH is skipped in the
Simplified SBH
© J. Christopher Beck 2008
16
SSBH Step 5: Termination

M0 ≠ M so goto Step 1
© J. Christopher Beck 2008
17
SSBH Overview

Step 1: Find Cmax, release, and due
dates





CPM
Step 2: Find min Lmax 1-machine
schedules
Step 3: Add max Lmax machine to M0
Step 4: (SKIPPED)
Step 5: If M = M0, done. Else goto 1
© J. Christopher Beck 2008
18
SSBH Step 1 (Iteration 2):
Find Cmax
10
8
4
© J. Christopher Beck 2008
8
3
4
5
7
6
3
19
SSBH Step 1 (Iteration 2):
Find Cmax
[10
[0
[10
10
[0
8
[8
[10 [13
8
3
[17
[13
4
© J. Christopher Beck 2008
[18
[18
[22
4
[13
[18
[18
5
[17 [24
7
[24
6
[24
[27
3
20
SSBH Step 1 (Iteration 2):
Find Cmax
[10 10]
[0 0]
[10 15] [18 23]
10
[18 23] [22 27]
8
4
[8 10] [10 10] [13 13] [13 16] [18 21]
[0 2]
8
[13 13] [17 17]
4
© J. Christopher Beck 2008
3
[18 21] [24 27]
5
[17 17] [24 24]
7
6
[24 24] [27 27]
3
21
SSBH Step 1 (Iteration 2)


M0 = {M1}
Find Cmax, release & due dates
M2
J1
8
[10 23]
M3
4
J2
8
[0 10]
J3 7
[17 24]
6
[18 27] [18 27]
M4
© J. Christopher Beck 2008
5
3
[13 21] [24 27]
22
SSBH Step 2 (Iteration 2):
Find Min Lmax 1-M Schedules

M2
J1
Using release and due dates, min. Lmax
8
[10 23]
M3
4
J2
8
[0 10]
6
[18 27] [18 27]
M4
5
3
[13 21] [24 27]
© J. Christopher Beck 2008
J3 7
[17 24]
J2
0
8
J1
8 J3 7
18
8 10
6
either schedule OK
18
5
13
Lmax(2) = 1
4 Lmax(3) = 1
24
3 Lmax(4) = 0
24
23
SSBH Step 3 (Iteration 2): Add
Machine to M0


Pick machine with highest Lmax
Use sequence found in Step 2


Lmax(2) = Lmax(3) = 1
Arbitrarily choose to add machine 2
© J. Christopher Beck 2008
24
SSBH Step 4 (Iteration 2):
(SKIPPED)

Step 4 from SHB is skipped in the
Simplified SSHB
© J. Christopher Beck 2008
25
SSBH Step 5: Termination

M0 ≠ M so goto Step 1
© J. Christopher Beck 2008
26
SSBH Step 1 (Iteration 3):
Find Cmax
10
8
8
3
5
4
© J. Christopher Beck 2008
4
6
7
3
27
SSBH Step 1 (Iteration 3):
Find Cmax
[0
[10
[10
[18
10
[0
[8
[18
8
[10
8
[13
[13
3
4
[18
[18
5
[13
[17
4
© J. Christopher Beck 2008
[22
[24
6
[18
[25
7
[25
[28
3
28
SSBH Step 1 (Iteration 3):
Find Cmax
[0 0]
[10 10]
[10 10] [18 18]
10
[0 2]
[8 10]
8
[10 11] [13 14] [13 17] [18 22]
8
3
[18 24] [22 28]
4
[18 22] [24 28]
5
6
[13 14] [17 18] [18 18] [25 25]
4
© J. Christopher Beck 2008
7
[25 25] [28 28]
3
29
SSHB Step 1 (Iteration 3)


M0 = {M1, M2}
Find Cmax= 28, find release & due dates
M3
4
6
[18 28] [18 28]
M4
© J. Christopher Beck 2008
5
3
[13 22] [25 28]
30
SSBH Step 2 (Iteration 3):
Find Min Lmax 1-M Schedules

M3
4
Using release and due dates, min. Lmax
6
6
18
[18 28] [18 28]
M4
5
3
[13 22] [25 27]
© J. Christopher Beck 2008
5
13
4 Lmax(3) = 0
24
3 Lmax(4) = 0
24
31
SSBH Step 3 (Iteration 3): Add
Machine to M0


Lmax(3) = Lmax(4) = 0
So you actually have a final schedule by
adding sequences from Step 2
M1
M2
10 3
J2
8
J1
4
8 J3 7
M3
M4
© J. Christopher Beck 2008
6
5
4
3
32
SSHB Step 4 (Iteration 3):
(SKIPPED)

Step 4 from SHB is skipped in the
Simplified SHB
© J. Christopher Beck 2008
33
SSHB Step 5: Termination

M0 = M so STOP
© J. Christopher Beck 2008
34
SSBH Overview

Step 1: Find Cmax, release, and due
dates





CPM
Step 2: Find min Lmax 1-machine
schedules
Step 3: Add max Lmax machine to M0
Step 4: (SKIPPED)
Step 5: If M = M0, done. Else goto 1
© J. Christopher Beck 2008
35
SSBH Example JSP

Run SSBH on JSP from
previous lectures
Jobs
Processing times
0
J0R0[15]  J0R1[50]  J0R2[60]
1
J1R1[50]  J1R0[50]  J1R2[15]
2
J2R0[30]  J2R1[15]  J2R2[20]
© J. Christopher Beck 2008
36