A heuristic for no-wait flow shop scheduling - Semantic Scholar

18 downloads 0 Views 228KB Size Report
Apr 5, 2013 - Abstract This paper presents an efficient heuristic method to minimize total flow time in no-wait flow shop scheduling. It is based on the ...
Int J Adv Manuf Technol (2013) 68:1327–1338 DOI 10.1007/s00170-013-4924-y

ORIGINAL ARTICLE

A heuristic for no-wait flow shop scheduling Sagar U. Sapkal & Dipak Laha

Received: 19 February 2012 / Accepted: 14 March 2013 / Published online: 5 April 2013 # Springer-Verlag London 2013

Abstract This paper presents an efficient heuristic method to minimize total flow time in no-wait flow shop scheduling. It is based on the assumption that the priority of a job in the initial sequence is given by the sum of its processing times on the bottleneck machines. Empirical results demonstrate the superiority of the proposed method over the best-known heuristics in the literature, while remaining the same complexity order of O(n2). Keywords Scheduling . Heuristics . No-wait flow shops . Total flow time . Optimization

1 Introduction The flow shop scheduling problem has long received the attention of researchers due to its complexity and its practical importance. In conventional flow shop scheduling, each job is processed on the same order of machines, leading to its waiting time and idle times of machines. However, in many industries and real-life situations, jobs require processing with some additional constraints due to technological restrictions of the production process. One such important constraint includes continuous processing of a given job through the machines as per the technological requirement of the process, resulting in no-wait or continuous flow shop scheduling problems [1–3]. The no-wait flow shop environment arises due to the processing characteristics of a product where each process follows the previous one immediately. A variety of applications of no-wait flow shops can be found in many industries, like steel, metal, plastic, chemical, S. U. Sapkal : D. Laha (*) Mechanical Engineering Department, Jadavpur University, Kolkata 700032, India e-mail: [email protected] S. U. Sapkal e-mail: [email protected]

pharmaceutical, concrete ware production, and foodprocessing industries [4]. For example, in steel factories, the heated metal continuously goes through a sequence of operations before it is allowed to cool in order to prevent the defects in the composition of the steel. Another example is processing of a plastic product that requires a series of processes to immediately follow one another in order to prevent degradation [5]. Similarly, in the food-processing industry, the canning operation must immediately follow the cooking operation to ensure freshness [6]. Apart from the traditional industries mentioned above, additional applications of the nowait flow shops can be found in modern manufacturing environments, such as just-in-time, flexible manufacturing systems, and robotic cells where jobs are continuously processed with no in-process waiting. Also, no-wait flow shops are widely used in the electronic industry, particularly in PCB and semiconductor manufacturing [4, 5, 7–9]. The no-wait flow shop scheduling problems have been proved to be NP-complete [10]. Therefore, approximation techniques or heuristics due to their polynomial time complexity are considered as the suitable optimization techniques to solve these scheduling problems, especially large-sized scheduling problems that frequently appear in many real-life situations. Hall and Sriskandarajah [11] provide a comprehensive review of the methods and applications of the no-wait flow shop problem. Heuristics for the no-wait flow shop scheduling can be broadly divided into two categories based on their complexity: constructive heuristics and metaheuristics. An efficient constructive heuristic usually should have the complexity of O(n2) or at most O(n3) whereas the complexity of a metaheuristic is usually much higher than required by the constructive ones and also difficult to compute the complexity. These problems are mostly studied considering two optimization (minimization) criteria such as makespan and total flow time. Noteworthy constructive heuristics for the makespan minimization problems have been studied by Wismer [1], Reddi and Ramamoorthy [2], Bonney and Gundry [12], King and Spachis [13], Rajendran [14],

1328

Gangadharan and Rajendran [15], Framinan and Nagano [4], and Laha and Chakraborty [16]. Similarly, important constructive heuristics with the total flow time criterion have been developed by Rajendran and Chaudhuri [17], Bertolissi [18], Aldowaisan and Allahverdi [19], and Framinan et al. [6]. On the other hand, metaheuristics with the makespan criterion include simulated annealing and genetic algorithm [20], tabu search [21], and particle swarm optimization [22–24]. Also, metaheuristics with the total flow time criterion comprise genetic algorithm [25], simulated annealing [26], artificial immune system [27], and particle swarm optimization [23]. It reveals from the scheduling literature that some of the constructive heuristics take very negligible computational times even for large problem sizes while the rest of the constructive heuristics require much higher computational times especially for solving large problems. In the same way, for the total flow time minimization scheduling problem under consideration, the heuristics of Rajendran and Chaudhuri [17] and Bertolissi [18] due to their negligible computational times can be placed in one group, whereas the heuristics of Aldowaisan and Allahverdi [19], and Framinan et al. [6] can be enlisted to the other group. The heuristics of Aldowaisan and Allahverdi [19] and Framinan et al. [6] perform significantly better than the heuristics of Rajendran and Chaudhuri [17], and Bertolissi [18]. However, these heuristics (as reported in [6]) require much higher computational times 10–35 times (for n=100) compared to that of the Bertolissi heuristic. Therefore, in the paper, these heuristics are not considered for comparison of the heuristics in the total flow time minimization no-wait flow shop scheduling problem. Rajendran and Chaudhuri [17] developed two constructive heuristics based on two heuristic preference relations as the basis for selecting the seed sequence of jobs. The seed sequence of jobs thus obtained is subsequently improved further by applying the job insertion method of Nawaz– Enscore–Ham (NEH) [28] in the remaining parts of the heuristics. They have shown that their heuristics, especially heuristic 1 performs much better than those of Bonney and Gundry [12], and King and Spachis [13]. Bertolissi [18] proposed a heuristic firstly calculating the minimum apparent flow time of each pair of jobs and then finding the number of times (here, marks) of the starting jobs of the pairs as a basis for selecting the seed sequence of jobs. The seed sequence thus obtained is improved further using the job insertion procedure in the same manner as done by Rajendran and Chaudhuri [17]. It has been shown through computational experimentation that the heuristic of Bertolissi performs better than those given the heuristics of Rajendran and Chaudhuri [17], and Bonney and Gundry [12] for both small- and large-sized problems. In the present paper, we propose a constructive heuristic for minimizing total flow time in no-wait flow shop scheduling problems. It is based on the principle that the priority of a job in

Int J Adv Manuf Technol (2013) 68:1327–1338

