Lecture 9: Simplified Shifting Bottleneck © J. Christopher Beck 2008 1 Outline Simplified Shifting Bottleneck Heuristic Example 5.4.2 Try it out © J. Christopher Beck 2008 2 Readings P Ch 5.4 © J. Christopher Beck 2008 3 Shifting Bottleneck Heuristic Method for JSP Bottleneck resource: the most used resource makespan minimization the one in which the activities are “latest” in some sort of relaxation of the problem Idea: solve a series of 1-machine problems from the most to least loaded resource 4 © J. Christopher Beck 2008 Simplified Shifting Bottleneck (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 Simplified Shifting Bottleneck Heuristic (SSBH) M = set of all machines M0 = set of “already scheduled” machines Initially M0 is empty “already scheduled” means all activities on that resource have been sequenced © J. Christopher Beck 2008 6 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 – see Lecture 10) Step 5: If M = M0, done. Else goto 1 © J. Christopher Beck 2008 7 Example 5.4.2, p. 89 JSP, min Cmax Jobs 1 2 3 Machines 1,2,3 2,1,4,3 1,2,4 M1 Processing times p11=10, p21=8, p31=4 p22=8, p12=3, p42=5 , p32=6 p13=4, p23=7, p43=3 J1 10 M3 J2 8 M4 J3 M2 © J. Christopher Beck 2008 4 8 3 7 4 5 3 6 8 SSBH 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 9 SSBH Step 1: Find Cmax 10 8 4 © J. Christopher Beck 2008 8 3 4 5 7 6 3 10 SSBH Step 1: Find Cmax [10 [0 [10 10 [8 [0 8 [8 [4 4 © J. Christopher Beck 2008 [11 3 8 [0 [18 [18 [4 [22 4 [11 [16 [16 5 [11 7 [22 6 [11 [14 3 11 SSBH Step 1: Find Cmax [10 10] [0 0] [10 10] [18 18] 10 [8 8] [0 0] 8 8 4 © J. Christopher Beck 2008 4 [8 8] [11 11] [11 11] [16 16] 3 [16 16] [22 22] 5 [4 12] [4 12] [11 19] [0 8] [18 18] [22 22] 7 rj = min start dj = max end 6 [11 19] [14 22] 3 12 SSBH Step 1: Find Release & Due Dates (CPM) Questions? release date due date J1 10 8 [0 10] J2 [10 18] 4 5 6 [8 11] [11 16] [16 22] 7 [0 12] [4 19] © J. Christopher Beck 2008 [18 22] 3 8 [0 8] J3 4 3 [11 22] 13 SSBH Step 2: Find Min Lmax 1-Machine Schedules Using release and due dates, min. Lmax [0 10] M2 J1 8 [10 18] M3 3 10 M1 4 [8 11] [0 12] J2 10 3 4 8 [0 8] 0 J3 7 [4 19] 10 13 J2 0 8 J3 7 J1 8 15 6 [18 22] [16 22] M4 Lmax(1) = 5 4 5 3 [11 16] [11 22] © J. Christopher Beck 2008 16 Lj = Cj – dj Lmax = max(Lj) 5 3 11 16 8 Lmax(2) = 5 6 Lmax(3) = 4 4 22 Lmax(4) = 0 14 SSBH Step 3: Add Machine to M0 Pick machine with highest Lmax Use sequence found in Step 2 Lmax(1) = Lmax(2) = 5 Arbitrarily choose to add machine 1 © J. Christopher Beck 2008 15 SSBH Step 4: (SKIPPED) Step 4 from SBH is skipped in the Simplified SBH © J. Christopher Beck 2008 16 SSBH Step 5: Termination M0 ≠ M so goto Step 1 © J. Christopher Beck 2008 17 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 18 SSBH Step 1 (Iteration 2): Find Cmax 10 8 4 © J. Christopher Beck 2008 8 3 4 5 7 6 3 19 SSBH Step 1 (Iteration 2): Find Cmax [10 [0 [10 10 [0 8 [8 [10 [13 8 3 [17 [13 4 © J. Christopher Beck 2008 [18 [18 [22 4 [13 [18 [18 5 [17 [24 7 [24 6 [24 [27 3 20 SSBH Step 1 (Iteration 2): Find Cmax [10 10] [0 0] [10 15] [18 23] 10 [18 23] [22 27] 8 4 [8 10] [10 10] [13 13] [13 16] [18 21] [0 2] 8 [13 13] [17 17] 4 © J. Christopher Beck 2008 3 [18 21] [24 27] 5 [17 17] [24 24] 7 6 [24 24] [27 27] 3 21 SSBH Step 1 (Iteration 2) M0 = {M1} Find Cmax, release & due dates M2 J1 8 [10 23] M3 4 J2 8 [0 10] J3 7 [17 24] 6 [18 27] [18 27] M4 © J. Christopher Beck 2008 5 3 [13 21] [24 27] 22 SSBH Step 2 (Iteration 2): Find Min Lmax 1-M Schedules M2 J1 Using release and due dates, min. Lmax 8 [10 23] M3 4 J2 8 [0 10] 6 [18 27] [18 27] M4 5 3 [13 21] [24 27] © J. Christopher Beck 2008 J3 7 [17 24] J2 0 8 J1 8 J3 7 18 8 10 6 either schedule OK 18 5 13 Lmax(2) = 1 4 Lmax(3) = 1 24 3 Lmax(4) = 0 24 23 SSBH 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 to add machine 2 © J. Christopher Beck 2008 24 SSBH Step 4 (Iteration 2): (SKIPPED) Step 4 from SHB is skipped in the Simplified SSHB © J. Christopher Beck 2008 25 SSBH Step 5: Termination M0 ≠ M so goto Step 1 © J. Christopher Beck 2008 26 SSBH Step 1 (Iteration 3): Find Cmax 10 8 8 3 5 4 © J. Christopher Beck 2008 4 6 7 3 27 SSBH Step 1 (Iteration 3): Find Cmax [0 [10 [10 [18 10 [0 [8 [18 8 [10 8 [13 [13 3 4 [18 [18 5 [13 [17 4 © J. Christopher Beck 2008 [22 [24 6 [18 [25 7 [25 [28 3 28 SSBH Step 1 (Iteration 3): Find Cmax [0 0] [10 10] [10 10] [18 18] 10 [0 2] [8 10] 8 [10 11] [13 14] [13 17] [18 22] 8 3 [18 24] [22 28] 4 [18 22] [24 28] 5 6 [13 14] [17 18] [18 18] [25 25] 4 © J. Christopher Beck 2008 7 [25 25] [28 28] 3 29 SSHB Step 1 (Iteration 3) M0 = {M1, M2} Find Cmax= 28, find release & due dates M3 4 6 [18 28] [18 28] M4 © J. Christopher Beck 2008 5 3 [13 22] [25 28] 30 SSBH Step 2 (Iteration 3): Find Min Lmax 1-M Schedules M3 4 Using release and due dates, min. Lmax 6 6 18 [18 28] [18 28] M4 5 3 [13 22] [25 27] © J. Christopher Beck 2008 5 13 4 Lmax(3) = 0 24 3 Lmax(4) = 0 24 31 SSBH 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 M1 M2 10 3 J2 8 J1 4 8 J3 7 M3 M4 © J. Christopher Beck 2008 6 5 4 3 32 SSHB Step 4 (Iteration 3): (SKIPPED) Step 4 from SHB is skipped in the Simplified SHB © J. Christopher Beck 2008 33 SSHB Step 5: Termination M0 = M so STOP © J. Christopher Beck 2008 34 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 35 SSBH 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] © J. Christopher Beck 2008 36