# © J. Christopher Beck 20051 Lecture 7: Shifting Bottleneck.

## Presentation on theme: "© J. Christopher Beck 20051 Lecture 7: Shifting Bottleneck."— Presentation transcript:

© J. Christopher Beck 20051 Lecture 7: Shifting Bottleneck

© J. Christopher Beck 2005 2 Outline Shifting Bottleneck Heuristic 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 3 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 2005 4 Example 5.4.2, p. 89 JSP, min C max J1 J2 J3 10848 3 56 4 7 3 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 2005 5 Simplified Shifting Bottleneck Heuristic (SSBH) M = set of all machines M0 = set of “already scheduled” machines Initially M0 is empty

© J. Christopher Beck 2005 6 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 2005 7 SSBH Step 1: Find C max (M0) 10848 3 56 4 7 3 J1 J2 J3 1084 8 3 56 4 7 3 C max (M0) 022 NOTE: This is a job-based Gantt chart

© J. Christopher Beck 2005 8 SSBH Step 1: Find Release & Due Dates (CPM) J1 J2 J3 1084 8 3 56 4 7 3 C max (M0) 022 [16 22] J1 J2 J3 1084 8 3 56 4 7 3 [0 10][10 18][18 22] [0 8][8 11][11 16] [0 12][4 19][11 22]

© J. Christopher Beck 2005 9 SSBH Step 2: Find Optimal 1- Machine Schedules Using release and due dates, min. L max [16 22] M1 M2 M3 10848 3 56 4 7 3 [0 10] [10 18] [18 22] [0 8] [8 11] [11 16] [0 12] [4 19] [11 22] M4 J2J1J3 10 3 4 L max (1) = 5 01013 887 J2 J3J1 L max (2) = 5 0815 46 L max (3) = 4 1622 5 3 1116 L max (4) = 0 L j = C j – d j L max = max(L j )

© J. Christopher Beck 2005 10 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 2005 11 SSHB Step 4: (SKIPPED) Step 4 from SHB is skipped in the Simplified SSHB

© J. Christopher Beck 2005 12 SSHB Step 5: Termination M0 ≠ M so goto Step 1

© J. Christopher Beck 2005 13 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 2005 14 8 J2 6 5 SSHB Step 1 (Iteration 2) M0 = {M1} Find C max (M0) = 27, find release & due dates M1 M2 M4 M3 10 3 4 8 J1 4 3 7 J3 [18 27] M3 4 6 [18 27] 5 3 [13 21][24 27] M4 M2 8 8 7 [10 23] [0 10] [17 24] J2J1J3

© J. Christopher Beck 2005 15 SSBH Step 2 (Iteration 2): Find Optimal 1-M Schedules Using release and due dates, min. L max 46 L max (3) = 1 1824 5 3 1324 L max (4) = 0 [18 27] M3 4 6 [18 27] 5 3 [13 21][24 27] M4 M2 8 8 7 [10 23] [0 10] [17 24] J2J1J3 88 7 J2 J3 J1 L max (2) = 1 0818 10

© J. Christopher Beck 2005 16 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 2005 17 SSHB Step 4 (Iteration 2): (SKIPPED) Step 4 from SHB is skipped in the Simplified SSHB

© J. Christopher Beck 2005 18 SSHB Step 5: Termination M0 ≠ M so goto Step 1

© J. Christopher Beck 2005 19 8 J2 6 5 SSHB Step 1 (Iteration 3) M0 = {M1, M2} Find C max (M0) = 28, find release & due dates M1 M2 M4 M3 10 3 4 8 J1 4 3 7 J3 [18 28] M3 4 6 [18 28] 5 3 [13 22][25 28] M4

© J. Christopher Beck 2005 20 SSBH Step 2 (Iteration 3): Find Optimal 1-M Schedules Using release and due dates, min. L max 46 L max (3) = 0 1824 5 3 1324 L max (4) = 0 [18 28] M3 4 6 [18 28] 5 3 [13 22][25 27] M4

© J. Christopher Beck 2005 21 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 M3 10 3 4 8 J1 4 3 7 J3

© J. Christopher Beck 2005 22 SSHB Step 4 (Iteration 2): (SKIPPED) Step 4 from SHB is skipped in the Simplified SSHB

© J. Christopher Beck 2005 23 SSHB Step 5: Termination M0 ≠ M so STOP

© J. Christopher Beck 2005 24 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 2005 25 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 2005 26 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 2005 27 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