39
1 Job Shop Scheduling

job scheduling

Embed Size (px)

DESCRIPTION

job shop scheduling

Citation preview

Page 1: job scheduling

1

Job Shop Scheduling

Page 2: job scheduling

2

Job shop environment:

• m machines, n jobs• objective function• Each job follows a predetermined route• Routes are not necessarily the same for each job• Machine can be visited once or more than once (recirculation)

Page 3: job scheduling

3

Job Shop ProblemNetwork Formulation

• Let us consider the example with 4 m/c & 3 jobs

• The route of the jobs as well as their processing times are given below

Job m/c sequence Processing time

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=3

where Pij job J processed on m/c i

Page 4: job scheduling

4

Construction of the Network

SS

1,31,3

1,11,1

2,22,2

2,12,1

1,21,2

2,32,3

3,13,1

TT

4,34,3

4,24,2 3,23,2

0

0

0

Page 5: job scheduling

5

Problem : Jm | | Cmax

Node (i, j) represents the operation of jth job on ith machine

• Pij processing time of job j on machine i

• G = (N, AB)

• A: Solid (Conjunctive) arcs represent the precedence relationships between operation of a single job.

• Operation (i, j) precedes (k, j)

Ajkji ),(),(

Page 6: job scheduling

• B: Broken (Disjunctive) arcs represent the precedence relationships between operation of a single machine.

• Disjunctive arcs B represent conflicts on machines.• Two operations (i, j) and (i, l) are connected by two arcs going

in opposite direction.

• Two dummy nodes S and T representing source and sink.

• Arcs from S to all first operations of jobs.

• Arcs from all last operations of jobs to T

• A feasible schedule corresponds to a selection of at most one (disjunctive) broken arcs from each such pair such that the resulting directed graph is acyclic

6

Page 7: job scheduling

7

How to construct a feasible schedule?

Select D - a subset of disjunctive arcs (one from each pair) suchthat the resulting directed graph G(D) has no cycles.

Graph G(D) contains conjunctive arcs + D.

D represents a feasible schedule.

A cycle in the graph corresponds to a schedule that is infeasible.

Page 8: job scheduling

8

S

1,3

1,1

1,2

2,3

2,1

4,2

4,3

3,1

3,2 T2,2

10 8

0 4

0

0

8 3 5 6

4 73

• The makespan of a feasible schedule is determined by the longest pathin G(D) from S to T.

• Minimise makespan: find a selection of disjunctive arcs thatminimises the length of the longest path (the critical path).

Page 9: job scheduling

9

Selection

• A subset is called a selection if it contains from each pair of disjunctive arcs exactly one.

• A selection D is feasible if the resulting directed graph

G (D) = (N, A D) i.e. graph with conjunctive and selected disjunctive arcs is acyclic.

BD

Page 10: job scheduling

10

Remarks

1. A feasible selection leads to a sequence in which operations have to be processed on machines.

2. Each feasible selection leads to a feasible schedule.

Page 11: job scheduling

11

Ex.

Machines – M1, M2, M3

Jobs J1 where (3, 1) (2, 1) (1, 1)

J2 where (1, 2) (3, 2)

J3 where (2, 3) (1, 3) (3, 3)

Duration

P31 = 4 P21 = 2 P11 = 1

P12 = 3 P32 = 3

P23 = 2 P13 = 4 P33 = 1

Page 12: job scheduling

12

Feasible Selection

Represents conjunctive arcs

Selection

uu

2,32,3

3,13,1

1,21,2

2,12,1

3,23,2

1,31,3

1,11,1

vv

3,33,3

Page 13: job scheduling

13

J3 J1 J2

J1

J1 J3

J2 J3

M1

M3

M2

5 10 15 20

Make Span Cmax = 20

Corresponding Schedule

Page 14: job scheduling

14

Selection for given schedule

Selection

uu

2,32,3

3,13,1

1,21,2

2,12,1

3,23,2

1,31,3

1,11,1

vv

3,33,3

Page 15: job scheduling

15

J1 J2 J3

M1

M3

M2

J1 J3

5 10 12

J3 J1

J2

Make Span Cmax =12

Page 16: job scheduling

16

Disjunctive Programming Formulation

Minimizing Cmax

Subject to

where yij denotes starting time of operation (i, j)

}

