Lecture 7 Shifting Bottleneck J Christopher Beck 2005
Lecture 7: Shifting Bottleneck © J. Christopher Beck 2005 1
Outline n Shifting Bottleneck Heuristic n n n Simplified version using example 5. 4. 2 Full version using example 5. 4. 2 Try it yourself on the “cut out” JSP © J. Christopher Beck 2005 2
Shifting Bottleneck n n n Pick most loaded resource Find optimal one-machine schedule Pick next most loaded resource Find optimal one-machine schedule consistent with previous one-machine schedules (This is a bit simplified) © J. Christopher Beck 2005 3
Example 5. 4. 2, p. 89 n JSP, min Cmax Jobs 1 2 3 Machines 1, 2, 3 2, 1, 4, 3 1, 2, 4 M 1 Processing times p 11=10, p 21=8, p 31=4 p 22=8, p 12=3, p 42=5 , p 32=6 p 13=4, p 23=7, p 43=3 J 1 10 M 3 J 2 8 M 4 J 3 M 2 © J. Christopher Beck 2005 4 8 3 7 4 5 3 6 4
Simplified Shifting Bottleneck Heuristic (SSBH) n n M = set of all machines M 0 = set of “already scheduled” machines n Initially M 0 is empty © J. Christopher Beck 2005 5
SSBH Step 1 n n Find release date and due date of each operation Remove all sequence constraints among activities in M – M 0, use CPM to find CP and min. start time, max. end time for each activity n Since M 0 is initially empty, we only have “conjunctive arcs” © J. Christopher Beck 2005 6
SSBH Step 1: Find Cmax(M 0) 10 8 3 8 0 10 J 2 8 3 © J. Christopher Beck 2005 4 7 3 6 3 22 Cmax(M 0) J 1 J 3 5 7 4 4 8 5 NOTE: This is a job-based Gantt chart 4 6 7
SSBH Step 1: Find Release & Due Dates (CPM) 0 J 1 10 J 2 8 3 J 3 22 Cmax(M 0) 4 8 5 J 1 7 3 8 [0 10] 4 6 10 J 2 [10 18] 4 5 6 [8 11] [11 16] [16 22] 7 [0 12] [4 19] © J. Christopher Beck 2005 [18 22] 3 8 [0 8] J 3 4 3 [11 22] 8
SSBH Step 2: Find Optimal 1 L =C –d Machine Schedules j j j Lmax = max(Lj) n Using release and due dates, min. Lmax [0 10] M 2 J 1 8 [10 18] M 3 4 [18 22] M 4 3 10 M 1 [8 11] [0 12] J 2 10 3 4 8 [0 8] 0 J 3 7 [4 19] 10 13 J 2 0 Lmax(1) = 5 4 8 J 3 7 J 1 8 15 6 [16 22] 5 3 [11 16] [11 22] © J. Christopher Beck 2005 16 5 3 11 16 8 Lmax(2) = 5 6 Lmax(3) = 4 4 22 Lmax(4) = 0 9
SSH Step 3: Add Machine to M 0 n n Pick machine with highest Lmax Use sequence found in Step 2 n n Lmax(1) = Lmax(2) = 5 Arbitrarily choose to add machine 1 © J. Christopher Beck 2005 10
SSHB Step 4: (SKIPPED) n Step 4 from SHB is skipped in the Simplified SSHB © J. Christopher Beck 2005 11
SSHB Step 5: Termination n M 0 ≠ M so goto Step 1 © J. Christopher Beck 2005 12
SSHB Overview n n n Step 1: Find Cmax(M 0), release, and due dates Step 2: Find optimal 1 -machine schedules Step 3: Add machine to M 0 Step 4: (SKIPPED) Step 5: If M = M 0, done. Else goto 1 © J. Christopher Beck 2005 13
SSHB Step 1 (Iteration 2) n n M 1 M 2 M 0 = {M 1} Find Cmax(M 0) = 27, find release & due dates 10 3 J 2 8 J 1 M 2 4 8 J 3 M 4 © J. Christopher Beck 2005 8 [10 23] 7 M 3 4 6 5 J 1 4 [18 27] 3 M 4 J 2 8 [0 10] J 3 7 [17 24] 6 [18 27] 5 3 [13 21] [24 27] 14
SSBH Step 2 (Iteration 2): Find Optimal 1 -M Schedules n M 2 J 1 Using release and due dates, min. Lmax 8 [10 23] M 3 4 [18 27] M 4 J 2 8 [0 10] J 3 7 [17 24] J 2 0 8 J 1 8 J 3 7 18 8 10 6 6 18 [18 27] 5 3 [13 21] [24 27] © J. Christopher Beck 2005 5 13 Lmax(2) = 1 4 Lmax(3) = 1 24 3 Lmax(4) = 0 24 15
SSH Step 3 (Iteration 2): Add Machine to M 0 n n Pick machine with highest Lmax Use sequence found in Step 2 n n Lmax(2) = Lmax(3) = 1 Arbitrarily choose to add machine 2 © J. Christopher Beck 2005 16
SSHB Step 4 (Iteration 2): (SKIPPED) n Step 4 from SHB is skipped in the Simplified SSHB © J. Christopher Beck 2005 17
SSHB Step 5: Termination n M 0 ≠ M so goto Step 1 © J. Christopher Beck 2005 18
SSHB Step 1 (Iteration 3) n n M 1 M 2 M 0 = {M 1, M 2} Find Cmax(M 0) = 28, find release & due dates 10 3 J 2 8 J 1 4 8 J 3 7 M 3 M 4 M 3 4 6 5 © J. Christopher Beck 2005 4 [18 28] 3 M 4 6 [18 28] 5 3 [13 22] [25 28] 19
SSBH Step 2 (Iteration 3): Find Optimal 1 -M Schedules n M 3 Using release and due dates, min. Lmax 4 [18 28] M 4 6 6 18 [18 28] 5 3 [13 22] [25 27] © J. Christopher Beck 2005 5 13 4 Lmax(3) = 0 24 3 Lmax(4) = 0 24 20
SSH Step 3 (Iteration 2): Add Machine to M 0 n n Lmax(3) = Lmax(4) = 0 So you actually have a final schedule by adding sequences from Step 2 M 1 M 2 10 3 J 2 8 J 1 4 8 J 3 7 M 3 M 4 © J. Christopher Beck 2005 6 5 4 3 21
SSHB Step 4 (Iteration 2): (SKIPPED) n Step 4 from SHB is skipped in the Simplified SSHB © J. Christopher Beck 2005 22
SSHB Step 5: Termination n M 0 ≠ M so STOP © J. Christopher Beck 2005 23
SSHB Overview n n n Step 1: Find Cmax(M 0), release, and due dates Step 2: Find optimal 1 -machine schedules Step 3: Add machine to M 0 Step 4: (SKIPPED) Step 5: If M = M 0, done. Else goto 1 © J. Christopher Beck 2005 24
SHB Overview n n n Step 1: Find Cmax(M 0), release, and due dates Step 2: Find optimal 1 -machine schedules Step 3: Add machine to M 0 Step 4: Resequence machines M 0 (except for new one) Step 5: If M = M 0, done. Else goto 1 © J. Christopher Beck 2005 25
SHB Step 4 n n Let Mi be the most recently added resource to set M 0 For each resource Mj in M 0 {Mi} n n Define single machine problem using sequence in M 0 {Mj} If resequencing results in better solution, keep new sequence © J. Christopher Beck 2005 26
SSHB & SHB on Cut Out JSP n Run SSHB & SHB on “cut out” JSP that we have been used in previous lectures Activities Jobs 1 2 1 M 1, 9 M 2, 8 M 3, 4 M 4, 4 2 M 1, 5 M 2, 6 M 4, 3 M 3, 6 3 M 3, 10 M 1, 4 M 2, 9 M 4, 2 © J. Christopher Beck 2005 3 4 Opt = 33 27
- Slides: 27