~
Computers ind. Engng Vol.26, No. 1, pp. 27-34, 1994
Pergamon HEURISTICS
Copyright© 1994ElsevierScienceLtd Printedin GreatBritain.All rightsreserved 0360-8352/94$6.00+ 0.00
FOR
SCHEDULING
FLEXIBLE
FLOW
LINES
FONG-YUEN DING and DUANGJAI KITTICHARTPHAYAK Department of Industrial Engineering and Management, North Dakota State University, Fargo, ND 58105, U.S.A. (Received for publication 27 May 1993)
Abstract--The scheduling problem of a flow shop with parallel machines at each stage is an extension of the well known single-line flow shop problem. The purpose of this paper is to present heuristics for solving such flowshop schedulingproblems in which parallel machines are assumed. Three heuristics are given in this paper. The computational results show that a combinedapproach solvedthe problem quite effectively.
INTRODUCTION A flow shop is a system with machines arranged in a series of stages, where jobs are processed in the fixed order of the stages of machines. The traditional assumption of a flow shop contains a single line of machines. The scheduling problem of such a single-line flow shop has been well studied [4--9, 14]. A flow shop with parallel machines for at least one stage is often referred to as a "flexible flow line" by researchers [12, 13, 17]. The flexible flow line systems have been observed in petro-chemical processing [15], electronics manufacturing [17, 12], and Space Shuttle processing [2]. This paper deals with the scheduling problem of flexible flow lines. A flow shop with parallel machines at each stage was first studied by Salvador [15] in 1973. He developed a branch-and-bound algorithm to find a job sequence with the minimum makespan. Arthanari [1] also developed a branch-and-bound based algorithm to minimize makespan. His algorithm is confined to two stages with parallel machines at stage one and one machine at stage two. A branch-and-bound algorithm is generally restricted by an impractical amount of computation time when the problem size grows [3, 11]. Wittrock [17] suggested a heuristic primarily to minimize the makespan and secondarily to minimize the in-process inventory. The method can be applied to produce fixed minimal part sets. Sriskandarajah and Sethi [16] presented a worst-case study for a heuristic method of the single-line flow shop for solving the scheduling problem of a 2-stage flexible flow line. Brah and Hunsucker [2] formulated the scheduling problem of a flow shop with multiple processor as a mixed-integer-programming problem. The size of formulation gets impractically large even with a small number of jobs and stages. Kochhar and Morris [10] presented a heuristic method in which a simulator evaluates sequences generated by a search procedure in a flexible flow line. In their experiment, they also incorporated local dispatching rules to the initial job sequence. Kochhar and Morris found that dispatching rules generally improved the performance of initial sequences. Moon and Dean [13] developed a control model for flexible flow lines. The model involves the repeated execution of a rounded linear programming algorithm attempting to release the right mix of parts at the right time. The purpose of this paper is to develop heuristics for flexible flow line scheduling problems. Notation
Assume that there are S stages of operations. At stage j there are Mj parallel (and identical) machines. There are N jobs at the beginning of a production cycle, and all the jobs will be processed according to the fixed order of the S stages of machines. It is also assumed that there is no job preemption, all the processing times are known in advance, and a setup time is included in its job 27
28
FONG-YUEN DING and DUANGJAIKITTICHARTPHAYAK
processing time. The processing time for job i at stagej is denoted as t~ (on any of the M r machines). It is further assumed that a queue between any two stages has an unlimited capacity. (The last assumption does not necessarily represent real-world settings. However, in many cases, maximum capacities may not be reached. It can also be conjectured that, in general, a good scheduling approach under this unlimited queue assumption should also perform well if the queue capacity is limited but not too small). D E V E L O P I N G HEURISTICS
The heuristics to be developed here are "constructive" ones. Logically speaking, there are two ways of constructing a schedule: (1) sequential construction (i.e. constructing from the front-end until the schedule is complete) and (2) both-end construction (i.e. constructing from the front end and the rear end of a sequence until the schedule is complete). Conceivably, such constructive heuristics divide the sequencing problem into smaller subproblems and require insignificant amount of computation time. Most existing scheduling heuristic methods for a single-line flow shop can be viewed as constructive methods. The well known Johnson's rule [9] attempts to construct a sequence from "both ends" by considering job processing times. Campbell et al. [4] extended Johnson's rule to construct sequences for the single-line flow shop scheduling problem with more than two stages. Gupta [6] developed a "sequential" constructive method for scheduling jobs in a single-line flow shop. The scheduling heuristics for flow shops with multiple machines are presented in the following sections. The objective of these heuristics is to minimize the makespan of completing N jobs. In all these heuristics, a job sequence is first determined for the first stage; the remaining stages will also follow the same sequence. Heuristics # 1 and # 2 are two both-end constructive methods; the former is a method generalized from an existing method for the single flow shop and the latter is a modified version of Heuristic # 1. Heuristic # 3 performs sequential construction of a job sequence by minimizing the total idle time. Heuristic # 1
Heuristic # 1 is to apply the Campbell et al.'s [4] approach intended for a single-line flow shop to a flow shop with parallel machines. In Heuristics # 1 and # 2, the term T;~ is used for the total processing time of the first K stages for job i and T,2 the total processing time of the last K stages for job i, where K is a number increased by 1 at each iteration, r in Heuristic # 1 is the job index that has the minimum T,j value among all the T;ls and T,:s. The procedure is as follows: 1. Let K = 1. Calculate K
ri, = Z t,j j=l K
ri2 = ~ ti,s - j + l j=l
Find Min~ { Tn, T,=} for unscheduled jobs. 2. If T,~ = Mini{Tn, T,2} for a job r, assign job r to the first available position; otherwise, if T,~ --- Mini{T;l, Trz}, assign job r to the last available position. 3. Remove job r and repeat Step 2 until no jobs remain. 4. Compare the makespan with the currently best sequence and keep the best sequence. 5. If K = S - I, stop; otherwise K = K + 1 a n d go to Step I. Heuristic # 2
Similar to Heuristic # I, Heuristic # 2 constructs schedules from both ends and up to S - I sequences may be generated and tested. The difference between these two methods is the rule of placing a job at the front or at the rear of the sequence.
Heuristics for scheduling flexible flow lines
29
r in Heuristic # 2 is the job that has the minimum value among all Tit and also the minimum among all T,2s. The step-by-step procedure is as follows: 1. Let K = 1. Calculate K
Til = ~., ti,j jffil K
Ta = E ti.s-J+l yffil Find Mini{T~} and Mini{T,2} for unscheduled jobs. 2. If T~t = Mini {T~ } and T,2 = Mini{T,:} for a job r, assign job r to the last available position in the sequence. If T,~ = Mini{T~} but/',2 4= Mini{Ta}, assign job r to the first available position. 3. Remove job r and repeat Step 2 until no jobs remain. 4. Compare the makespan with the currently best sequence and keep the best sequence. 5. If K = S - 1, stop; otherwise K = K + 1 go to Step 1.
Heuristic # 3 The method is to "sequentially" construct a job sequence and minimize the total idle time at every step of such a construction. The sequential constructive scheduling algorithm was first suggested for a single-line flow shop by Gupta [6]. The calculation of the idle time on a sequential construction of jobs on flow shop with parallel machines is developed here. Relevant notation is first given below. A Tk(j) = The available time of machine k at stage j after a job is added to the partial schedule. CT(8i,j) = The completion time of job i at stagej when job i is augmented to the partial sequence
8. IT([3i,j) = The idle time of the machine (r) on which job i at stage j is processed, where job i is augmented to the partial sequence 8. TIT(8i) = The total idle time after job i is scheduled where job i is augmented to the partial sequence 8. A completion time of a job i is determined by: f c r ( 8 i , j ) = Max~CT(8i, j - 1); Min ATk(j)~ + tij. l~k~Mj )
(l)
The idle time of the machine (r) at stage j on which job i is scheduled is determined by:
[
IT(J3i, j) = CT(8i, j -
1+
Min ATk(j) I~k~Mj 3
1)-
(2)
where [x] + = max{0, x}. If Mini ~,<.ujAT, (j) in (1) occurs at, say k = r, then AT,(j) (the available time of machine r) is reset by:
A Tr(j) = CT(8i, j).
(3)
The total idle time after job i is augmented to 8 is determined by:
TIT(8i) = TIT(8) + ~ IT(8i, j).
(4)
J
A small numerical example is given as follows for demonstrating the calculation of the above mentioned procedure: Assume that a certain stage j contains 3 machines (machines 1, 2 and 3) and A T~ = 15, A/'2 = 20, A/'3 = 18. Also assume that a job i has a processing time of 5 on stage j and CT(8i, j - 1) = 16. Therefore, CT(8i, j) = Max(16, Min(15, 20, 18)) + 5 -- 21 and IT(8i, j) = [16 - Min(15, 20, 18)]+ = 1 at stagej. Also AT~ for machine 1 on which rain (15, 20, 18) occurs is reset to CT(8i, j ) = 21.
30
EONG-YUEN DING and DUANGJAIK1TTICHARTPHAYAK
The step-by-step procedure of Heuristic # 3 is described as follows: 1. List a pair of the first two jobs of the sequences obtained from Heuristic # 1 and Heuristic # 2. Use the pair of jobs as the initial partial sequence (fl) for the constructive method. 2. Find the minimum TIT(riO where i is any unscheduled job. If a unique job "a" gives this minimum, go to Step 4; otherwise, go to Step 3. 3. Break the tie in favor of a job with the maximum processing time at stage S, S - 1. . . . up to the stage sufficient to break the tie. 4. Let fl = fla (i.e. a is attached after fl). If there are only two jobs left to be selected, go to Step 5; otherwise, return to Step 2. 5. Generate two complete schedules by assigning the two different orders of the remaining two jobs to the end of the partial schedule, and accept the schedule which has the minimum makespan as the best schedule. 6. Keep the currently best sequence. 7. If an unused initial partial sequence described in Step 1 remains, go to Step 2; otherwise, stop.
A combined approach A "combined" approach employs the three heuristics and reports the best result from these heuristics. The improved performance of the combined approach is expected to outweigh the increase in computation time. COMPUTATIONAL EXPERIMENT
The heuristics were coded in F O R T R A N on an IBM 3090 to solve randomly generated flexible flow line scheduling problems. A total of 320 combinations of models having (1) numbers of jobs (ns) 4, 5, 6, 7, 8, 12, 15, or 20, (2) numbers of stages (Ss) of 2, 3, 4, or 8, and (3) different arrangements (10 arrangements for each combination of n and S) of numbers of machines at various stages uniformly distributed between 1 and 3, were generated. The reason that 1 to 3 machines at each stage was assumed is that most of multiple processor settings observed in metal processing industries generally do not have more than three identical machines. For each of the 320 combinations, 10 problems with randomly generated processing times between 1.0 to 10.0 (uniformly distributed) multiplied by the numbers of machines at the corresponding stages were generated and tested. The uniform distribution assumption is used to give an equal likelihood to any processing time within the range. To compare the test results, a percentage error is defined as: % error =
[Heuristic m a k e s p a n - Optimal makespan] 100% Optimal makespan
where the optimal solution is obtained by complete enumeration of all possible sequences. The purpose of using complete enumeration is to obtain the optimal solution. (Another way of obtaining the optimal solution is by the branch-and-bound method. A branch-and-bound procedure is also a time consuming process. The primary purpose of the computational experimentation is to determine the solution quality rather than to determine the computation times, therefore, the more sophisticated branch-and-bound method is not used here). However, complete enumeration becomes intractable in the mainframe computer with job numbers 12, 15, and 20; the optimal makespan in the above % error calculation formula is replaced by the best makespan of the three heuristics (Kochhar and Morris [10] used the same approach for computational comparison). Tables 1 and 3 give the computational results of the heuristics and the combined approach based on % errors. The ranges and the average errors of all sets of problems are given in Tables 1 and 3. Table 2 reports the average % errors where the solutions are compared to the best solutions of the three heuristics. From these three tables, it appeared that these heuristics perform reasonably well in % errors but no heuristic dominated in all the cases tested. Generally speaking, however, Heuristic # 3 performed less effectively than the other two heuristics. Heuristic # 2, in general,
Heuristics for scheduling flexible flow lines
31
Table I. Ranges and averages of % errors of the three heuristics Heuristic # I
Heuristic # 2
Heuristic # 3
n
S
R
A
R
A
R
A
4
2
5.063 2.669 2,805 0.770
0.85--7.93 0.00--5.04 0.00-3.12 0.00-0.78
3.906 1.954 1.383 0.402
0.00--4.82 0.00-3.78 0.00-1.23 0.00-0.68
1.807 1.066 0.474 0.104
4
3
4 4
4 8
0.00-11.42 0.8 I-7.43 0.24-7.48 0.00-2.37
5 5 5 5
2 3 4 8
0.00-7.67 0.00-8.89 0.76-8.79 0.58-4.16
4.852 5,295 3.076 2.016
0.00-8.65 1.88-5.72 0.39-6.51 0.42-1.98
3.988 3.361 2.473 1.313
0.23--9.91 1.28-7.93 1.08-7.27 0.77-2.55
4,949 4.715 3.346 1.615
6 6 6 6
2 3 4 8
0.00-11.81 0.64-9.63 2.16-12.91 1.24-4.10
6.834 6,080 5,034 2,763
0.26-6.84 1.84-8.45 0.34-6.96 1.32-3.05
4.559 4.885 3.952 1.989
0.00-7.82 3.04--14.84 2.13--13.64 1.17-5.10
5.163 6,930 6.302 3.470
7 7 7 7
2 3 4 8
0.00-12.45 2.24-9.39 1.65-8.36 1.53-5.02
6.131 4.906 5.202 3.090
0.00-9.37 2.01-6.14 1.93-5.71 1.95-3.82
4.428 4.802 3,900 2.863
0.62-14.84 2.68-12.01 5.17-13.26 2.92-8.60
7.360 6.872 8.160 4,830
8 8 8 8
2 3 4 8
0.00-11.12 5.30-16.25 2.08-7.39 2.51-9.10
5.966 7,749 4,906 4.236
0.17-7.44 4.25-7.52 3.83-7.26 2.55-5.21
4.380 5.442 5.306 3.819
1.28-15.36 6.06--15.25 5.11-15.61 3.71-10.36
8.257 I 1.518 9.328 7.903
n = No. of jobs; S = No. of stages; R = range of % errors; A = average of % errors. [No. of models generated for each (n, S) = 10; No. of problems generated for each model = 10.]
gave the best solution most frequently among the three heursitics. It should be noted that the % error generally increases as the number of jobs increases. Table 3 also shows that, for each problem set with the number of jobs of 4, 5, 6, 7, or 8, the average error is <3%. The combined approach has an overall average error of 1.99%. This indicated that the combined approach solved the test problems quite effectively. Direct computation time comparisons were made by solving identical problems of various sizes with each heuristic on the IBM 3090 mainframe (see Table 4). Table 5 gives the CPU times of the combined approach and a complete enumeration approach. It can be seen that the computation time of the combined approach grows slowly (linearly) with respect to the number of jobs, but the computation time of complete enumeration grows very fast (exponentially). It is noted that such a computational comparison indicates that the heuristics are computational tractable for moderate size problems. The comparison should not suggest that, however, the heuristics tremendously save computation time over the existing methods. Table3. Ranges and averagesof oV, errors of the combined approach
Table 2, Average % errors with respect to the best solution of the three heuristics n
S
Heuristic #1
Heuristic # 2
Heuristic # 3
12 12 12 12
2 3 4 8
2.45 1.08 1.29 0.63
0.78 0.95 0.67 1.06
7.51 8.08 7.44 9.01
15 15 15 15
2 3 4 8
3.22 2.36 0.81 4.70
0.80 0.57 3.14 0.58
8.11 7.04 7.26 7.91
20 20
2 3
2.53 0.50
0.60 1.37
6.99 8.41
2.79 1.58
7.89 7.49
20 4 0.75 20 8 1.94 n = No. of jobs; S = No. of stages.
n
S
X
Y
R
A
4 4 4 4
2 3 4 8
I0 l0 I0 10
0 0 0 0
0.00-4.82 0.00-3.78 0.00-I ,23 0.00-0.68
1.807 1.066 0.474 0.104
5 5 5 5
2 3 4 8
9 10 10 10
I 0 0 0
1.00-5.66 0.0~4,03 0.29-3.14 0.23-1.13
2.007 1.724 1.109 0.507
6 6
2 3
10 9
0 I
0.0t)-4.22 0.00~.06
2.347 2.751
6 6
4 8
8 10
2 0
0.41-5.99 0.28-16.68
2.214 1.109
7 7 7 7
2 3 4 8
10 10 10 10
0 0 0 0
0.00-3.37 0.34-3.75 0.84-4.27 1.20-2.29
2.761 2.377 2.565 1.719
8 8 8 8
2 3 4 8
10 8 9 l0
0 2 1 0
0.00-4.68 3.25~.47 1.6041.58 1.60-4.67
2,503 4.202 3.435 2.935
n ~ No. of jobs; S ~ No. of stages; X = No. of problems having % error < 5%; Y = N o . of problems having % error > 5%; R ~ Range of % errors; A = Average of % errors.
32
FONG-YUEN DING a n d DUANGJAI KITTICHARTPHAYAK
Table 5. Average CPU times in seconds by the combined approach and complete enumeration n
S
Combined approach
Complete enumeration
4 4 4 4
2 3 4 8
0.0010 0.0018 0.0027 0.0084
0.0036 0.0050 0.0059 0.0104
5 5 5 5
2 3 4 8
0.0012 0.0022 0.0035 0.0107
0.0238 0.0323 0.0394 0.0688
2 3 4 8
0.0015 0.0029 0.0044 0.0137
0.2231 0.2772 0.3280 0.5443
n
S
Heuristic # 1
Heuristic # 2
Heuristic # 3
6 6 6 6
4 4 4 4
2 3 4 8
0.0002101 0.0005270 0.0009031 0.0034460
0.0002511 0.0005516 0.0009203 0.0034514
0.0006269 0.0007947 0.0009219 0.0015955
7 7 7 7
2 3 4 8
0.0021 0.0035 0.0052 0.0159
2.6404 3.1244 3.4478 5.2074
5 5 5 5
2 3 4 8
0.0002453 0.0005989 0.0010980 0.0041928
0.0002842 0.0006449 0.0011414 0.0042094
0.0008941 0.0010878 0.0013251 0.0023001
8 8 8 8
2 3 4 8
0.0028 0.0043 0.0065 0.0187
43.1988 46.8762 51.7675 66.8353
6 6 6 6
2 3 4 8
0.0002904 0.0007207 0.0012729 0.0051124
0.0003195 0.0007484 0.0013106 0.0052175
0.0012067 0.0015273 0.0018479 0.0033760
12 12 12 12
2 3 4 8
0.0054 0.0084 0.0202 0.0333
-----
7 7 7 7
2 3 4 8
0.0003312 0.0008331 0.0015135 0.0060315
0.0003610 0.0008578 0.0015250 0.0060427
0.0015923 0.0020158 0.0024783 0.0043597
15 15 15 15
2 3 4 8
0.0084 0.0123 0.0171 0.0463
-----
8 8 8 8
2 3 4 8
0.0003702 0.0008947 0.0017140 0.0066461
0.0004104 0.0009470 0.0017514 0.0066819
0.0019779 0.0025695 0.0031454 0.0055334
20 20 20 20
2 3 4 8
0.0145 0.0198 0.0287 0.0732
---
Table 4. CPU times in seconds of the three heuristics
n = No. of jobs; S = No. of stages,
-
-
--
n = No. of jobs; S = No. of stages.
Further computational experimentation In order to compare the heuristic approaches developed here with the existing optimal seeking approaches, the branch-and-bound procedure recently developed by Brah and Hunsucker [3] for flow shops with parallel processors is compared with the combined approach. A PC version of the program (in FORTRAN-77) coded by Brah and Hunsucker for the branch-and-bound approach was provided to the authors to enable this experimentation. The combined method (coded in FORTRAN-77) is also run on PC. Computation comparisons are conducted on an IBM compatible 486 PC. The purpose of the comparison is to see the tradeoff between the accuracy and speed of the heuristic procedure. Problems of various sizes specified by the number of jobs (n) and the number of stages (S) are randomly generated and tested on both procedures. The number of multiple processors ranges from 1 to 3 and the processing time requirement at a processor ranges from i to 99. For each (n, S) combination 10 problems are randomly generated and tested. The average solution accuracies (represented by the % error) of the combined approach and the CPU times from both procedures are calculated. Due to the computation time restriction, (n, S) combinations with n from 4 to 6 and S from 3 to 6 are tested which should sufficiently show the accuracy-speed tradeoff. The computation results are given in Table 6. It can be seen from Table 6 that the average computation time of the branch-and-bound procedure grows significantly as n or S increases and therefore, becomes impractical for solving a large problem (a similar conclusion was made by Brah and Hunsucker [3]). It can be seen that the growth in computation time of the combined approach is well contained owing to its relatively simple computation procedure while the % error representing the solution quality remains within range.
Heuristics for scheduling flexible flow fines
33
Table 6. Comparison between the branch-and-bound (an optimal seeking approach) and heuristic procedure Average Average % error CPU time (s) n
S
Combined
Combined
4 4 4 4
3 4 5 6
3.58 0.70 0.47 2.32
0.05 0.065 0.10 0.11
B. & B.
5 5 5 5
3 4 5 6
1.80 1.78 2.06 1.63
0.08 0.I 1 0.14 0.18
1.64 23.33 282.97 5896.51
6 6 6 6
3 4 5 6
1.82 2.62 3.53 2.61
0.11 0.14 0.19 0.29
50.10 2544.80 5028.24 6814.90
0.10 0.55 2.84 1.38
Table 7. Data for an Industrial ease Processing times (min) Job I 2 3 4 5 6 7 8
Stage I 48 48 30 30 48 24 48 48
Stage 2 12 12 24 30 12 12 12 12
Stage 3 12 18 18 18 24 12 24 12
A n industrial case
A case study for a flexible flow line problem is presented here. A data set is taken from a 3-stage flexible flow shop of a major tractor manufacturer. The 3-stage flow shop has two identical machines at each stage resulting in a 2 x 2 x 2 arrangement. The processing times for eight jobs at three stages are given in Table 7. With this data set, the best sequence computed by the combined approach is 3-2--4-5-7-8-1-6 with a makespan of 198. The optimal makespan from complete enumeration is also 198. While a combined approach requires 0.0049 CPU seconds on an IBM 3090 mainframe, a complete enumeration approach took 51.40 s. SUMMARY AND FUTURE DEVELOPMENT
The flow shop scheduling problem with parallel machines is an extension of the well-known single-line flow shop problem. Three heuristic approaches and a combined approach are developed here. Heuristics # 1 and # 2 developed here are based on Johnson's rule. With a modification, the method was shown to effectively schedule a wide range fo randomly generated problems. A sequential construction appraoch (Heuristic # 3), however, performed less effectively. The combined approach of the three heuristics was shown to be quite effective in producing near optimal solutions. In addition, the CPU time and storage requirement of the combined approach are minimal. The method can be run on a PC for repeated on-line applications. Finally, an industrial example of the flexible flow line problem was also successfully solved. The future development of a flexible flow line can be extended to due date performance measures, repetitive production cycles, and local dispatching rules; however, these are beyond the scope of this paper. REFERENCES 1. T. S. Arthanari. O n some problems of sequencing and grouping. Ph.D. thesis, Indian Statistical Institute, Calcutta, India (1974). 2. S. A. Brah and J. L. Hunsucker. Optimal scheduling in an M-stage flow shop with multiple processors. Technical Report, University o f Houston, TX (1987). 3. S. A. Brah and J. L. Hunsucker. Branch and bound algorithm for a flow shop with multiple processors. Eur. J. Opl Res. 51 (1991). 4. H. G. Campbell, R. A. Dudek and M. L. Smith. A heuristic algorithm for the n job machine sequencing problems. Mgmt Sci. 16(10) (1970). 5. M. R. Gary, D. S. J o h n s o n and R. Sethi. The complexity of flow shop and job shop scheduling. Math. Opns Res. 1, 117-129 (1976). 6. N. D. Gupta. Heuristic algorithms for multistage flowshop scheduling problem. AIlE Trans. 4(1), 1 !-18 (1972). 7. N. D. G u p t a and W. P. Darrow. The two-machine sequence dependent flowshop scheduling problem. Eur. J. Opl Res. 24, 439-446 (1986). 8. N. D. G u p t a and R. A. Dudek. Optimality criteria for fiowshop schedules. AIIE Trans. 3, 199-205 (1971). 9. S. M. Johnson. Optimal two and three-stage production schedules with setup times included. Naval Res. Logist. Q. 1, 61-68 (1954).
34
FONG-YUEN DING and DUANGJAIKITTICHARTPHAYAK
10. S. Kochhar and R. J. T. Morris. Heuristic methods for flow lines scheduling. J. Manuf. Syst. 6, 299-314 (1987). 1 I. R. M. Karp. On the computation complexity of combinatorial problems. Networks 5, 45~58 (1975). 12. H. Luss and M. B. Rosemwein. A due date assignment algorithm for multiproduct manufacturing facilities. AT&T Bell Laboratories (1990). 13. S. H. Moon and R. H. Dean. A work flow control model for the flexible flowline. In Proc. Third ORSA/TIMS Conf. Manufacturing Systems (1989). 14. Y. B. Park, C. D. Pegden and E. E. Enscore. A survey and evaluation of static flow shop scheduling heuristics. Int. J. Prod. Res. 22, 127-141 (1984). 15. M. S. Salvador. A solution to a special case of flow shop scheduling problems. In Syrnp. Theory of Scheduling and Applications (Edited by S. E. Elmaghraby). Spring, New York (1973). 16. C. Sriskandarajah and P. Ladet. Some no-wait shops scheduling problems: complexity aspect. Eur. J. Opl Res. 24, 424 445 (1986). 17. R. J. Wittrock. Scheduling algorithms for flexible flow lines. IBM J. Res. Dev. 29, 401-412 (1985).