Você está na página 1de 80

# N Jobs, Two Machines

## The simplest form of a flow shop

arrangement consist of only two
machines on work centers, each job
must be processed successively on these
two machines: the first machine and
the second operation on the second
machine.

Input

Machine 1

Machine 2

Output

Job Flow

## The Johnsons Rule is a scheduling

procedure that gives a minimum make
span for the jobs on which the
procedure is applied.
Let define Ai = Pi1 and Bi = Pi2
where:

Ai
Bi
Pi

= Machine 1
= Machine 2
= Processing Time
4

## Steps for Johnsons Algorithm

1. For the job yet to be sequenced,
determine the minimum times of all Ai
and Bi.
2. Find the minimum processing time. If
the minimum processing time is found
in Ai, place the corresponding job in
the latest possible position in the
sequence.
5

## Steps for Johnsons Algorithm

3. Mark the job as being sequenced and
scratch the associated Ai and Bi values
4. If all jobs are placed in the sequenced,
go to Step 5; otherwise go to Step 1.
5. We now have the optimum sequence.

## N Jobs, Two Machine Problems

Example 1:
Consider a machine shop operation
in which each piece is first roughcut and shaped on the milling
machine and their ground to the
required tolerance and polished on
to the grinder. We have six jobs
that need processing, and we wish
to determined the optimum
sequence
to
minimize
the
makespan.
8

JOBS

Processing Time on
Milling Machine,
Pi1=Ai

Processing Time on
NC Grinder,
Pi2=Bi

15

20

18

25

17

20

22

30
9

Iteration 1:

_ _ _ _ _ 1
The minimum processing time is 3 on the second machine for job 1.
Hence, job 1 is placed in the last position, and job 1 and its processing
time are scratched.

Iteration 2:

_ _ _ _ 3 1
Processing time 5 for machine 2 associated with job 3 is next
smallest processing value. Job 3 is thus placed in the fifth position, the
latest possible position in the partial sequence developed so far.

Iteration 3:

2 _ _ 4 3 1
Minimum now is 8, associated with job 2 (machine 1) and job 4
(machine 2). Job 2 is placed in the first position and job 4 in the fourth
position.

Iteration 4:

2 5 6 4 3 1
Job 5, with 17 units on machine 1, has the lowest value. Place job 5
on position 2 and, the remaining job 6 is placed in position 3.
The final sequence is 2-5-6-4-3-1.
10

JOBS

Processing Time on
Milling Machine,
Pi1=Ai

Processing Time on
NC Grinder,
Pi2=Bi

15

20

18

25

17

20

22

30

SEQUENCE : 2-5-6-4-3-1

Machine 1
0

(2/8)

(5/17)

25

(6/22)

47

(4/25) 72

(3/18) 90

(1/15) 105

Machine 2
0/8 (2/20) 28/25 (5/20) 48/47 (6/30) 78/72 (4/8) 86/90 (3/5) 95/105 (1/3)

108

11

SUMMARY
On machine 1, start and completion times are determined by adding
processing times in job sequence.
completed in machine 1, goes to machine 2.
It is processed immediately if machine 2 is available.
However, it may have to wait in the buffer space if machine 2 is
still processing the previous job.
Thus, the starting time for a job in position j in the sequence on
the second machine is known by writing the completion time of the
previous machine.
This is easily visualized in the second machine by writing the
completion time on job (Cj-1, 2), first followed by the released time of job
j from machine 1 (Cj, 1).
For example, job 2 can start at time 8 (greater of values:
completion time on job j from machine 1).
Job 5 can start on machine 2 on the greater of times: when the
previous job completes its requirements on machine 2.
The start of job 1, for example, is delayed (and machine 2 is idle)
because job 1 is released from machine 1 at time 105 even though
machine 2 is available at time 95.
The makespan is 108 units.
12

Example 2:
The drilling and riveting times for 6 jobs are
given below. For every job, a hole is drilled first,
followed by riveting. Find the optimum sequence
that minimizes the makespan for all jobs.
JOB

Drilling

12

11

Riveting

11

10

10

13

13

Solution
We refer to the drilling and riveting machines as M1 and M2,
respectively. We also construct the following job sequence table. It
has six elements (number of jobs).
Sequence Table
3 _ _ _ _ _
Looking at the listed processing times for all jobs on M1 and M2,
notice that the smallest processing time is 3 for job 3. Since job 3 is
found in M1, it will be sequenced as early as possible. It will be
removed from the list of jobs to be scheduled.
JOB

Drilling

12

11

Riveting

11

10

13
14

## Repeat step 2 of Johnsons Algorithm. The shortest

processing time is 4 J1. We sequence J1 as early as possible;
that is, it follows J3 in the sequence table.
Sequence Table
3 1 _ _ _ _
J1 is deleted from the job listing table.
JOB

Drilling

12

11

Riveting

10

13

15

## A tie exists between job times for J2 on M1 and M2. A decision to