the seed sequence is given by the sum of its processing times on the bottleneck machines. Using this seed sequence, the final sequence is generated by applying the principle of job insertion algorithm [28]. We experimentally demonstrate that the proposed method significantly performs well compared to the effective existing constructive heuristics, while keeping the same time complexity. The remainder of this paper is organized as follows: Section 2 presents the description of the no-wait flow shop scheduling problem; Section 3 briefly describes the bestknown existing heuristics; the proposed method is described in Section 4; Section 5 presents the computational results where comparisons with the performance of the existing heuristics are provided; finally, concluding remarks are drawn in Section 6.

2 The problem description

Nomenclature n m p(i, j) σ={σ1, σ2, …, σn} d(i, k)

p(σi, j) d(σi-1, σi)

C(σi)

TFT

Number of jobs to be scheduled Number of machines Processing time of job i on machine j (1≤i≤n, 1≤j≤m) Sequence of n jobs to be processed on m machines The minimum delay on the first machine between the start of job i and the start of job k when job k directly follows job i (1≤i≤n, 1≤k≤n, i≠k) Processing time on machine j of the job in the ith position of a given sequence Minimum delay on the first machine between the start of two consecutive jobs found in the (i–1)th and ith position of the sequence Completion time of the job in the ith position of a given sequence Total flow time of the sequence of n jobs in the no-wait flow shop scheduling

Given the processing time p(i, j) of job i on machine j in the no-wait flow shop scheduling, each of n jobs is processed on m machines in the same technological order without preemption and interruption on or between any two consecutive machines. The problem is to determine a sequence of n jobs that minimizes the total flow time criterion.

Int J Adv Manuf Technol (2013) 68:1327–1338

1329

For i=1, 2, …, n and j=1, 2, …, m C ð σ1 Þ ¼

m X

Bertolissi [18]. A brief discussion of the main contribution of these heuristics is given below.

pð σ 1 ; j Þ

ð1Þ

j¼1

m X

C ð σ2 Þ ¼ d ð σ1 ; σ2 Þ þ

ðσ2 ; jÞ

ð2Þ

j¼1

C ð σi Þ ¼

Xi k¼2

n X

d ðσk1 ; σk Þ þ

C ð σi Þ ¼

n X

i¼1

Xm j¼1

pð σ i ; j Þ

ðn þ 1  iÞd ðσi1 ; σi Þ þ

i¼2

ð3Þ

n X m X

pði; jÞ

i¼1 j¼1

ð4Þ The equation for calculating the delay matrix d(i, k) values as given by Bertolissi [18] is as follows: d ði; k Þ ¼ pði; 1Þ þ max

r X h¼2

The procedural steps of the heuristics of Rajendran– Chaudhuri are described below: 3.1.1 Rajendran–Chaudhuri heuristic 1

Therefore, TFT of the sequence of n jobs in the no-wait flow shop scheduling is given by TFT ¼

3.1 Rajendran–Chaudhuri heuristics [17]

pði; hÞ 

r1 X

! pðk; hÞ; 0

with 2  r  m

h¼1

ð5Þ Where, the delay matrix of n×n provides all the d(i, k) values between the start of any two consecutive jobs i and k (i≠k) in a given sequence of n jobs to determine the objective function value. We consider the following example as illustration. Three jobs (n=3) are processed on three machines (m=3) in the no-wait flow shop with the processing time matrix (P) of p(i, j) values as: 2 3 13 20 22 P ¼ 4 21 7 17 5 14 12 9 Using P matrix and Eq. (4), the delay matrix (D) of the d(i, k) values can be obtained as: 2

3  27 29 D ¼ 4 28  28 5 15 14  For example, TFT for the job sequence {3, 1, 2} using Eqs. (4) and (5) is computed as TFT=2d(3, 1)+d(1, 2)+135=192.

3 The existing heuristic algorithms In the present paper, we will need to consider following three popular heuristics for comparative analysis: Two heuristics of Rajendran–Chaudhuri [17] and the heuristic of

Step 1 Sort the jobs in ascending order of the value of Ai P where Ai ¼ m j¼2 ðm  j þ 1Þpði; jÞ. If there is tie, selectPthe job with the least value of Bi, where Bi ¼ m j¼1 pði; jÞ Step 2 Set k=1. Select first job from the sorted list and insert it in the first position of the partial sequence σ. Call it as current sequence σ. Step 3 Increment k, k=k +1. Select the kth job from the sorted array of step 1 and insert it in the r possible positions of the current sequence σ, where k/2≤r≤ k. Select the best one among r sequences with the P minimum value of ki¼2 ðk þ 1  iÞd ðσi1 ; σi Þ and set it as current sequence σ. Step 4 If k=n, go to step 5, else go to step 3. Step 5 The sequence σ is the final solution of the heuristic 1 of Rajendran–Chaudhuri. 3.1.2 Rajendran–Chaudhuri heuristic 2 The heuristic 2 of Rajendran–Chaudhuri follows the same procedure as the heuristic 1 of Rajendran–Chaudhuri except that it uses Bi as the sorting criterion for the array of jobs in step 1 and Ai for breaking the ties. We consider the complexity of a heuristic in terms of the total number of function calls the heuristic uses to compute total flow time for partial and complete sequences. The total number of sequences generated by either of the heuristics of Rajendran and Chaudhuri is Pn   i  equal to i  þ 1 . So its complexity is api¼2 2 proximately O(n2). 3.2 Bertolissi heuristic [18] The heuristic consists of following steps: Step 1 Compute the flow times for each pair of Pjobs i, k by using the equation F ði; k Þ¼2pði; 1Þþ m j¼2 pði; jÞþ Rmðik Þ , where Rm(ik) is recursively computed  as P Rmðik Þ ¼ pðk; mÞ þ max Rm1ðik Þ ; m p ð i; r Þ , and r¼2 R1ðik Þ ¼ pðk; 1Þ Step 2 Compare each pair of flow times (F(i,k) and F(k,i)) and select the smallest one, and mark the starting job of the pair.

1330

Int J Adv Manuf Technol (2013) 68:1327–1338

Table 1 Comparison of the existing heuristics and the proposed method for small problems n

5

m

No. of problem instances

ARPD

Percent optimal solution

Rajendran– Chaudhuri heuristic 1

Rajendran– Chaudhuri heuristic 2

Bertolissi heuristic

Proposed method

Rajendran– Chaudhuri heuristic 1

