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