schedule J2 as late as possible (position 6) or as early as possible
(position 3) in the sequence table depend on priority (if there is any) of
the job. If there is no priority, J2 can be positioned in the third or the
sixth position without affecting the makespan for all jobs. There will be
two possible sequences.
Sequence Table 1
3 1 _ _ _ 2

Sequence Table 2
3 1 2 _ _ _

JOB

Drilling

12

11

Riveting

10

13
16

## The next shortest processing time is 8 for J4 on M2; therefore,

sequence J4 as late as possible.
Sequence Table 1
3 1 _ _ 4 2

Sequence Table 2
3 1 2 _ _ 4

JOB

Drilling

11

Riveting

10

13

17

## The shortest time of the unsequenced jobs is

9, which corresponds to J6 on M1. therefore, we
sequenced J6 as early as possible, and J5 is
placed in the open position to complete the
sequence. Either of the two sequences given next
will minimize the makespan for all jobs.
Sequence Table 1
3 1 6 5 4 2

Sequence Table 2
3 1 2 6 5 4

18

## To know which of the two is optimal, we compute for the total

makespan of the two sequences.

Sequence 1 : 3-1-6-5-4-2
JOB
MACHINE 1
MACHINE 2

(3)

(4)

(10)

13

(11)

6
7

(9)

16

(11)

27

(12)

39

(7)

46

24 (13)

37

(10)

47

(8)

55

(7)

62

Sequence 2 : 3-1-2-6-5-4
JOB
MACHINE 1
MACHINE 2

(3)

(4)

(7)

14

(9)

23

(11)

34 (12)

46

(10)

13

(11)

24 (7)

31

(13)

44

(10)

54

62

(8)

19

Plotting it, well know the amount of idle time for the
machines
Sequence: 3-1-6-5-4-2
M1

M2

idle

Sequence: 3-1-2-6-5-4
M1

M2

idle

2
3

6
1

5
2

4
6

Since both sequences have the same idle time (3) units, we
chose the sequence with the smaller processing time which
is 3-1-2-6-5-4.
20

Example 3:
Problem
Job
M1
M2

1
5
2

2
2
6

3
1
2

4
7
5

5
6
6

6
3
7

7
7
2

8
5
1

## Following the steps for solving an n Jobs, Two

Machines Problem, we find the optimal sequence for the
given figures from the table.
21

Smallest Processing time is 1 for both J3 and J8. Position J3 in the earliest
sequence since it is in M1 and position J8 in the latest since it is in M2.
3 _ _ _ _ _ _ 8
The next smallest processing time is 2 for J1, J2, and J7. It is now possible to
have two sequence for this problem.
3 2 _ _ _ 7 1 8
3 2 _ _ _ 1 7 8

Position J6 as early as possible since it has the next minimum processing time.
3 2 6 _ _ 7 1 8
3 2 6 _ _ 1 7 8
The next job to be scheduled is J4 since it has 5 as the next lowest processing
time from M2. Position J4 as latest as possible then, the last slot will be
occupied by J5.
3 2 6 5 4 7 1 8
Sequence:
3 2 6 5 4 1 7 8

22

## N Jobs, Three Machine

Using Johnsons Algorithm
Johnsons Rule cannot be extended to n machines or facilities.
However, it can be extended to a three-machine flowshop provided the
second machine is not a bottleneck machine. For a machine not to be
bottleneck it should not delay any job; in other words, as the job
released from the first machine, it should immediately be processed in
the second machine. In other words, it should satisfy at least one of
the following conditions:
If minj {tj1} maxj {tj2} or
If minj {tj3} maxj {tj2}
Before we can apply the Johnsons Rule by developing two factors
for each job i.
Ai = Pi1 + Pi2 and Bi = Pi2 + Pi3
Then apply the procedure the same as in two-machine problem,
23
but treat factor Ai as machine 1 time and factor Bi as machine 2 time.

24

## Using Johnsons Algorithm

EXAMPLE 1:
The data are the same as in the previous two-machine
problem but now suppose the grinding and polishing
operations are separated in machine 2, a grinder, and a
machine 3, a polisher. The processing times are given. The
associated Ai and Bi factors are calculated:
Job Milling Time

Grinding
Processing Time

Polishing
Processing Time

1
2

15
8

2
6

1
14

18

4
5
6

25
17
22

5
10
10

5
10
20

25

Ai and Bi factors
are found by
processing time
Milling and
Grinding and the
processing time
for Grinding and
Polishing
respectively.

Job

Ai = Pi1 + Pi2

Bi = Pi2 + Pi3

17

14

20

20

30

10

27

20

32

30

26

## Apply the Johnsons Rule to get the

sequence results.

Iteration 1

Iteration 2
Iteration 3

Iteration 4

Iteration 5

Iteration 6

27

SEQUENCE: 2-6-5-4-3-1
M1

0(2/8)

8(6/22)

30(5/17)

47(4/25)

72(3/18)

90(1/15)

105
M2