Rajendran– Chaudhuri heuristic 2

Bertolissi heuristic

Proposed method

5 10 15 20 25 5 10 15 20 25 5 10 15 20 25

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30

0.3128 0.3321 0.0723 0.2428 0.3130 0.6197 0.5572 0.0981 0.3801 0.4129 1.1908 0.8966 0.4666 0.4919 0.7131

0.1871 0.3244 0.0723 0.2869 0.3787 0.2829 0.6438 0.1626 0.4118 0.4770 0.9439 1.1164 0.4250 0.5462 0.4278

0.2928 0.4158 0.0723 0.2428 0.3326 0.6458 0.7408 0.0921 0.3801 0.3490 1.0754 1.0386 0.3247 0.4922 0.5762

0.0961 0.5351 0.0989 0.0548 0.1029 0.2378 0.6733 0.1934 0.2375 0.1904 0.5243 0.7544 0.5092 0.3622 0.4656

70 67 90 80 80 60 50 80 53 63 47 40 60 47 27

70 70 90 80 80 63 50 80 57 63 47 33 57 47 50

73 57 90 80 80 57 47 80 57 70 57 33 63 47 40

80 63 90 93 93 70 57 73 73 83 67 43 53 67 57

5 10 15 20 25 9 5 10 15 20 25 Average

30 30 30 30 30 30 30 30 30 30

1.3081 1.1023 0.4557 0.7732 0.8017 1.6163 1.6193 0.9325 0.9268 1.0029 0.7056

1.1532 1.2855 0.5032 0.6861 0.7768 1.7740 1.4148 0.7503 0.8125 1.1910 0.6814

1.3554 1.1104 0.4167 0.7959 0.6239 1.7903 1.5373 0.5360 0.8442 0.9923 0.6829

0.8796 0.7775 0.5471 0.5238 0.5479 1.1142 1.1608 0.8480 0.5163 0.5411 0.4997

37 23 53 30 27 10 17 27 13 23 47

30 17 50 43 33 10 13 50 23 13 49

43 23 53 30 33 17 17 47 17 27 50

53 47 37 43 33 17 30 23 27 37 56

6

7

8

Step 3 Count the number of marks of each job and order the jobs in decreasing number of marks and use this ordering as the initial sequence of jobs. This initial sequence is then improved further using the job insertion procedure in the same manner as was done by Rajendran and Chaudhuri [17] to obtain the final solution of the heuristic. Similarly, as the Bertolissi heuristic uses the job insertion procedure in the same manner as was done by Rajendran and Chaudhuri, its complexity is also O(n2).

4 Proposed heuristic It is well-known that the shortest processing time (SPT) rule minimizes the mean flow time of a set of jobs processing on single machine, i.e., the optimal sequence of jobs can be obtained by arranging the jobs in the ascending order of their processing times [29, 30]. The SPT rule has also been

shown to be effective in flow shop scheduling [31]. In the present paper, we make similar attempt to generate the initial sequence of jobs based on the bottleneck machines [32, 33] in the no-wait flow shop, which would tend to minimize the overall flow time. The proposed heuristic is based on the assumption that the priority of a job in the sequence is given by the sum of its processing times on the bottleneck machines as a basis for selecting the initial sequence of jobs. The initial sequence of jobs thus generated is then applied to the remaining parts of the heuristic using a new insertion based technique following the principle of job insertion based on the idea of the NEH heuristic [28] which is used for minimizing makespan in permutation flow shops. The proposed heuristic is given as follows: Step 1 Set z = 1. Consider single bottleneck machine among m machines with the largest sum of the processing times of n jobs and determine the sequence of jobs by arranging them in ascending

Int J Adv Manuf Technol (2013) 68:1327–1338

1331

Table 2 Comparison of the existing heuristics and the proposed method for large problems n

10

20

30

40

50

60

70

80

90

m

No. of problem instances

ARPD

Percent best solution

Rajendran– Chaudhuri heuristic 1

Rajendran– Chaudhuri heuristic 2

Bertolissi heuristic

Proposed method

Rajendran– Chaudhuri heuristic 1

Rajendran– Chaudhuri heuristic 2

Bertolissi heuristic

Proposed method

5 10 15 20 25 5 10 15 20 25 5 10 15 20 25

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30

0.7197 0.8485 0.7597 1.0067 0.6091 1.3267 1.1206 1.2141 1.6963 1.0008 1.8091 1.3551 1.7218 1.6684 1.5586

0.6692 0.6980 0.8376 0.6369 0.7677 1.0107 1.1634 1.1966 0.6609 1.3215 1.2156 1.2634 1.4093 1.2887 1.2211

0.9252 0.6745 0.3938 0.8473 0.4801 1.6069 0.9880 1.1079 1.1960 0.7645 1.8911 1.0621 1.5240 1.4988 1.2309

0.7607 0.4486 0.4022 0.3871 0.4386 0.5730 0.4997 0.5829 0.6108 0.7628 0.5703 1.1868 0.5748 0.6894 0.4876

43 27 47 37 57 7 17 27 13 23 17 17 10 7 3

53 30 47 30 37 30 13 17 40 10 27 23 23 37 27

40 37 63 43 67 10 30 37 20 30 3 40 17 23 23

40 60 50 53 37 57 50 47 33 43 53 20 50 33 47

5 10 15 20 25 5 10 15 20 25 5 10 15 20 25 5 10 15

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30

2.3005 1.9663 2.0795 1.5825 1.4801 2.4597 1.7822 1.9074 2.0025 1.8028 2.2496 2.1475 1.7636 1.4882 1.8504 2.8109 2.1873 2.0056

1.1969 1.3402 1.4067 1.2779 1.0885 0.7688 1.2919 0.9571 1.0106 1.0881 0.7412 0.8750 0.5572 1.0284 1.2083 0.7913 0.9729 1.1121

2.2813 1.4201 1.6166 1.0249 1.1831 2.1799 1.3975 1.4145 1.5776 1.7908 2.2482 1.7641 1.1980 1.5022 1.8819 2.5222 1.9574 1.6984

0.4554 0.4233 0.1568 0.5043 0.4527 0.3067 0.1825 0.2292 0.4330 0.2607 0.5104 0.2516 0.3191 0.3724 0.2171 0.4322 0.3071 0.2183

10 13 13 10 13 3 0 7 3 7 3 3 13 7 3 7 3 7

20 14 23 23 30 24 17 13 33 17 43 33 37 20 20 50 30 20