Pyy ijijkj Ajkji ),(),(

Py ijij Nji ),(

Pyy

pyy

ijijil

ililij

or

0yij Nji ),(

for all (i, l) & (i, j)i = 1, 2, …..,m

for all

for all

for all

Cmax

Page 17: job scheduling

17

• Some ordering must exists among operation of different job that are processed on same machine.

• Solution procedures for Jm / Cmax are based either on

enumerative or heuristic.

• No standard solution procedure available that will work satisfactory.

• Two popular heuristic algorithms: (i) schedule generation algorithm. (ii) shifting bottleneck heuristic algorithm;

Page 18: job scheduling

18

Algorithm for Non Delay Schedule Generation

- A partial schedule containing t scheduled operations

- The set of schedulable operations at stage t corresponding

to a given

- The earliest time at which operation could be started

- The earliest time at which operation could be

completed

PS t

S t

PS t

J S tJ

J S t

J

Page 19: job scheduling

19

is determine by the completion time of the direct predecessor of operation J and latest completion time on the machine required by operation J

– The larger of these quantities is

– The potential finish time

where is processing time of operation J

Here (i, j, k) represents job i operation J on machine k

j

J

t JJJ

t J

Page 20: job scheduling

20

Algorithm

Step 1 – Let t = 0 and

includes all operations with no predecessor.

Step 2 – Determine and the machine

on which could be realized

Step 3 – For each operation that requires machine

and for which create a new partial schedule in

which operation J is added to and started at

time

S tJ

PS t

jJ S t

min*

m*

*J

PS t

J

S t

*

m*

Page 21: job scheduling

21

Step 4 – For each new partial schedule created in step 3, update the data set as follows

(a) Remove operation J from (b) Form by adding the direct successor of operation J

to (c) Increment t by 1

Step 5 – Return to step 2 for each created in step 3 and continue in this fashion until all non delay schedules have been generated.

The quality of the solution obtained by the heuristic mainly depends on the effectiveness of priority rules which are used in them.

S t

PS t 1

S t 1

S t

PS t 1

Page 22: job scheduling

22

A Sample Set of Priority Rules

1. SPT – Select the job with min. processing time

2. FCFS – Select the operation that entered earliest

3. MWKR – (Most work remaining) – Select the operation associated with the job having the most work remaining to be processed

4. MOPNR – (Most operation remaining) – Select the operation that has the largest number of successor operation

5. Random – Select the operation at random

S t

Page 23: job scheduling

23

Ex. Find the schedule using non delay schedule generation heuristic with following primary rules

First level priority rule – MWKR (Most work remaining)

Second level priority rule – SPT

Third level priority rule – Random order

Page 24: job scheduling

24

Processing time Routing

1

2

3

4

1 2 3 1 2 3

1

2

3

4

2 3 4

4 4 1

4 2 3

3 3 1

1 2 3

3 2 1

2 3 1

1 3 2

Job

Operation

Job

Operation

Page 25: job scheduling

25

At t = 0

for all

PS 0

1,1,4,2,1,3,3,1,2,1,1,10S

0

0*

411312213111

JJ SMinSince

t

*

*J SJ

0

*Therefore, priority rule must be involved to select among all four operation [MWKR]

Earliest time at which operationcould be started

J

S tJ

Job Operation

M/c

Page 26: job scheduling

26

R1 = 9 R2 = 9 R3 = 7 R4 = 7

MWKR = 9 is not unique.

This is occurring for job 1 and job 2

Now, a tie breaking rules is needed

SPT is used as tie breaking rule

Now t111 < t213

Page 27: job scheduling

27

This means PS1 consists of operation {(1, 1, 1)} started at time 0

PS1 = {(1, 1, 1)}

f1 = 2, f2 = 0, f3 = 0

M/c1

M/c3

M/c2

(1, 1, 1)

2 4 6

Page 28: job scheduling

28

At this stage for two operations in S1. Thus priority rule must be involved to choose between (2, 1, 3) and (3, 1, 2)

1,1,4,2,1,3,3,1,2,2,2,11S

*J

411312213122

*,,,Min

0

2,0,0,2

Min

Page 29: job scheduling

29

By applying MWKR, we get R2 = 9 R3 = 7 since R2 > R3

(2, 1, 3) is added to PS1 to form

PS2 = {(1, 1, 1), (2, 1, 3)}

f1 = 2, f2 = 0, f3 = 4

M/c1

M/c3

M/c2

(1, 1, 1)

2 4 6

(2, 1, 3)

Page 30: job scheduling

30

Now

411312222122

*,,,Min

1,1,4,2,1,3,2,2,2,2,2,12S

0

2,0,4,2

Min

Operation 1 of job 2 is to be completed in M/c 3

Page 31: job scheduling

31

*The minimum is for & it is unique. Add this to partial schedule PS3

PS3 = {(1, 1, 1), (2, 1, 3), (3, 1, 2)}

f1 = 2, f2 = 2, f3 = 4

312

M/c1

M/c3

M/c2

(1, 1, 1)

2 4 6

(2, 1, 3)

(3, 1, 2)

Page 32: job scheduling

32

411323222122

*,,,Min

1,1,4,3,2,3,2,2,2,2,2,13S

2

2,4,4,2

Min

Page 33: job scheduling

33

• At this stage for two operation

• Thus priority rule must e involved to choose between (1, 2, 2) and (4, 1, 1)

R1 = 7 R4 = 7

• MWKR is not unique.

• Now SPT is used as tie breaker & t122 = t411

• After it is resolved randomly in favor of (4, 1, 1)

PS4 = {(1, 1, 1), (2, 1, 3), (3, 1, 2), (4, 1, 1)}

f1 = 5, f2 = 2, f3 = 4

*J

Page 34: job scheduling

34

4323

S4 = {(1, 2, 2), (2, 2, 2), (3, 2, 3), (4, 2, 3)}

5423

2122

4222

Operation 1 of job 4 in M/c 1 takes 5 minutes

423323222122

*,,,Min

2

5,4,4,2

Min

Page 35: job scheduling

35

• Now (1, 2, 2) is added to PSt

• Thus PS5 = {(1, 1, 1), (2, 1, 3), (3, 1, 2), (4, 1, 1), (1, 2, 2)}

f1 = 5, f2 = 5, f3 = 4

Now S5 = {(1, 3, 3), (2, 2, 2), (3, 2, 3), (4, 2, 3)}

5222

5423

5133

4323

423323222133

*,,,Min

4

5,4,5,5

Min

Page 36: job scheduling

36

• This minimum corresponds to (3, 2, 3) only partial schedule

PS6 = {(1, 1, 1), (2, 1, 3), (3, 1, 2), (4, 1, 1), (1, 2, 2), (3, 2, 3)}

• In this way we have to proceed to stage to complete the entire schedule

The final schedule is given as

P12 = {(1, 1, 1), (2, 1, 3), (3, 1, 2), (4, 1, 1), (1, 2, 2), (3, 2, 3)

(2, 2, 2), (2, 3, 1), (4, 2, 3), (3, 3, 1), (1, 3, 3), (4, 3, 2)}

1243

Page 37: job scheduling

37

M/c1

M/c3

M/c2

(1, 1, 1) (4, 1, 1)

2 5 9 10 13

(2, 1, 3) (3, 2, 3) (4, 2, 3) (1, 3, 3)

(3, 1, 2) (1, 2, 2) (2, 2, 2) (4, 3, 2)

(2, 3, 1) (3, 3, 1)

2

Page 38: job scheduling

38

Further Reading

1. Scheduling, Theory, Algorithms, and Systems, Michael Pinedo, Prentice Hall, 1995, or new: Second Addition, 2002Chapter 6

or

2. Operations Scheduling with Applications in Manufacturingand Services, Michael Pinedo and Xiuli Chao, McGraw Hill, 2000Chapter 5

Page 39: job scheduling

THANKS

39