107

M3

108

## Note the times on machine 3. The first number is when

machine 3 completed processing on job j-1 and the next
number is when job j is available for processing on machine
3. For example, 60/57 in front of job5 on machine 3
indicates that the previous job(6) is completed time 60 and
job5 is released by machine 2 at time 57. Thus job5 has to
wait for the machine for 3 time units. According to all
convention, if the first number is greater that the second
number, the job is waiting on the machine, and if the second
28 on
number is larger than the first, the machine is waiting
the job (machine is idle).

Machine k idle time= (Ci-1, k- Ci, k-1) for Ci-1, k-Ci, k-1 < 0
Total waiting time on m/c k= Ci-1, 1- Ci, k-1 for Ci-1,1- Ci,k-1 0

## For example, machine 2 idle time is

(30-14) + (47-40) + (72-57) + (90-77) + (105-92) = 64,
and the total waiting of jobs on machine 2 is zero.
Machine 2 is thus not a bottleneck machine, and the
sequence developed by applying the modified Johnsons
rule is optimum.
M2

0/8(2/6)

14/30(6/10)

40/47(5/10)

57/72(4/5)

77/90(3/2)

92/105(1/2)
107
29

## As an aid to understanding, the starting and

completion times for each job on its machine are displayed
in table 1.3. The table is constructed by listing first the
sequence on each job processing time on its machine. For
machine 1, because the machine is never idle, the
completion time of any job is a just cumulative time up to
and including that job processing times. For example, job 6
is available for processing on machine 2 at time 30 and the
machine is available for the next job (after job 2) at time
14. The greater of these two numbers is when job6 can
start on machine 2. In short, compare the completion time
for the job in the previous machine (same row, previous
column) with availability time for the present machine
(next column, previous row) and choose the larger of two
number as the starting time for the job. It is left as an
exercise to compare the numbers in table 1.3 with the
numbers shown on each machine sequence display and to
develop a similar table for the two-machine example.
30

Table 1.3

Machine 1

Machine 2

Machine 3

Job
Sequence

Processing

Complete

Processing

Complete

Processing

Complete

14

14

28

22

30

10

40

20

60

17

47

10

57

10

70

25

72

77

82

18

90

92

95

15

105

107

108
31

Example 2:
Find the optimal sequence for the following six jobs on M1, M2, and M3.

Job Number

## Machine 1 Machine 2 Machine 3

Processing Processing Processing

32

SOLUTION:
First, we must check if it satisfies at least one of the conditions:
minj {tj1} maxj {tj2} or minj {tj3} maxj {tj2}.

## minj {tj1} maxj {tj2}

44
Since one of the two conditions is satisfied, we can apply Johnsons algorithm.

Job

Machine

12

Machine 23

5+3 = 8

3+9 = 12

7+2 = 9

2+5 = 7

4+3 = 7

3+7 = 10

8+4 = 12

4+3 = 7

6+2 = 8

2+2 = 4

7+0 = 7

0+8 = 8

33

## Upon applying Johnsons Algorithm, it is

found out that the optimal sequences are:
3-6-1-2-4-5
3-6-1-4-2-5

6-3-1-2-4-5
6-3-1-4-2-5

34

Sequence: 3-6-1-2-4-5
3
6

(5)16

(7)23

(8)31

M1 0(4)4

(7)11

M2 4(3)7/11

## (0)11/16 (3)19/23 (2)25/31 (4)35/37 (2)39

M3 7(7)14/16 (8)24

(9)33

(5)38

(3)41

(6)37

(2)43

Sequence: 3-6-1-4-2-5
3

M1 0(4)4

(7)11

(5)16

(8)24

(7)31

M2 4(3)7/11

## (0)11/16 (3)19/23 (4)27/31 (2)35/37 (2)39

M3 7(7)14/16 (8)24

(9)33

(3)36

(5)41

5
(6)37

(2)43
35

Sequence: 6-3-1-2-4-5
6

M1

0(7)7

(4)11

(5)16

(7)23

(8)31

M2

7(0)7/11

## (3)14/16 (3)19/23 (2)25/31 (4)35/37 (2)39

M3

7(8)15/16 (7)23

Sequence: 6-3-1-4-2-5
6
3

(9)32

(5)37

(3)40

(5)16

(8)24

(7)31

5
(6)37

(2)42

M1

0(7)7

(4)11

M2

7(0)7/11

## (3)14/16 (3)19/23 (4)27/31 (2)35/37 (2)39

M3

7(8)15/16 (7)23

(9)32

(3)35

(5)40

(6)37

(2)4236

We choose between
Sequence 6-3-1-2-4-5 and 6-3-1-4-2-5
m1

m2
m3

3
6

2
3

4
1

5
2

4 5

37

## EXAMPLE 3: Using the following data on the

three-machine processing time
requirements of seven jobs, develop the
best sequence to minimize the makespan.
Job Number

## Machine 1 Machine 2 Machine 3