17 23 7 23 13 0 10 10 14 7 0 10 10 10 3 0 3 7

53 50 60 44 44 73 73 70 50 70 54 54 40 63 74 43 64 67

20 25 5 10 15 20 25 5 10 15 20 25

30 30 30 30 30 30 30 30 30 30 30 30

1.4579 2.1677 2.7514 2.0437 2.4233 1.6889 1.8117 2.8836 2.2311 1.9355 1.7673 2.1087

1.2068 1.4930 0.8143 0.9430 1.1374 1.0016 1.1539 1.0373 1.0191 0.9571 1.3155 1.2087

1.7823 1.9765 2.7379 1.7983 1.9712 1.7918 1.8639 2.9621 1.9177 1.7851 1.4805 1.9890

0.2054 0.1482 0.4027 0.2226 0.1064 0.2263 0.1004 0.2135 0.1391 0.2687 0.1310 0.0313

7 7 0 0 0 7 7 0 0 7 3 0

20 13 33 23 17 20 20 20 33 27 10 10

13 13 7 10 0 13 3 0 3 0 10 7

60 67 60 67 83 60 70 80 64 66 77 83

1332

Int J Adv Manuf Technol (2013) 68:1327–1338

Table 2 (continued) n

100

m

No. of problem instances

5

10 15 20 25 Average

ARPD

Percent best solution

Rajendran– Chaudhuri heuristic 1

Rajendran– Chaudhuri heuristic 2

Bertolissi heuristic

Proposed method

Rajendran– Chaudhuri heuristic 1

Rajendran– Chaudhuri heuristic 2

Bertolissi heuristic

Proposed method

30

3.6019

0.8151

2.9680

0.3219

0

37

0

63

30 30 30 30

2.4961 2.1969 2.0250 1.6976 1.8314

0.8945 1.1277 1.0869 1.1686 1.0491

2.2250 1.8459 1.6300 1.4954 1.6214

0.2342 0.2845 0.0928 0.0479 0.3637

0 3 0 0 10

30 20 17 13 25

7 7 3 3 15

63 70 80 84 58

order of their processing times on it. The tie is broken arbitrarily if there are more than one single bottleneck machines. Step 2 For z=2 to m do the following Consider z adjacent machines as bottlenecks with largest sum of the processing times of jobs on these machines and obtain the sequence of jobs in ascending order of the sum of the processing times of the individual jobs on these machines. The tie is broken arbitrarily if there are more than one sets of z bottleneck machines. Step 3 A total of m sequences of jobs are generated from steps 1–2 and the best one is selected as the seed sequence of n jobs for the rest part of the heuristic. Step 4 Set k=1. Select the first pair of jobs as a block from the seed sequence of step 3 and consider it as the current sequence. Then, the first job of the pair is placed into the next position of the current sequence, producing another partial sequence. Obtain the better of these two sequences with minimum TFT and update the current sequence.

Step 5 Set k=k+1. Generate 2k −1 partial sequences, each of 2k jobs, by inserting the next two (i.e., the next kth pair of) jobs as a block (i.e., without changing the relative positions of jobs while selecting) from the seed sequence of step 3 into each of the 2k −1 possible positions of the current sequence so far obtained. Select the best partial sequence among them and accept as the current sequence (the current sequence now has 2k jobs). Next, the first job of the k-th pair is placed into all possible positions of the current sequence, producing 2k−1 partial sequences. If the best of these 2k−1 partial sequences is better than the current sequence, set that as the current sequence, otherwise the current sequence remains unaltered. The second job of the k-th pair is then placed in all possible positions of the current sequence, producing another set of 2k−1 partial sequences. If the best of these 2k−1 partial sequences is better than the current sequence, use that to update the current sequence.

Table 3 ARPD and percent best solutions of the heuristics for problems with m=30, 40, 50 n

30

50

70

m

30 40 50 30 40 50 30 40 50

No. of problem instances

30 30 30 30 30 30 30 30 30

ARPD

Percent best solution

Rajendran– Chaudhuri heuristic 1

Rajendran– Chaudhuri heuristic 2

Bertolissi heuristic

Proposed method

Rajendran– Chaudhuri heuristic 1

Rajendran– Chaudhuri heuristic 2

Bertolissi heuristic

Proposed method

1.4389 1.1314 0.9932 1.6105 1.7218 1.6991 1.5650 1.5339 1.5298

1.6320 1.1316 1.4936 1.0983 1.3753 1.5139 0.8959 1.2938 1.3481

1.4609 1.1152 1.0980 1.6552 1.6247 1.4003 1.7607 1.6563 1.1798

0.6058 0.4277 0.6166 0.3625 0.2749 0.2799 0.3293 0.1657 0.1928

10 30 13 10 3 7 3 10 13

20 10 13 17 20 17 33 13 7

20 10 13 7 13 13 3 13 0

50 50 60 67 63 67 60 63 80

Int J Adv Manuf Technol (2013) 68:1327–1338

1333

Table 4 Results of statistical tests (Rajendran–Chaudhuri heuristic 1 vs. proposed method)

Table 4 (continued) n

n

m

No. of problem instances

m

Rajendran–Chaudhuri heuristic 1 vs. proposed method

No. of problem instances

Rajendran–Chaudhuri heuristic 1 vs. proposed method TFT difference

TFT difference

10

20

30

40

50

60

70

80

90

Mean

Std. dev.

t

t

p value

p value

5 10 15 20 25 5 10 15 20 25 5

30 30 30 30 30 30 30 30 30 30 30

−2.9 33.8 43.5 96.1 29.4 126.6 159.8 205 431 114 422

71.3 133.3 154.0 212.8 220.6 256.3 397.2 558 623 781 695

−0.22 1.39 1.55 2.47 0.73 2.71 2.20 2.01 3.79 0.80 3.32

0.586 0.088 0.067 0.010 0.236 0.006 0.018 0.027 0.000 0.215 0.001

10 15 20 25 5 10 15 20 25 5 10 15 20 25 5 10 15 20 25

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30

88 712 736 924 1,059 1,266 1,940 1,291 1,421 1,867 1,931 2,495 2,731 3,073 2,094 3,171 2,966 2,699 4,406

895 847 1,546 1,158 1,304 1,574 1,627 1,593 1,995 1,138 1,167 1,598 2,598 2,787 1,809 2,287 2,714 3,594 3,066

