![Page 1: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/1.jpg)
© J. Christopher Beck 2008 1
Lecture 10: (Full) Shifting Bottleneck
![Page 2: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/2.jpg)
© J. Christopher Beck 2008 2
Outline Simplified Shifting Bottleneck
Heuristic Review Full Shifting Bottleneck
Example 5.4.2 Try it out
![Page 3: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/3.jpg)
© J. Christopher Beck 2008 3
Readings
P Ch 5.4
![Page 4: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/4.jpg)
© 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
![Page 5: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/5.jpg)
© 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
![Page 6: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/6.jpg)
© 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?
![Page 7: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/7.jpg)
© 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
![Page 8: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/8.jpg)
© 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
![Page 9: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/9.jpg)
© 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
![Page 10: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/10.jpg)
© J. Christopher Beck 2008 10
SBH Step 1: Find Cmax
10 8 4
8 3 5 6
4 7 3
![Page 11: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/11.jpg)
© 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
![Page 12: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/12.jpg)
© 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
![Page 13: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/13.jpg)
© 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?
![Page 14: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/14.jpg)
© 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)
![Page 15: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/15.jpg)
© 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
![Page 16: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/16.jpg)
© J. Christopher Beck 2008 16
SBH Step 4:Resequence M0 \ {h}
h = M1 M0 = {M1} M0 \ {M1} = {}
So there is nothing to do
Questions?
![Page 17: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/17.jpg)
© J. Christopher Beck 2008 17
SBH Step 5: Termination
M0 ≠ M so goto Step 1
![Page 18: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/18.jpg)
© 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
![Page 19: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/19.jpg)
© J. Christopher Beck 2008 19
SBH Step 1 (Iteration 2):Find Cmax
10 8 4
8 3 5 6
4 7 3
![Page 20: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/20.jpg)
© 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
![Page 21: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/21.jpg)
© 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]
![Page 22: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/22.jpg)
© 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
![Page 23: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/23.jpg)
© 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
![Page 24: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/24.jpg)
© 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
![Page 25: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/25.jpg)
© 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!!!!
![Page 26: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/26.jpg)
© J. Christopher Beck 2008 26
SBH Step 4 (Iteration 2):Find Cmax
10 8 4
8 3 5 6
4 7 3
![Page 27: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/27.jpg)
© J. Christopher Beck 2008 27
SBH Step 4 (Iteration 2):Find Cmax
10 8 4
8 3 5 6
4 7 3
![Page 28: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/28.jpg)
© 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]
![Page 29: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/29.jpg)
© 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?
![Page 30: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/30.jpg)
© J. Christopher Beck 2008 30
SBH Step 5: Termination
M0 ≠ M so goto Step 1
![Page 31: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/31.jpg)
© J. Christopher Beck 2008 31
SBH Step 1 (Iteration 3):Find Cmax
10 8 4
8 3 5 6
4 7 3
![Page 32: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/32.jpg)
© 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
![Page 33: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/33.jpg)
© 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]
![Page 34: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/34.jpg)
© 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
![Page 35: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/35.jpg)
© 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
![Page 36: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/36.jpg)
© 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
![Page 37: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/37.jpg)
© 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}
![Page 38: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/38.jpg)
© 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
![Page 39: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/39.jpg)
© 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
![Page 40: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/40.jpg)
© 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
![Page 41: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/41.jpg)
© J. Christopher Beck 2008 41
SHB Step 5: Termination
M0 ≠ M so goto Step 1
![Page 42: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/42.jpg)
© 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
![Page 43: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/43.jpg)
© 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
![Page 44: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck](https://reader036.vdocuments.net/reader036/viewer/2022062805/5697bfd81a28abf838caebd5/html5/thumbnails/44.jpg)
© 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]