Processing Processing Processing

12

15

18

10

23

12

26

14

11

19

10

22

38

## We combine the processing time for Machine 1 and

Machine 2 for M12 and Machine 2 and Machine 3 for
M23

Job

M12

M23

12+6 = 18

6+9 = 15

15+7 = 22

7+18 = 25

7+4 = 11

4+10 = 14

23+12 = 35

12+26 = 38

14+7 = 21

7+11 = 18

19+10 = 29

10+22 = 32

6+3 = 9

3+3 = 6
39

## By applying Johnsons Rule, we arrive with the sequence 3-2-6-4-5-1-7.

JOB

M1

0(7)7

(15)22

(19)41

(23)64

(14)78

(12)90

(6)96

M2

7(4)11/22

(7) 29/41

(10)51/64

(12)76/78

(7)85/90

(6) 96

(3)99

M3

11(10)21/29 (18)47/51

(22)73/76

(26)102

(11)113

(9)122

(3)125

40

## Using Branch and Bound Algoritm

The branch and bound algorithm can be used when the
conditions in equations min ti1 max t12 (i=1,2,3.n) and min ti3
max ti2 (i=1,2,3.n) are not satisfied and an optimal sequence
must be determined. Ignall and Scharge developed a branch and
bound algorithm for the general three-machine flow shop problem.
In this algorithm, the problem is represented by a tree structure in
which each node is partial sequence. To determine which partial
sequence we would branch from, we compute the lower bound on
the makespan for all nodes, that is, the lower bounds on all partial
sequences. The process is continued until the sequences with the
least lower bound are found. The lower bound on the makespan for
all nodes is estimated as follows:
41

## Consider n jobs (1,2,3n) and each job is to be processed on three

machines, M1, M2, M3, in their respective order. The lower bound on the
makespan for all jobs can be one of the following:
(1)

## In other words, the last job cannot start on M3 until it is completed on

M2, and it cannot start until all jobs are completed on M1.

(2)

## L2 = ti,M1 + i=1n ti,M2 + tn,M3

Equation (2) states that job n cannot start M3 until all jobs are completed
in M2. Also, note of the jobs that can starts on M2 until job 1 is completed on M1.
(3)

## L3 = ti,M2 + i=1n ti,M3

Which implies that none of the jobs can be processed on M3 until job 1 is
completed on M1 and M2.
42

## We redefine the lower bounds so as to distinguish between the assigned

and the unassigned jobs in the current solution. Ignall and Scharge developed a
lower bound for the makespan of all nodes emanating from the given node. The
lower bound is determined as follows:
Consider node P1 in a branching three corresponding to sequence Jr, where Jr
contains a particular subset (of size r) of n jobs. We define Time M1 (Jr) and Time
M3 (Jr) as the times at which machine M1, M2 and M3, respectively, complete
processing the last job in the sequence Jr. Then a lower bound on the makespan of
all schedules that begin with the sequence Jr is
time M1 (Jr) + ti1 + min (ti2 + ti3)
LB (Jr) = max time M2 (Jr) + ti2 + min (ti3)
time M3 (Jr) + ti3
where ti1=processing time of job I on machine j (I=1,2,3.n and j=1,2,3)
Jr = set of n-r jobs that have been assigned a position in sequence Jr
43

LB (P) = LB (Jr) = lower bound on the makespan for any nodes that emanates
from node P.

After finding the lower bond on the nodes, we branch from the nodes with the
smallest lower bound, create a new nodes for every job that has not yet been scheduled.
This is done by attaching an unscheduled job to the end of the sequence of the scheduled
jobs. The lower bounds are then computed for every new node by using the equation
above. The process s repeated until a complete schedule is found and has the smallest
lower bound.

44

## N Jobs, Three Machine

Using Branch and Bound Algorithm
EXAMPLE 1.
Consider the four-job, three machine flowshop scheduling problem
given next. Use the branch and bound algorithm to find the sequence that
minimizes the makespan of all jobs.

JOB

M1

M2

M3

1
2
3
4

14
8
10
16

6
11
13
15

15
4
17
5

45

Solution:
We branch from node 0. the lower bound on node 1, 2, 3, and 4 are
computed by using equation on the previous page. To calculate these lower
bounds, we need
TIME M1 (1)=14
TIME M2 (1)=20
TIME M3 (1)=35
TIME M1 (2)=8
TIME M2 (2)=19
TIME M3(2)=23
TIME M1(3)=10
TIME M2(3)=23
TIME M3(3)=40
TIME M1 (4)=16
TIME M2(4)=31
TIME M3(4)=36
0
1

1.
2

1.
3

1.
4

3.
1
3.1.2

3.
2
3.1.4

3.
4
3.4.
1

3.4.
2
46

## The lower bounds are

14 + 34 + 15 = 63
LB (1) = max 20 + 39 + 4 = 63
35 + 26
= 61

63

8 + 40 + 20 = 68
LB (2) = max 19 + 34 + 5 = 58
23 + 37
= 60