0.54 4.61 2.61 4.37 4.45 4.41 6.53 4.44 3.90 8.99 9.07 8.55 5.76 6.04 6.34 7.59 5.99 4.11 7.87

0.297 0.000 0.007 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

5 10 15 20 25 5 10 15 20 25 5 10 15 20

30 30 30 30 30 30 30 30 30 30 30 30 30 30

3,859 4,171 4,803 3,921 7,137 4,875 5,146 7,909 5,822 7,629 6,970 7,355 7,073 8,040

2,267 3,525 3,348 4,477 4,995 3,321 3,585 4,659 4,802 5,016 3,514 4,998 6,272 7,367

9.32 6.48 7.86 4.80 7.82 8.04 7.86 9.30 6.64 8.33 10.86 8.06 6.18 5.98

0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

100

25 5 10 15 20 25

30 30 30 30 30 30

Mean

Std. dev.

11,415 10,401 9,628 9,829 11,473 10,989

6,064 6,339 4,563 6,658 7,009 6,767

10.31 8.99 11.56 8.09 8.97 8.89

0.000 0.000 0.000 0.000 0.000 0.000

Step 6 Repeat step 5 until all jobs are scheduled. If, after the jobs (in the sequence produced in step 3) have been paired off, a single job remains to be scheduled, consider it as a block. Step 7 Output the best current sequence of jobs obtained so far and its TFT as the final solution. To illustrate how the proposed heuristic works, let us consider the following five jobs, four machines no-wait flow shop problem instance. Jobs

Machines 1 2 3 4 5

1 12 20 19 14 19

2 24 3 20 23 15

3 12 19 3 16 17

4 13 11 15 14 22

According to step 1, we first consider the single bottleneck machine as machine 2 with the maximum sum of processing times of jobs on it. Then, arranging the jobs in increasing order of their processing times on this machine, we get the sequence as {2 5 3 4 1} and the corresponding TFT is 559. Next, following step 2, we consider two adjacent machines as bottlenecks as machines 1 and 2 among three possible pairs of machines, the jobs are arranged in increasing order of the sum of processing times of individual jobs to obtain the sequence as {2 5 1 4 3} with the corresponding TFT of 535. Similarly, by considering the three bottleneck machines and arranging the jobs in increasing order of sum of processing times of individual jobs, we determine the sequence {2 3 1 5 4} with the corresponding TFT of 526. Finally, considering four bottleneck machines, the sequence {2 3 1 4 5} is obtained and its corresponding TFT is 535. Thus, for the four-machine no-wait flow shop problem, 4 sequences are generated and the best sequence

1334

Int J Adv Manuf Technol (2013) 68:1327–1338

Table 5 Results of statistical tests (Rajendran–Chaudhuri heuristic 2 vs. proposed method)

Table 5 (continued) n

n

m

No. of problem instances

m

Rajendran–Chaudhuri heuristic 2 vs. proposed method

No. of problem instances

Rajendran–Chaudhuri heuristic 2 vs. proposed method TFT difference

TFT difference

10

20

30

40

50

60

70

80

90

Mean

Std. dev.

t

t

p value

p value

5 10 15 20 25 5 10 15 20 25 5

30 30 30 30 30 30 30 30 30 30 30

−4.2 20.7 51.7 39.3 57.5 77.6 163.2 195.5 25 256 210.5

65.3 64.5 179.8 136.8 313.2 246.0 316.9 503.8 556 738 509

−0.35 1.76 1.57 1.58 1.01 1.73 2.82 2.13 0.25 1.90 2.26

0.636 0.045 0.063 0.063 0.161 0.047 0.004 0.021 0.403 0.034 0.016

10 15 20 25 5 10 15 20 25 5 10 15 20 25 5 10 15 20 25

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30

38 520 448 630 425 749 1,266 916 870 400 1,329 1,094 1,004 1,649 263 1,038 499 1,581 2,665

689 1,043 1,161 1,246 884 1,207 1,655 1,722 1,743 1,052 1,475 1,664 2,268 2,580 1,784 1,836 1,783 2,485 3,882

0.30 2.73 2.12 2.77 2.63 3.40 4.19 2.91 2.73 2.08 4.94 3.60 2.43 3.50 0.81 3.10 1.53 3.48 3.76

0.382 0.005 0.022 0.005 0.007 0.001 0.000 0.003 0.005 0.023 0.000 0.001 0.011 0.001 0.213 0.002 0.068 0.001 0.000

5 10 15 20 25 5 10 15 20 25 5 10 15 20

30 30 30 30 30 30 30 30 30 30 30 30 30 30

578 1,478 2,400 3,133 4,705 863 2,019 3,515 3,062 4,677 2,174 3,090 2,904 5,806

2,274 3,172 3,683 3,515 5,736 3,039 2,954 3,646 3,881 5,640 3,210 4,067 4,622 4,389

1.39 2.55 3.57 4.88 4.49 1.56 3.74 5.28 4.32 4.54 3.71 4.16 3.44 7.24

0.087 0.008 0.001 0.000 0.000 0.065 0.000 0.000 0.000 0.000 0.000 0.000 0.001 0.000

100

25 5 10 15 20 25

30 30 30 30 30 30

Mean

Std. dev.

6,457 1,578 2,792 4,316 5,878 7,436

5,010 4,451 5,117 6,971 6,629 6,931

7.06 1.94 2.99 3.39 4.86 5.88

0.000 0.031 0.003 0.001 0.000 0.000

