job scheduling

Post on 02-Dec-2014

790 Views

Category:

Education

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

job shop scheduling

TRANSCRIPT

1

Job Shop 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)

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

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

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 ),(),(

• 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

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.

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).

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

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.

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

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

13

J3 J1 J2

J1

J1 J3

J2 J3

M1

M3

M2

5 10 15 20

Make Span Cmax = 20

Corresponding Schedule

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

15

J1 J2 J3

M1

M3

M2

J1 J3

5 10 12

J3 J1

J2

Make Span Cmax =12

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

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;

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

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

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*

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

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

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

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

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

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

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

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

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)

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

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)

32

411323222122

*,,,Min

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

2

2,4,4,2

Min

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

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

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

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

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

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

THANKS

39

top related