68

10 + 38 + 15 = 63
LB (3) = max 23 + 32 + 4 = 59
40 + 24
= 64

64

16 + 32 + 15 = 63
LB (4) = max 31 + 30 + 4 = 65
36 + 36
= 72

72

47

Since LB (1) is the smallest lower bound, we branch from node 1. we need to calculate
the times of sequences (i= 2,3,4) as follows:
Time M1 (12) = time M1 (1) + t21 = 14 + 8 = 22
Time M2 (12) = max {Time M1 (12) + t22, Time M2 (1) + t 22}
= max {22 + 11, 20 + 11} = 33
Time M3 (12) = max {Time M2 (12) + t23, Time M3 (1) + t23}
= max {33 + 4, 35 + 4}= 39
Time M1 (13) = time M1 (1) + t31 = 14 + 10 = 24
Time M2 (13) = max {Time M1 (13) + t32, Time M2 (1) + t32}
= max {24 + 13, 20 + 13}= 37
Time M3 (13) = max {Time M2 (13) + t33, Time M3 (1) + t33}
= max {37 + 17, 35 + 17}= 54

## Time M1 (14) = time M1 (1) + t41 = 14 + 16 = 28

Time M2 (14) = max {Time M1 (14) + t42, Time M2 (1) + t42}
= max {30 + 15, 20 + 15}= 45
Time M3 (14) = max {Time M2 (14) + t43, Time M3 (1) + t43}
= max {45 + 15, 35 + 5}= 50

48

## The lower bounds are

22 + 26 + 20 = 68
LB (12) = max 33 + 28 + 5 = 66
39 + 22
= 61

68

24+ 24 + 25 = 63
LB (13) = max 37+ 26 + 4 = 67
23 + 37
= 63

67

30 + 18 + 15 = 63
LB (14) = max 45 + 24 + 4 = 73
54 + 9
= 71

73

49

Upon comparing all nodes at this stage, we find that LB (3) = 64 is the smallest lower
bound; therefore we branch from node 3.
Time M1 (31) = time M1 (3) + t11 = 10 + 14 = 24
Time M2 (31) = max {Time M1 (31) + t12, Time M2 (3) + t 12}
= max {24 + 6, 23 + 6} = 30
Time M3 (31) = max {Time M2 (31) + t13, Time M3 (3) + t13}
= max {30 + 15, 40 + 15}= 55
Time M1 (32) = time M1 (3) + t21 = 10 + 8 = 18
Time M2 (32) = max {Time M1 (32) + t22, Time M2 (3) + t22}
= max {18 + 11, 23 + 11}= 34
Time M3 (32) = max {Time M2 (32) + t23, Time M3 (3) + t23}
= max {34 + 4, 40 + 4}= 44
Time M1 (34) = time M1 (3) + t41 = 10 + 16 = 26
Time M2 (34) = max {Time M1 (34) + t42, Time M2 (3) + t42}
= max {26 + 15, 23 + 15}= 41
Time M3 (34) = max {Time M2 (34) + t43, Time M3 (3) + t43}
= max {41 + 5, 40 + 5}= 46
50

We now compute for the lower bounds for the sequence 31, 32 and 34.
22 + 24 + 15 = 63
LB (31) = max 30 + 26 + 4 = 60
64
55 + 9
= 64
18+ 30 + 20 = 68
LB (32) = max 34+ 21 + 5 = 60
44 + 20
= 64

64

26 + 22 + 15 = 63
LB (14) = max 41 + 17 + 4 = 62
46 + 49
= 65

65

51

## The smallest LB is LB (31) = 64. therefore, we branch from node 31.

Time M1 (312) = time M1 (31) + t21 = 24 + 8 = 32
Time M2 (312) = max {Time M1 (312) + t22, Time M2 (31) + t 22}
= max {32 + 11, 30 + 11} = 43
Time M3 (312) = max {Time M2 (312) + t33, Time M3 (31) + t33}
= max {43 + 4, 55 + 4}= 59

## Time M1 (314) = time M1 (31) + t41 = 24 +16 = 40

Time M2 (314) = max {Time M1 (314) + t42, Time M2 (31) + t42}
= max {40 + 15, 30 + 15}= 55
Time M3 (314) = max {Time M2 (314) + t43, Time M3 (31) + t43}
= max {55 + 5, 55 + 5}= 60

52

## The lower bounds are:

32 + 16 + 20 = 68
LB (312) = max 43 + 15 + 5 = 63
59 + 5
= 64

68

40+ 8 + 15 = 63
LB (314) = max 55+ 11 + 4 = 70
60 + 4
= 64

70

## As LB (34) = 65 is the smallest LB, we branch from node (34) as follows:

Time M1 (341) = time M1 (34) + t11 = 26 + 14 = 40
Time M2 (341) = max {Time M1 (341) + t12, Time M2 (34) + t 12}
= max {40 + 6, 41 + 6} = 47
Time M3 (341) = max {Time M2 (341) + t13, Time M3 (34) + t13}
= max {47 + 15, 46 + 15}= 62
Time M1 (342) = time M1 (34) + t21 = 26 +18 = 34
Time M2 (342) = max {Time M1 (342) + t22, Time M2 (34) + t22}
= max {34 + 11, 41 + 11}= 52
Time M3 (342) = max {Time M2 (342) + t23, Time M3 (34) + t23}
= max {52 + 5, 46 + 4}= 56
53

## The lower bounds are:

40 + 8 + 15 = 63
LB (31) = max 47 + 11 + 4 = 62
62 + 4
= 66

66

34+ 14 + 21 = 69
LB (32) = max 52+ 6 + 15 = 60
56 + 15
= 71

73

The smallest lower bound on the tree, as shown is LB (341) = 66. We have an optimal
sequence 3 4 1 2 with a makespan of 66 units of time.

54

Problem

55

## Heuristic Scheduling Techniques

for m machines
1. Minimize Machine Idle Time Method
2. Palmers Method
3. The NAWAZ Heuristics
4. The Campbell, Dudek, and Smith (CDS)
procedure

56

## Minimize Machine Idle Time Method

The basic principle is to schedule the jobs in such a way as to minimize the
idle times of the machines.
On table 1, machines are listed on the columns and jobs in rows. Job i can
start on the machine k only if 2 conditions are satisfied:
1. Job is available (it has been proceed on the previous machine, machine
k 1)
2. Machine k is available (machine has completed work on the previous
job.)
The time when job i is available is shown by the row i entry for
completion time of job in previous machine (column k 1). Wherein k is
available given by the completion time for previous job 9job i 1), the
completion time entry for job i 1 in column k.
Thus, the idle time of machine k is given by the completion time of job
i on the previous machine (row i, column k 1) minus completion time entry
for job i 1 in column k.
57

STEPS:
1. Find the sum of processing time for each job. Arrange the jobs in the
ascending order of their sum. Schedule the job with min. sum in the first
position. Calculate its completion time on each machine.
2. Select the three jobs, if available (the number has chosen somewhat
arbitrarily to minimize calculations), with the next min. sums of processing
times and list them in iteration table. List the last job confirmed in the
schedule developed and its completion times. Calculate the completion
times of each one of the testing jobs as if each job is the next one to be
scheduled.
3. Calculate the total machine idle time for each test jobs. The idle time on
machine only if job completion time (row i, column k 1) is greater than
machine free time (completion time for LJ column k). The value of the
machine idle time is the difference in these two values.
4. The next job to be put in sequence is the one with minimum total idle time.
If there is a tie, each schedule with tied jobs may be evaluated.
5. If all jobs are scheduled, stop. If not calculate the completion times for the
job added to the completion times for the job added to the schedule in step
4 and go back to step 2.
58

Example:
Flowshop with four machines and six jobs
Table 1.1 Processing
Times of each job on
Each machine and
Their sum

MACHINE
JOB

Pij

25

45

52

40

162

41

22

66

136

41

55

33

21

150

74

12

24

48

158

15

72

52

146

6
12
14
22
32
80
Processing Times of each job on each machine and their sum arranged in ascending job order.
SEQUENCE: 6 2 5 3 4- 1
First job sequence is Job 6 due to its minimum sum in first position. The next step is to
determine which job should follow job 6 in iteration table. List the last confirmed job in Sequence
and determine the next 3 jobs from ascending order as the test jobs.

59

JOB

CONFIRMED
6
12 12

MACHINE
2
3

## TOTAL MACHINE IDLE