{2 3 1 5 4} is selected as the seed sequence of jobs with the TFT as 526. Using step 4 (for k=1), we select first two jobs (2 and 3) from the sequence of step 3 and obtain the best sequence {3 2} with TFT 129 from two possible sequences. Consider it as the current sequence. Now, using step 5 (for k=2), we insert the next pair of jobs (1 and 5) as a block from the sequence of step 3 into the current sequence {3 2} at the three possible positions, yielding the sequences {1 5 3 2}, {3 1 5 2}, and {3 2 1 5} with TFTs 376, 390, and 358, respectively. {3 2 1 5} is the best partial sequence among these three and is therefore set as the current sequence. Following the next part of step 5, job 1 (which is the first job of the most recent pair) is inserted into each of the three available positions of {3 2 1 5}, and as a result, three sequences {1 3 2 5}, {3 1 2 5}, {3 2 5 1} with respective TFTs 359, 395, and 366 are generated. Since none of these three is better than the current partial sequence, the current sequence remains unchanged. Next, job 5 (the second job of the most recent pair) is inserted into each of the three available positions of {3 2 1 5}, producing three sequences {5 3 2 1}, {3 5 2 1}, and {3 2 5 1} with respective TFTs 395, 386, and 366. None of these three sequences being better than the current one, {3 2 1 5} remains the current partial sequence. Next, for k = 3, the single remaining job 4 from the sequence of step 3 is appended to the sequence {3 2 1 5} at five possible positions, producing {4 3 2 1 5}, {3 4 2 1 5}, {3 2 4 1 5}, {3 2 1 4 5}, and {3 2 1 5 4}. The corresponding TFTs are 525, 558, 514, 510, and 501, respectively. Among these sequences, {3 2 1 5 4} is the best current sequence with corresponding TFT 501 and taken as the final solution of the algorithm. The total number of (partial and complete) sequences Pn=2 generated is equal to k¼2 3ð2k  1Þ for even n and Pbn=2c k¼2 3ð2k  1Þ for odd n. So its complexity is approximately O(n2), which is same as those required by the heuristics of Rajendran–Chaudhuri and Bertolissi.

Int J Adv Manuf Technol (2013) 68:1327–1338

1335

Table 6 Results of statistical tests (Bertolissi heuristic vs. proposed method)

Table 6 (continued) n

n

m

Mean

Std. dev. 100

10

20

30

40

50

60

70

80

90

m

No. of problem Bertolissi heuristic vs. proposed method instances TFT difference t p value

5 10 15 20 25 5 10

30 30 30 30 30 30 30

8.5 17.6 −0.1 73.2 7.0 171.0 124.4

84.9 115.6 122.5 220.5 214.4 252 437

0.55 0.84 −0.01 1.82 0.18 3.72 1.56

0.294 0.205 0.502 0.040 0.430 0.000 0.065

15 20 25 5 10 15 20 25 5 10 15 20 25 5 10 15 20 25

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30

168.7 233 2 444.3 −53 589 610 646 1,046 819 1,474 623 1,010 1,628 1,460 1,765 1,985 3,042

536.9 625 715 493.6 892 1,014 1,519 1,465 1,102 1,277 1,151 1,581 2,007 1,199 1,315 1,573 2,845 3,124

1.72 2.04 0.02 4.93 −0.32 3.18 2.20 2.42 5.20 3.51 7.01 2.16 2.76 7.44 6.08 6.15 3.82 5.33

0.048 0.025 0.494 0.000 0.626 0.002 0.018 0.011 0.000 0.001 0.000 0.020 0.005 0.000 0.000 0.000 0.000 0.000

5 10 15 20 25 5 10 15 20 25 5 10 15 20 25 5 10 15

30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30

2,083 2,522 1,817 2,728 4,490 3,371 3,654 3,989 3,950 6,441 4,838 4,446 6,364 6,225 7,865 7,139 6,226 6,438

1,739 2,421 2,113 3,995 3,398 2,424 3,291 3,186 4,790 5,661 3,443 4,209 2,900 5,471 4,678 3,549 4,520 3,444

6.56 5.71 4.71 3.74 7.24 7.62 6.08 6.86 5.66 6.23 7.70 5.78 12.02 6.23 9.21 11.02 7.55 10.24

0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

20 25

30 30

6,631 10,755

6,097 6,607

5.96 8.92

0.000 0.000

5 10 15 20 25

No. of problem Bertolissi heuristic vs. proposed method instances TFT difference t p value

30 30 30 30 30

Mean

Std. dev.

8,423 8,460 8,023 9,112 9,627

4,404 5,066 7,108 5,636 5,720

10.48 9.15 6.18 8.86 9.22

0.000 0.000 0.000 0.000 0.000

5 Computational experience The proposed heuristic, two heuristics of Rajendran and Chaudhuri [17], and the heuristic of Bertolissi [18] have been coded in C and run on an Intel Core 2 Duo, 2 GB RAM, 2.93 GHz PC. The performance comparison of the proposed heuristic with the existing heuristics is presented considering different problem sizes with small number of jobs (n)=5, 6, 7, 8, and 9 and large number of jobs (n)=10, 20, 30, 40, 50, 60, 70, 80, 90, and 100 and number of machines (m)=5, 10, 15, 20, and 25. Thirty independent problem instances are considered for each combination of jobs and machines. Therefore, for small problem sizes, a total of 750 problem instances are considered whereas the large problem group consists of 1,500 problem instances. To investigate the comparative performances of the heuristics in situations the number of machines are considerably large enough, we consider another experimental setup with n = 30, 50, and 70 and m = 30, 40, and 50. For this experiment, 30 problem instances for each problem size are taken, resulting in a total of 270 problem instances. The processing times on machines were obtained for each problem instance by generating random integers (1 to 99) from a discrete uniform distribution, commonly used by many researchers [17, 19]. The following performance measures, popular in the flow shop literature (see, e.g., Rajendran and Chaudhuri [17], Aldowaisan and Allahverdi [19], Framinan and Leisten [34], and Laha and Sarin [35]), are used in the present experimentation: average relative percentage deviation (ARPD) from optimal heuristic solution and percent of optimal heuristic solutions for small number of jobs and ARPD from best heuristic solution and percent of best heuristic solutions based on the best-known solution for a given instance for large number of jobs. ARPD for small number of jobs problems is given by:

ARPD ¼

 k  100 X Heuristici  Optimali : k i¼1 Optimali

1336

Int J Adv Manuf Technol (2013) 68:1327–1338

Fig 1 Means and 95 % confidence intervals for the different algorithms

2.0

95% CI RPD

1.5

1.0

0.5

RC1

RC2

BRH

PH

Heuristic

ARPD for large number of jobs problems is given by: ARPD ¼

 k  100 X Heuristici  Besti k i¼1 Besti

Where, Heuristici represents the objective function value obtained for ith instance by a heuristic, Optimali is the optimal solution value obtained for that instance, Besti is the best solution value obtained for that instance, and k is the number of problem instances considered. 5.1 Comparison with existing heuristic algorithms Table 1 displays comparative evaluation of the proposed method, the heuristics of Rajendran and Chaudhuri [17], and the heuristic of Bertolissi [18] based on the ARPD and the

Table 7 Results of Tukey honestly significant difference test Heuristic (I) Heuristic (J) Mean difference SE (I–J)

Significance

