© J. Christopher Beck 2008 1
Lecture 10: (Full) Shifting Bottleneck
© J. Christopher Beck 2008 2
Outline Simplified Shifting Bottleneck
Heuristic Review Full Shifting Bottleneck
Example 5.4.2 Try it out
© J. Christopher Beck 2008 3
Readings
P Ch 5.4
© J. Christopher Beck 2008 4
Simplified ShiftingBottleneck (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
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 6
Shifting BottleneckHeuristics (SBH)
Pick most loaded resource Find optimal 1-machine schedule Pick next most loaded resource Find optimal 1-machine schedule
consistent with previous 1-machine schedules
Re-compute previous 1-machine schedules - can they be improved?
© J. Christopher Beck 2008 7
SBH Overview
Step 1: Find Cmax, rj’s, and dj’s Step 2: Find min Lmax 1-machine
schedules Step 3: Add max Lmax machine (call it h)
to M0 Step 4: Re-sequence machines in
M0 \ {h} Step 5: If M = M0, done. Else goto 1
© J. Christopher Beck 2008 8
Example 5.4.2, p. 89
JSP, min Cmax
J1
J2
J3
10 8 4
8 3 5 6
4 7 3
Jobs Machines
Processing times
1 1,2,3 p11=10, p21=8, p31=4
2 2,1,4,3 p22=8, p12=3, p42=5 , p32=6
3 1,2,4 p13=4, p23=7, p43=3M1
M2
M4
M3
© J. Christopher Beck 2008 9
SBH 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 10
SBH Step 1: Find Cmax
10 8 4
8 3 5 6
4 7 3
© J. Christopher Beck 2008 11
SBH Step 1: Find Cmax
10 8 4
8 3 5 6
4 7 3
[0 [10 [10 [18 [18 [22
[0 [8 [8 [11 [16 [22[11 [16
[0 [4 [4 [11 [11 [14
© J. Christopher Beck 2008 12
SBH Step 1: Find Cmax
10 8 4
8 3 5 6
4 7 3
[0 0] [10 10] [10 10][18 18] [18 18][22 22]
[0 0] [8 8] [8 8][11 11] [16 16][22 22][11 11][16 16]
[0 8] [4 12] [4 12] [11 19] [11 19][14 22]
rj = min startdj = max end
© J. Christopher Beck 2008 13
SBH Step 1: Find Release & Due Dates (CPM)
[16 22]
J1
J2
J3
10 8 4
8 3 5 6
4 7 3
[0 10] [10 18] [18 22]
[0 8] [8 11] [11 16]
[0 12] [4 19] [11 22]
release date
due date
Questions?
© J. Christopher Beck 2008 14
SBH Step 2: Find MinLmax 1-Machine Schedules
Using release and due dates, min. Lmax
[16 22]
M1
M2
M3
10
8
4
8
3
5
6
4
7
3
[0 10]
[10 18]
[18 22]
[0 8]
[8 11]
[11 16]
[0 12]
[4 19]
[11 22]
M4
J2J1 J3
10 3 4 Lmax(1) = 5
0 10 13
88 7J2 J3 J1 Lmax(2) = 5
0 8 15
46 Lmax(3) = 4
16 22
5 311 16
Lmax(4) = 0Lj = Cj – dj
Lmax = max(Lj)
© J. Christopher Beck 2008 15
SBH Step 3:Add Machine h to M0
Pick machine with highest Lmax
Use sequence found in Step 2 Lmax(1) = Lmax(2) = 5 Arbitrarily choose to add machine 1 So h = M1
© J. Christopher Beck 2008 16
SBH Step 4:Resequence M0 \ {h}
h = M1 M0 = {M1} M0 \ {M1} = {}
So there is nothing to do
Questions?
© J. Christopher Beck 2008 17
SBH Step 5: Termination
M0 ≠ M so goto Step 1
© J. Christopher Beck 2008 18
SBH Overview
Step 1: Find Cmax, rj’s, and dj’s Step 2: Find min Lmax 1-machine
schedules Step 3: Add max Lmax machine (call it h)
to M0 Step 4: Re-sequence machines in
M0 \ {h} Step 5: If M = M0, done. Else goto 1
© J. Christopher Beck 2008 19
SBH Step 1 (Iteration 2):Find Cmax
10 8 4
8 3 5 6
4 7 3
© J. Christopher Beck 2008 20
SBH Step 1 (Iteration 2):Find Cmax
10 8 4
8 3 5 6
4 7 3
[0 [10 [10 [18 [18 [22
[0 [8 [10 [13 [18 [24[13 [18
[13 [17 [17 [24 [24 [27
© J. Christopher Beck 2008 21
SBH Step 1 (Iteration 2):Find Cmax
10 8 4
8 3 5 6
4 7 3
[0 0] [10 10] [10 15][18 23] [18 23][22 27]
[0 2] [8 10] [10 10][13 13] [18 21][24 27][13 16][18 21]
[13 13] [17 17] [17 17][24 24] [24 24][27 27]
© J. Christopher Beck 2008 22
SBH Step 1 (Iteration 2)
M0 = {M1} Find Cmax, release & due dates
[18 27]
M3 4 6
[18 27]
5 3[13 21] [24 27]
M4
M2 8 8 7
[10 23] [0 10] [17 24]
J2J1 J3
© J. Christopher Beck 2008 23
SBH Step 2 (Iteration 2): Find Min Lmax 1-M Schedules
Using release and due dates, min. Lmax
46 Lmax(3) = 1
18 24[18 27]
M3 4 6
[18 27]
5 3[13 21] [24 27]
M4
M2 8 8 7
[10 23] [0 10] [17 24]
J2J1 J3 88 7J2 J3J1 Lmax(2) = 1
0 8 1810
5 313 24
Lmax(4) = 0
either schedule OK
© J. Christopher Beck 2008 24
SBH 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 h = machine 2
© J. Christopher Beck 2008 25
SBH Step 4: (Iteration 2) Resequence M0 \ {h}
h = M2 M0 = {M1, M2} M0 \ {M2} = {M1}
So we want to resequence M1 subject to the constraints on M2!!!!
© J. Christopher Beck 2008 26
SBH Step 4 (Iteration 2):Find Cmax
10 8 4
8 3 5 6
4 7 3
© J. Christopher Beck 2008 27
SBH Step 4 (Iteration 2):Find Cmax
10 8 4
8 3 5 6
4 7 3
© J. Christopher Beck 2008 28
SBH Step 4 (Iteration 2):Find Cmax
10 8 4
8 3 5 6
4 7 3
[0 0] [10 10] [10 10][18 18] [18 24][22 28]
[0 2] [8 10] [8 11] [11 14] [16 22][22 28][11 17][16 22]
[0 14] [4 18] [18 18] [25 25] [25 25][28 28]
© J. Christopher Beck 2008 29
SBH Step 4: Find MinLmax 1-Machine Schedule
Using release and due dates, min. Lmax
M1 10 3 4
[0 10] [8 14] [0 18]
10 3 4 Lmax(1) = 0
0 10 13
Same as current sequence, so don’t change anything If min Lmax schedule was different, we
would change the M1 sequence
Questions?
© J. Christopher Beck 2008 30
SBH Step 5: Termination
M0 ≠ M so goto Step 1
© J. Christopher Beck 2008 31
SBH Step 1 (Iteration 3):Find Cmax
10 8 4
8 3 5 6
4 7 3
© J. Christopher Beck 2008 32
SBH Step 1 (Iteration 3):Find Cmax
10 8 4
8 3 5 6
4 7 3
[0 [10 [10 [18 [18 [22
[0 [8 [10 [13 [18 [24[13 [18
[13 [17 [18 [25 [25 [28
© J. Christopher Beck 2008 33
SBH Step 1 (Iteration 3):Find Cmax
10 8 4
8 3 5 6
4 7 3
[0 0] [10 10] [10 10][18 18] [18 24][22 28]
[0 2] [8 10] [10 11][13 14] [18 22][24 28][13 17][18 22]
[13 14] [17 18][18 18] [25 25] [25 25][28 28]
© J. Christopher Beck 2008 34
SHB Step 1 (Iteration 3)
M0 = {M1, M2} Find Cmax= 28, find release & due dates
[18 28]
M3 4 6
[18 28]
5 3[13 22] [25 28]
M4
© J. Christopher Beck 2008 35
SSBH Step 2 (Iteration 3): Find Min Lmax 1-M Schedules
Using release and due dates, min. Lmax
46 Lmax(3) = 0
18 24
5 313 24
Lmax(4) = 0
[18 28]
M3 4 6
[18 28]
5 3[13 22] [25 27]
M4
© J. Christopher Beck 2008 36
SBH 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
8J2
6
5
M1
M2
M4
M3
10 3 4
8J1
4
3
7J3
© J. Christopher Beck 2008 37
SBH Step 3 (Iteration 3):Add Machine to M0
But let’s assume you choose h = M3
M0 = {M1, M2, M3}
© J. Christopher Beck 2008 38
SBH Step 4: (Iteration 3) Resequence M0 \ {h}
h = M3 M0 = {M1, M2, M3} M0 \ {M3} = {M1, M2} So we want to
resequence M1 subject to the constraints on M2 and M3
resequence M2 subject to the constraints on M1 and M3
© J. Christopher Beck 2008 39
SBH Step 4 (Iteration 3):Resequence M1 s.t. {M2,M3}
10 8 4
8 3 5 6
4 7 3
© J. Christopher Beck 2008 40
SBH Step 4 (Iteration 3):Resequence M2 s.t. {M1,M3}
10 8 4
8 3 5 6
4 7 3
© J. Christopher Beck 2008 41
SHB Step 5: Termination
M0 ≠ M so goto Step 1
© J. Christopher Beck 2008 42
SHB Iteration 4
Sequence M4 (Lmax(4) = 0) Resequence:
M1 s.t. {M2,M3,M4} M2 s.t. {M1,M3,M4} M3 s.t. {M1,M2,M4}
M0 = M so STOP
© J. Christopher Beck 2008 43
SBH Overview
Step 1: Find Cmax, rj’s, and dj’s Step 2: Find min Lmax 1-machine
schedules Step 3: Add max Lmax machine (call it h)
to M0 Step 4: Re-sequence machines in
M0 \ {h} Step 5: If M = M0, done. Else goto 1
© J. Christopher Beck 2008 44
SBH 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]
Top Related