© j. christopher beck 20081 lecture 10: (full) shifting bottleneck

44
© J. Christopher Beck 2008 1 Lecture 10: (Full) Shifting Bottleneck

Upload: annice-kennedy

Post on 18-Jan-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck

© J. Christopher Beck 2008 1

Lecture 10: (Full) Shifting Bottleneck

Page 2: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck

© 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

© J. Christopher Beck 2008 3

Readings

P Ch 5.4

Page 4: © J. Christopher Beck 20081 Lecture 10: (Full) Shifting Bottleneck

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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

© 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]