RC1

RC2 BRH PH

0.7823a 0.2100 1.4677a

0.061967 0.061967 0.061967

0.000 0.072 0.000

RC2

RC1 BRH PH RC1 RC2 PH RC1 RC2 BRH

−0.7823a −0.5723a 0.6854a −0.2100 0.5723a 1.2577a −1.4677a −0.6854a −1.2577a

0.061967 0.061967 0.061967 0.061967 0.061967 0.061967 0.061967 0.061967 0.061967

0.000 0.000 0.000 0.072 0.000 0.000 0.000 0.000 0.000

BRH

PH

a

Mean difference is significant at the 0.05 level (95 %)

percent of optimal heuristic solutions for the problems of small number of jobs. The results show that average ARPD of the proposed heuristic is significantly less compared to the existing methods. With respect to ARPD, the proposed method performs better than other existing methods for 17 out of 25 cases. Also, the performance of the proposed heuristic with respect to the percent optimal solution has been found to be superior to the other existing methods. Table 2 presents comparative results based on the ARPD and the percent of best heuristic solutions for the problems of large number of jobs under consideration. The results show that the proposed method performs significantly well over the existing heuristics with respect to both ARPD and percent best solution measures in almost all cases. Overall, the results of Tables 1 and 2 show that the performance of the proposed heuristic with respect to the performance measures under consideration is significantly better than those given by heuristic 1 and heuristic 2 of Rajendran– Chaudhuri, and the heuristic of Bertolissi. The results of Table 3 depict that for the problems with higher number of machines, the proposed method also yields superior solutions. 5.2 Statistical tests We now report statistical tests of significance to establish the improvement of the proposed heuristic over the existing heuristics. For this purpose, we consider student’s t test and Tukey honestly significant test. 5.2.1 Student’s t test We use the student’s t test [36] to show the statistical significance of the better results produced by the

Int J Adv Manuf Technol (2013) 68:1327–1338

proposed method over those obtained by the existing methods. The number of test problems for each problem size is considered as 30. Thus, for testing the significance of the proposed method against an existing method, each problem set consists of 30 pairs of total flow time values. Based on 30 pairs of differences in total flow times for a problem set, mean and standard deviation of these differences are computed. Each difference in two total flow time values for a problem instance is obtained by subtracting the total flow time of the proposed method from that of the existing method. We test the null hypothesis, H0: μ=0 against alternative hypothesis, H1: μ>0; i.e., when H0 is true, then, statistically, there is no significant change of the difference between the two methods. Therefore, the proposed t test is a right-tail test. The observed value of the t statistic is pffiffiffiffi 0 computed as, t ¼ N xμ where N is the sample size, N− S 1 is the degrees of freedom, μ0 =0 and x and S denote the mean and standard deviation of the sample. At 5 % level of significance, the critical value, t0.05,ν is obtained from the relation: when α=5 % or Probability (t≥t0.05,ν)=α= 0.05. We obtain for the right-tail test, tα,ν =t0.05,29 =1.699 for ν=29 degrees of freedom using the standard tables of t distribution. We also compare the level of significance on the right-tail with the p value. For example, from Table 4 for n = 20, and m = 5, p = Probability (t ≥ 2.71) = 0.006 (from the standard t table). Here, since 0.006 is less than α=0.05, we reject the null hypothesis at 5 % level of significance, i.e., the proposed heuristic produces significantly better results compared to that of the existing heuristic. The results of statistical tests for large number of job size problems are presented in Tables 4, 5, and 6. The results of Tables 4, 5, and 6 reveal that the proposed method statistically significantly performs better than the existing methods in almost all problem sizes.

1337

5.3 CPU times The average computational times (in seconds) required for solving each instance by the heuristics are presented in

Table 8 Mean CPU time (in seconds) required for various heuristics n

m

Rajendran– Chaudhuri heuristic 1

Rajendran– Chaudhuri heuristic 2

Bertolissi heuristic

Proposed method

30

5 10 15 20 25 5 10 15 20 25 5 10 15

0.000 0.002 0.002 0.003 0.004 0.001 0.002 0.004 0.006 0.008 0.002 0.003 0.006

0.000 0.001 0.002 0.003 0.004 0.001 0.001 0.003 0.006 0.008 0.001 0.003 0.006

0.001 0.002 0.002 0.004 0.005 0.002 0.003 0.005 0.007 0.010 0.003 0.005 0.007

0.001 0.002 0.002 0.004 0.006 0.002 0.004 0.006 0.008 0.011 0.004 0.006 0.008

20 25 5 10 15 20 25 5 10 15 20 25 5 10 15 20 25 5

0.010 0.014 0.002 0.005 0.008 0.014 0.018 0.004 0.006 0.012 0.018 0.026 0.004 0.008 0.016 0.022 0.034 0.005

0.010 0.014 0.002 0.004 0.008 0.012 0.019 0.003 0.006 0.010 0.017 0.025 0.004 0.008 0.016 0.023 0.034 0.006

0.012 0.017 0.003 0.007 0.010 0.017 0.022 0.005 0.009 0.015 0.022 0.030 0.006 0.010 0.019 0.025 0.037 0.007

0.012 0.018 0.004 0.009 0.012 0.019 0.025 0.006 0.011 0.018 0.024 0.032 0.006 0.012 0.021 0.028 0.040 0.007

0.012 0.020 0.030 0.044 0.006 0.013 0.024 0.038 0.054 0.0128

0.012 0.018 0.030 0.044 0.006 0.013 0.024 0.038 0.054 0.0125

0.014 0.022 0.034 0.048 0.008 0.015 0.027 0.041 0.058 0.0149

0.016 0.025 0.038 0.052 0.008 0.017 0.030 0.044 0.064 0.0165

40

50

60

70

80

5.2.2 Tukey honestly significance test In addition to the pairwise comparison of the heuristics, we apply multi comparison test. For this, to observe the statistical significance of the differences between the heuristics, the means of each heuristic and the corresponding 95 % confidence interval are plotted as shown in the Fig. 1. A Tukey honestly significant difference test is conducted to determine which means differ as shown in the Table 7. The results indicate that the differences between the proposed heuristic (PH) and the rest of the heuristics are statistically significant. The Rajendran– Chaudhuri heuristic 1 (RC1) and Bertolissi heuristic (BRH) showed a similar performance and Rajendran– Chaudhuri heuristic 2 (RC2) showed better performance than BRH and RC1.