TIME (if Ci, k - 1 > (r, k)

14 26

22 48 32 80

TEST
JOBS

7 19

41 67

7 19

## (53 - 26) + (108 - 48) + (141 - 80) = 148

Two entries for each machine the processing time entry and jobs
completion for the second entry completion time on each machine.
Each test job is compared with the last confirmed job r (job 6) to
determine its completion times. For the job 2s completion time on
machine 3 is calculated as max (67, 48) + 22 = 89. Similarly,
completion time for jobs on machine 3 is max (108, 48) + 33 = 141. The
idle time of each machine as a job is sequenced is calculated and
added to get total idle time.
60

Since job 2 has the minimum machine idle time it is scheduled next and job
2 becomes confirmed job.
SEQ. 6 2 __ __ __ __
SEARCH FOR POSITION 3 MACHINE:
JOB

CONFIRMED

## (if Ci, k - 1 > (r, k )

19

67

89

155

TEST
JOBS
213 161 - 155 = 6 min.idle time

26 15

82 72 161 52

41

60 55

122 33 155 21

176 122 - 89 = 33

74

93 12

105 24 129 48

## 203 (93 - 67) + (105 - 89) = 42

SEQ: 6 2 5 __ __ __

61

Position 4:
MACHINE
JOB

TOTAL MACHINE

26

82

161

213

IDLE TIME

CONFIRMED
5
TEST JOBS
3
4
1

74 100

12

24

48

## 25 51 45 127 52 213 40 253

0
> 0, no need to calculate
0

Jobs 3 and 1 have zero machines idle time and should be tried in 4th position. We have
not continued calculation for job 4 because on 1st machine alone has the idle time of
(100 82) = 18, greater than zero machine idle time. Job 1 was placed in position 4.
Neither job 3 or 4 may be in position 5 with other in position 6.
62

POSITION 5:

JOB

51

IDLE
TIME

TEST JOB
3

41

92

55

182

33

246

21

274

74

125

12

139

24

237

48

301

POSITION 6:

MACHINE
JOB

41

92

55

182

33

246

21

274

74

166

12

194

24

270

48

322

63

MACHINE
JOB

74

125

139

24

24

137

48 301

41

166

55

122

33

270

21 322

## Placing Job 4 in P5 and Job 3 in P6.

SEQUENCE: 6 - 2 - 5 - 1 - 3 4 and having makespan of 322.
6-2- 5- 143

64

PALMERS METHOD
Palmer's (1965) suggested developing the slope index for each job
given by:
Sj = (m 1) Pjm + (m 3) Pj (m 1) + (m 5) Pj (m 2) + . . . . . .- (m 5) Pj3 (m 3) Pj2 (m 1) Pj1

## Then constructing the seq. based on descending order of the

magnitude of Sj. The idea is to progress by scheduling jobs needing
short times first and continuing in terms of magnitude of times, with
longest job being scheduled last.
In having 4 machines, m = 4 wherein: Sj = 3 Pj4 + Pj3 Pj2 3Pj1

JOB
1
2
3
4
5
6

1
25
7
41
74
7
12

MACHINE
2
3
45
52
41
22
55
33
12
24
15
72
14
22

4
40
66
21
48
52
32

65

## Substitute processing time values:

S1 = 52
S4 = - 66
S2 = 158
S5 = 192
S3 = - 82
S6 = 68
Arrange the sequence of the ob scheduled in descending order.
Sequence: 5 - 2 - 6 - 1 - 4 - 3
Sum up all its values by having a total makespan of 353.

66

NAWAZ HEURISTIC
It is describes a heuristic that is easy to construct and gives good results. In
constructing no. of schedules needs evaluation and considered be a time consuming.
STEPS:
1. Calculate the sum of processing times for each job. Arrange the jobs in the
descending order of their sums. Denote the job order as a1, a2, a3, ,am
2. Select the first two jobs from the job list. Determine the best minimum makespan of
two sequences. First by placing job a, in the first place and a 2 in the second place
and then reversing order. Do not change the relative positions of two jobs with
respects to each other in remaining steps of algorithm.
3. Pick the job that is in the next position in the job list and find the best sequence
placing it in all possible position in partial sequence developed. Make sure not to
change the relative position of a job that are already assigned in sequence.
4. Repeats step 3 until all jobs are placed in sequence.

67

Table 2:
Jobs

pij

25

45

52

40

162

41

22

66

136

41

55

33

21

150

74

12

24

48

158

15

72

52

146

12

14

22

32

80

## List jobs arrange in descending order of the sums of processing time

68

Sequence: 1 4 3 5 2 6
Select first two jobs, which is job 1 and job 4. The completion time for sequence 1-4 is 210
and for sequence 4-1 is 236. The best relative positions of these two jobs will remain as
job 1 ahead of job 4. Next job 3 is added to the sequence developed. The three possible
partials sequences that can be formed now are 3 1 4, 1 3 4 and 1 4 3. The best
orders of jobs are 1 and 4, already found remains and job 3 has been added from left to
right. The makespan added for each partial sequence are 281, 231 and 249 respectively.
The best sequence is 1 3 4.
Based on the job list, job 5 is the next one to be added to the partial sequence. The
sequences to examine are 5 1 3 4, 1 5 3 4, 1 3 5 4 and 1 3 4 5. The
partial makespan times the 255, 315, and 306 respectively. The partial sequence 5 1 3
4 with makespan of 255 is selected at this stage.
The next job to be add is job 2 sequences to examine are 2 5 1 3 4, 5 2 1 3
4, 5 1 2 3 4, 5 1 3 2 4 and 5 1 3 4 2 with 304, 320, 321, 321 and 321
as their respective makespan. Partial sequence are 2 5 1 3 4 with makespan value
of 304 be selected. The last job to add job 6 sequences are 6 2 5 1 3 4, 2 6 5
1 3 4, 2 5 6 1 3 4, 2 5 1 6 3 4, 2 5 1 3 6 4 and 2 5 1
3 4 6 with makespan of 322, 332, 336, 336, 336 and 336. S

## Sequence 6 2 5 1 3 4 is the best sequence with makespan of 332.

69

Job

12/12

14/26

22/48

32/80

7/19

41/67

22/89

66/155

7/26

15/82

72/161

52/213

25/51

45/127

52/213

40/253

41/92

55/182

33/246

21/274

74/166

12/194

24/270

48/322

70

CAMPBELL ALGORITHM
Campbell developed algorithm that generates a series of sums
for each job similar to the two sets of sums generated in the n-job,
three-machine problem (M1 and M2). With M machines, M-1 two
column sets of job times can be developed and can then solved
using Johnsons Algorithm for n jobs, two machines.
Example 1:
Find the best sequence for four jobs to be processed on four
machines by using CAMPBELL ALGORITHM.
Job

Machine 1

Machine 2

Machine 3

Machine 4

1
71

Solution:
Developed the first set of machines or alternative:
Job

M1

M2

## Applying Johnsons Algorithm, we can obtain the optimal sequence

2-1-3-4. The second set of machines to be constructed is M1,2 and
M3,4.
Job

M1,2
ti1 + ti2

M3,4
ti3 + ti4

11

11

14

14

5
72

Again, apply Johnsons Algorithm to obtain the optimal sequence 12-3-4. The final set of machines is M1,2,3 and M2,3,4.
Job

M1,2,3
ti1 + ti2 + ti3

M3,4
ti2 + ti3 + ti4

15

15

14

15

19

13

18

13

## From these results, we find that there are two possible

sequences: 1-2-3-4 and 2-1-3-4. then compute the makespan of
these two alternatives, and select the schedule that minimizes the
makespan.
73

Sequence: 1-2-3-4
JOB

M1

0(5) 5

(4)9

(9) 18

(6) 24

M2

5 (6) 11

(7) 18

(5) 13/24

(8)32

M3

11 (4) 15/18

(3) 21/23

(5) 28/32

(4) 36

M4

(15) 5 20/21

(5) 26/ 28

(3) 31/36

(10) 37

Sequence: 2-1-3-4

JOB

M1

0 (4) 4

(5) 9

(9) 18

(6)24

M2

4 (7) 11

(6) 17/18

(5) 23/24

(8) 32

M3

11 (30 14/17

(4) 21/23

(5) 28/32

(4) 36

M4

15 (5) 19/21

(5) 26/28

(3) 31/36

(10) 37

Therefore, since the 2 sequence has the same makespan, we can choose both sequence.
74

Example 2:
Find the best sequence for four jobs to be processed on four machines by
using Campbells Algorithm.

JOB

Machine 1

Machine 2

Machine 3

Machine 4

SOLUTION:
Develop the first set of machines as follows:

JOB

Machine 1

Machine 2

Apply Johnsons Algorithm, we obtain the optimal sequence 4-3-1-2. the second
75
set of machine to be constructed is M1,2 and M3,4.

JOB

10

13

17

12

11

15

JOB

10

13

17

12

11

15

76

## Compute the makespan of the alternatives

For sequence 4-3-1-2
JOB

M1

0 (4) 4

(5) 9

(6) 15

(8) 23

M2

4 (3) 7/9

(7) 16

(4) 20/23

(9) 32

M3

7 (6) 13/16

(3) 19/20

(6) 26/32

(5) 37

M4

13 (9) 22

(8) 30

(7) 37

(4) 41

## For sequence 4-1-3-2

JOB

M1

0 (4) 4

(6) 10

(5) 15

(8) 23

M2

4 (3) 7/10

(4) 14/15

(7) 22

(9) 31

M3

7 (6) 13/14

(6) 20/22

(3) 25/31

(5) 36

M4

13 (9) 22

(7) 29

(8) 37

(4) 41

Therefore, since the 2 sequence has the same makespan, we can choose
both sequence

77

Example 3:
Find the best sequence for four jobs to be processed on five
machines by using Campbells Algorithm.
JOB

## Machine 1 Machine 2 Machine 3 Machine 4

Machine 5

Solution:
Develop the first alternative
JOB

14

24

15

11

13

12

78

## Applying Johnsons Algorithm, we obtain the optimal sequence 3-2-1-4.

The second set of machines to be constructed is M1,2,3,4 and
M2,3,4,5.
JOB

14

24

15

11

13

12

79

## Compute for the makespan of thee alternatives

For sequence 3-2-1-4
JOB

M1

0 (4)4

(2) 6

(3) 9

(5) 14

M2

4 (2) 6

(8) 14

(5) 19

94) 23

M3

6 (5) 11/14

(4) 18/19

(4) 23

(3) 26

M4

11 (3) 16/18

(5) 23

(2) 25/26

(1) 29

M5

16 (3) 19/23

(6) 29

93) 32

(1) 33

JOB

M1

0 (4)4

(4) 6

(3) 9

(5) 14

M2

2 (8) 10

(2) 12

(5) 17

(4) 21

M3

10 (4) 14

(5)19

(4) 23

(3) 26

M4

14 (5) 19

(5)24

(2) 26

(3) 29

M5

19 (6) 25

(3) 28

(3) 31

(1)32

makespan of 32.

80