90

10 15 20 25 100 5 10 15 20 25 Average

1338

Table 8. The results show that the proposed heuristic takes almost comparable computational time as those required by the heuristics of Rajendran and Chaudhuri, and the heuristic of Bertolissi.

6 Concluding remarks In this paper, we have presented a constructive heuristic for the no-wait flow shop scheduling to minimize the total flow time. It is based on the principle that the priority of a job in the initial sequence is given by the sum of processing times of individual jobs on the bottleneck machines. The initial sequence is further improved by the proposed job insertion technique for getting the final sequence. The proposed method significantly performs better than the heuristics of Rajendran and Chaudhuri, and the heuristic of Bertolissi, while not affecting its average computational times. Acknowledgments We are thankful to the referees for their constructive comments to improve the earlier version of the paper.

References 1. Wismer DA (1972) Solution of the flowshop-scheduling problem with no intermediate queues. Oper Res 20:689–697 2. Reddi SS, Ramamoorthy CV (1972) On the flow-shop sequencing problem with no wait in process. Oper Res Q 23:323–331 3. Gupta JND (1976) Optimal flowshop schedules with no intermediate storage. Nav Res Logist 23:235–243 4. Framinan JM, Nagano MS (2008) Evaluating the performance for makespan minimization in no-wait flowshop sequencing. J Mater Process Technol 197:1–9 5. Ribeiro Filho G, Nagano MS, Lorena LAN (2007) Hybrid evolutionary algorithm for flowtime minimisation in no-wait flowshop scheduling. Lecture Notes in Computer Science 4827:1099–1109 6. Framinan JM, Nagano MS, Moccellin JV (2010) An efficient heuristic for total flowtime minimization in no-wait flowshops. Int J Adv Manuf Technol 46:1049–1057 7. Nagano MS, Silva AA, Lorena LAN (2012) A new evolutionary clustering search for a no-wait flow shop problem with set-up times. Eng Appl Artif Intel 25(6):1114–1120 8. Araujo DC, Nagano MS (2010) An effective heuristic for the nowait flowshop with sequence-dependent setup times problem. Lecture Notes in Computer Science 6437:187–196 9. Araujo DC, Nagano MS (2011) A new effective heuristic method for the no-wait flowshop with sequence-dependent setup times problem. Int J Ind Eng Comput 2(1):155–166 10. Rock H (1984) The three-machine no-wait flow shop is NPcomplete. Journal of Associate Computer Machinery 31:336–345 11. Hall NG, Sriskandarajah C (1996) A survey of machine scheduling problems with blocking and no-wait in process. Oper Res 44:510– 525 12. Bonney MC, Gundry SW (1976) Solutions to the constrained flowshop sequencing problem. Oper Res Q 27:869–883

Int J Adv Manuf Technol (2013) 68:1327–1338 13. King JR, Spachis AS (1980) Heuristics for flowshop scheduling. Int J Prod Res 18:343–357 14. Rajendran C (1994) A no-wait flowshop scheduling heuristic to minimize makespan. J Oper Res Soc 45:472–478 15. Gangadharan R, Rajendran C (1994) Heuristic algorithms for scheduling in the no-wait flowshop. Int J Prod Econ 32:285– 290 16. Laha D, Chakraborty UK (2009) A constructive heuristic for minimizing makespan in no-wait flow shop scheduling. Int J Adv Manuf Technol 41:97–109 17. Rajendran C, Chaudhuri D (1990) Heuristic algorithms for continuous flow-shop problem. Naval Research Logistic Quarterly 37:695–705 18. Bertolissi E (2000) Heuristic algorithm for scheduling in the nowait flow-shop. J Mater Process Technol 107:459–465 19. Aldowaisan T, Allahverdi A (2004) New heuristics for m-machine no-wait flowshop to minimize total completion time. Omega 32:345–352 20. Aldowaisan T, Allahverdi A (2003) New heuristics for no-wait flowshops to minimize makespan. Comput Oper Res 30:1219– 1231 21. Grabowski J, Pempera J (2005) Some local search algorithms for no-wait flow-shop problem with makespan criterion. Comput Oper Res 32:2197–2212 22. Liu B, Wang L, Jin YH (2007) An effective hybrid particle swarm optimization for no-wait flow shop scheduling. Int J Adv Manuf Technol 31:1001–1011 23. Pan QK, Tasgetiren MF, Liang YC (2008) A discrete particle swarm optimization algorithm for the no-wait flowshop scheduling problem. Comput Oper Res 35:2807–2839 24. Pan QK, Wang L, Tasgetiren MF, Zhao BH (2008) A hybrid discrete particle swarm optimization algorithm for the no-wait flow shop scheduling problem with makespan criterion. Int J Adv Manuf Technol 38:337–347 25. Chen C, Neppalli V, Aljaber N (1996) Genetic algorithms applied to the continuous flow shop problem. Comput Ind Eng 30:919–929 26. Fink A, Voß S (2003) Solving the continuous flow-shop scheduling problem by metaheuristics. Eur J Oper Res 151:400–414 27. Kumar A, Prakash A, Shankar R, Tiwari MK (2006) Psychoclonal algorithm based approach to solve continuous flowshop scheduling problem. Expert Syst Appl 31:504–514 28. Nawaz M, Enscore EE Jr, Ham I (1983) A heuristic algorithm for the m machine, n job flowshop sequencing problem. Omega 11:91–95 29. Haupt R (1989) A survey of priority rule based scheduling. ORSpektrum 11:3–16 30. Ramasesh R (1990) Dynamic jobshop scheduling: a survey of simulation research. Omega 18:43–57 31. Rajendran C, Holthaus O (1999) A comparative study of dispatching rules in dynamic flowshops and jobshops. Eur J Oper Res 115:156–170 32. Kalir AA, Sarin SC (2001) A near-optimal heuristic for the sequencing problem in multiple-batch flow-shops with small equal sublots. Omega 29:577–584 33. Rajendran C, Alicke K (2007) Dispatching in flowshops with bottleneck machines. Comput Ind Eng 52:89–106 34. Framinan JM, Leisten R (2003) An efficient constructive heuristic for flowtime minimization in permutation flow shops. Omega 31:311–317 35. Laha D, Sarin SC (2009) A heuristic to minimize total flow time in permutation flow shop. Omega 37:734–739 36. Kreyszig E (1972) Advanced engineering mathematics. Wiley, New York