Research Article | Open Access
A Makespan Optimization Scheme for NP-Hard Gari Processing Job Scheduling Using Improved Genetic Algorithm
An optimization scheme for minimizing makespan of Gari processing jobs using improved initial population Genetic Algorithm (GA) is proposed. GA with initial population improved by using job sequencing and dispatching rules of First Come First Served (FCFS), Shortest Processing Time (SPT), Longest Processing Time (LPT), and Modified Johnson’s Algorithm for -machines in order to obtain better schedules than is affordable by GA with freely generated initial population and by individual traditional sequencing and dispatching rules was used. The traditional GA crossover and mutation operators as well as a custom-made remedial operator were used together with a hybrid of elitism and roulette wheel algorithms in the selection process based on job completion times. A test problem of 20 jobs with specified job processing and arrival times was simulated through the integral 5-process Gari production routine using the sequencing and dispatching rules, GA with freely generated initial population, and the improved GA. Comparisons based on performance measures such as optimal makespan, mean makespan, execution time, and solution improvement rate established the superiority of the improved initial population GA over the traditional sequencing and dispatching rules and freely generated initial population GA.
One of the most important products obtained from the processing of cassava is “Gari.” Gari is a creamy-white, granular flour with a slightly fermented flavor and a slightly sour taste made from fermented, gelatinized fresh cassava tubers. Gari processing industries occupy a substantial portion of small and medium enterprises (SMEs) in Nigeria. In the past few decades, research on Gari production has yielded tremendous gain particularly in the areas of developing Gari processing machine and improving on its quality. However, little or no attention has been given to scheduling of customers’ orders in a way that would improve delivery performance and inventory management and reduce production cycle times and overall cost associated with the production process. Hence, operational bottlenecks are often experienced in the day to day activities while the desire for appropriate processor becomes imperative.
Job scheduling in a Gari processing firm is analogous to a flow shop in which a set of -jobs have to be processed with identical flow patterns on -machines. In their works [1–3] developed scheduling models on the following assumptions.(i)Each of the -jobs has the same ordering of machines for its process sequence.(ii)At a time, every job is processed on one and only one machine, which means no job splitting.(iii)Each of the -machines can process only one job at a time.(iv)The operations are not preemptible.(v)The operation processing times on the machines are known and fixed.(vi)Setup times of operations are independent of the sequences and therefore can be included in the processing time.
The Gari processing scheduling is an NP-hard problem  making it computationally difficult because with increasing number of jobs the computation time increases exponentially. There are no known algorithms for finding optimal solutions in polynomial time. Consequently, most researches are devoted to either simplifying the scheduling problem to the point where some algorithms can find solutions or devise efficient heuristics for finding better solutions. Motivated by the computational complexity of the problem, a makespan optimization scheme using genetic algorithm is presented here to develop a structure for the suitable scheduling of orders (jobs) in a Gari processing firm. In practice, the job shop scheduling has been approached mainly by using dispatching rules with the objective of finding a sequence that minimizes the makespan. For problems with 2 machines or 3 machines under specific constraints on job processing times, the efficient Johnson’s algorithm  obtains an optimal solution for the problem. However, since this scheduling problem is NP-hard  the search for an optimal solution centres on more theoretical than practical importance. Therefore, since the 1960s a number of heuristics that provide near optimal or good solutions with limited computation effort have been proposed for flow shop sequencing. The performance of some earlier heuristics was evaluated in . Heuristics can be classified according to two major categories: constructive or improvement methods. The constructive algorithms obtain directly a solution for the scheduling problem, that is, an n- job sequence, by using some procedure which assigns to each job a priority or an index in order to construct the solution sequence (see, e.g., [6–10]). An improvement method starts from a given initial solution and looks for a better one normally by using some neighborhood search procedure. Metaheuristics can also be considered as improvement heuristics. Among these groups of techniques are genetic algorithms (GAs), simulated annealing (SA), tabu search (TS), and their hybrids. The first proposed metaheuristics for the permutation flow shop scheduling problem (PFSP) are the simulated annealing algorithms by  demonstrating different tabu search approaches. Other algorithms are the path-based method of Werner  or the iterated local search (ILS) of Stutzle . Recently, Rajendran and Ziegler  have proposed two very effective ant colony optimization (ACO) algorithms and Grabowski and Wodecki  a very fast TS approach. Ruiz and Maroto  give an updated and comprehensive review of flow shop heuristics and metaheuristics. Another recent review is given by Soewanda et al.  compared ant colony and combination of genetic algorithm and tabu search for solving flow shop scheduling problem. Nagano et al.  proposed a hybrid genetic algorithm, which combines genetic algorithm and NEH algorithm to solve similar problems. Ruiz et al.  proposed a robust genetic algorithm that considered some new genetic operators, population initialization, and generation on new population. In association with , Ruiz also proposed a robust hybrid-genetic algorithm. The paper discusses the comparison between ant colony, hybrid genetic, and robust-hybrid genetic algorithm. This paper focuses on the use of genetic algorithms (GA). A genetic algorithm is a computerized iterative search optimization technique. It is based on the mechanics of natural selection and natural genetics that deals with populations of solutions rather than with a single solution. This type of algorithm provides near optimal schedules. The optimum value depends on the operators like crossover, mutation, number of iterations (generations), and so forth. In every generation, a new set of artificial individuals (strings) is created. Evolution of chromosomes over generations is by survival of the fittest. GA searches a problem space with a population of chromosomes and selects chromosomes for a continued search based on their performance. Each chromosome is decoded to form a solution in the problem space in the context of optimization problems. Genetic operators are applied to high performance structures (parents) in order to generate potentially fitter new structures (offsprings). Therefore, good performers propagate through the population from one generation to the next . Holland  presented a basic GA called “simple genetic algorithm” in his studies that is described as in Algorithm 1.
A GA contains the following major ingredients: parameter setting, representation of a chromosome, initial population and population size, selection of parents, genetic operations, and a termination criterion.
This paper describes a makespan optimization scheme using a genetic algorithm with improved initial population as a structure for the suitable scheduling of orders (jobs) in a Gari processing firm. The makespan optimization scheme using GA has a number of new features compared to a traditional genetic algorithm. These include the generation and evolution of a 2-dimensional array of improved initial population size by incorporation of heuristics into initialization to generate well-adapted initial population. In this way, the genetic algorithm (GA) with elitism can guarantee to do no worse than the conventional heuristic does. In this paper, the initial populations are generated using traditional dispatching rules, with corresponding string numbers and string lengths analogous to the number of workstations and work orders. A hybrid of elitism and roulette wheel algorithms was used in the selection process based on job completion times decoded from chromosomes. The reproductive operators are the traditional crossover and mutation operators and a custom-made remedial operator. The performance of the formulated scheme using GA for the same test problem is then compared with some other sequencing and dispatching rules as well as GA scheme with freely generated initial population. A 20-job test problem was simulated through the integral 5-process Gari production routine.
The rest of this paper is organized as follows: Section 2 discusses the Gari processing system and scheduling framework, Section 3 presents detailed descriptions of the proposed method and algorithm, and Section 4 presents the data analysis. In Section 4, extensive comparison of the proposed method is undertaken with some other sequencing and dispatching rules.
Finally, in Section 5 some conclusions from the study are provided along with some future research directions.
2. The Gari Processing System
The Gari processing plant flowchart consists of the basic processes of peeling, grating, pressing, sieving, and roasting/drying (Figure 1). The firm that processes the cassava has one of each of these stage-wide machines. Thus, customers from all over the city arrive at the Gari processing firm at different periods of the day, with varying amounts of fresh cassava roots for processing.
In order to schedule the processing of customers’ orders such that maximum profit is obtained, the principles guiding flow shop scheduling are adopted in which the cassava processing plant is considered as a 5-machine flow shop system where customers are free to bring their jobs at any time. However, each customer’s order (fresh roots) passes through the machines in the same order. Since different quantities are brought for processing and the fresh roots have the same surface area characteristics, each order requires different amounts of processing time. In the current work, the unit of measurement is hour. Since test methods that could handle large numbers of orders are proposed here, the test problem considers a case of 20 customers. This corresponds to 20 individual jobs. The concern is in what way should the customers’ orders be processed such that the firms profit is maximized? In order to solve this problem, the study considers a common measure of performance utilized in the flow shop scheduling literature—the makespan. The principle here is to monitor the completion time of the last scheduled customer’s order. Much work has been done in understanding this principle, as stated by . There is much support for the use of the makespan approach as a measure of performance as evidenced by its extensive use in maximizing production rates and minimizing the mean idle time of machines .
In this study, a GA scheme initialized by using job sequencing heuristics and dispatching rules of FCFS, SPT, LPT, and modified Johnson’s algorithm to generate well adapted initial population for Gari processing job scheduling with makespan as the criterion is used. Before discussing how this improved GA is realized, the sequencing and dispatching rules used to improve the GA’s initial population are discussed.
3.1. First Come First Served (FCFS) Rule
Using this rule, jobs are scheduled as they arrive for production. This is the traditional rule for scheduling.
3.2. Shortest Processing Time (SPT) Rule
Jobs are scheduled with this rule by sequencing them in ascending order of job processing times per process. The SPT scheme is depicted by Algorithm 2.
3.3. Longest Processing Time (LPT) Rule
Jobs are scheduled with this rule by sequencing them in descending order of job processing times per process.
To realize the equivalent longest processing time (LPT) algorithm, the premise of the conditional statement in Step 4 ( is changed to ( in the SPT Algorithm 2.
3.4. Modified Johnson’s -Machine Algorithm
Johnson’s method is defined optimally for two machines. However, since it is optimal, and easy to compute, it is adaptable for 2 machines (). The idea is as follows: imagine that each job requires operations in sequence, on , ,…, . We combine the first /2 machines into an (imaginary) machining center, MC1, and the remaining machines into a machining center, MC2. Then the total processing time for a part on MC1 is equal to the sum of operation times on the first /2 machines, and processing time for part on MC2 is equal to operation times on the last /2 machines. By doing so, the -Machine problem is reduced to a two-machining-center scheduling problem. The modified Johnson’s algorithm is depicted in the immediate Algorithm 3.
3.5. Parameters Setting
The parameters in GA comprise the population size, number of generations, crossover probability, and mutation probability. These parameters are used as fixed values throughout the genetic evolution until the termination criterion is attained.
In GA, each solution is usually encoded as a bit string. During the past years, many encoding methods have been proposed for scheduling problem . Among various kinds of encoding methods, job-based encoding, machine-based encoding, and operation-based encoding methods are most often used for scheduling problems. This study adopts job-/machine-based encoding method. Each gene uniquely indicates an operation and can be determined according to its order of occurrence in the sequence. Let denote the operation of job . The chromosomes can be translated into a unique list of ordered operations typified by the concatenated strings making up individual chromosomes as shown in Table 1.
3.7. The Algorithm
3.7.1. Generation of Initial Population
The initial population sets are generated using four traditional job dispatching rules: first come first served (FCFS), shortest processing time (SPT), longest processing time (LPT), and modified Johnson’s algorithm.
The following are the GA parameters used: population size = 250 number of strings = 5 (corresponding to the five stages of Gari processing) individual string length = 20 bytes (corresponding to the number of jobs used for the test problem here) crossover probability = 0.6 mutation probability = 0.05 number of generations = 500.
In GAs, these parameters are subjectively specified to fit the characteristics of the problem on hand and standard tested parameter ranges that research has established.
Step 1. Create a 2-dimensional array using random variations of the solution obtained with any of the traditional job sequencing and dispatching rules mentioned above (see Table 2).
Step 2. Using the corresponding job times for the job numbers in each byte position of each of the 5 strings in each chromosome, the makespan corresponding to each chromosome is computed according to the sequence in the chromosome.
Step 3. Arrange the reciprocal of the makespan (representing the fitness) obtained for the individual chromosomes of the initial population in descending order of magnitude.
Step 4. Obtain corresponding cumulative fitness value for each chromosome as ordered in Step 3.
Step 5. Normalize the values of the cumulative fitness obtained and create class boundaries with them for roulette wheel selection.
At this stage selection of chromosomes that qualify as parents is made using a combination of roulette wheel selection and elitism.
Step 1 (selection by elitism). The chromosomes are classified into five distinctive groups of 50 from each of which the first and the last chromosomes in the ordered class are selected automatically to the next generation. Under Scheme 10 chromosomes are selected into the next generation.
Step 2 (selection using roulette wheel). Randomly generate pairs of integer numbers between 1 and 250 to determine parents for the genetic operation of reproduction. This scheme selects the balance of 240 chromosomes into the next generation.
Crossover is an operation to generate new strings (i.e., children strings) from two parent strings. It is the main reproduction operator of GA. During the past years, various crossover operators had been proposed . The work showed that the two-point crossover is effective for flow shop problems. Hence the two-point crossover method is used in this study.
The following steps are undertaken to execute the crossover operation.
Step 1. Generate a random number between 0 and 1 and compare it to the specified crossover probability. If the generated number is less than or equal to the specified probability, crossover is permitted; otherwise the pair goes by into the next generation.
Step 2. To determine the string where crossover will occur, generate random integers between 1 and 5; the numbers generated represent the strings where crossover will take place.
Step 3. To determine crossover positions, generate a random integer between 2 and 19 twice. And exchange the content of chromosome on each corresponding position.
Mutation is another operator of GA. Such an operation can be viewed as a transition from a current solution to its neighborhood solution in a local search algorithm. It is used to prevent premature convergence and fall into local optimum. To determine mutation parents, generate two numbers independently between 1 and 250.
Step 1. Generate a random number between 0 and 1 to ascertain whether a parent will be mutated. If the number is less than the specified mutation probability, mutation is permitted; otherwise the pair of chromosomes selected goes by into the next generation.
Step 2. To determine the string where mutation will occur, generate a random integer between 1 and 5; the number generated represents the string where mutation will take place.
Step 3. To determine mutation position, generate a random integer between 1 and 20 and exchange the contents of the two chromosomes at the mutation position.
3.7.5. Remedial Operator
Remedial operation is necessitated after using the traditional GA operators as some numbers representing the jobs in strings are repeated. Hence, some between the ranges of 1 and 20 in which each number should occur once will be omitted. Thus, there is a need to rectify the situation. The scheme for remedial operator is explained below.
Step 1. Search each string to determine if a value is repeated.
Step 2. Store the number of times it is repeated by indexing.
Step 3. Generate a random integer between 1 and the number of times the number is repeated.
Step 4. The value generated represents the index of the repeated value that will be retained.
Step 1. Search each string to determine if a point value is omitted.
Step 2. Store the numbers omitted by indexing.
Step 3. Generate the numbers that are omitted randomly. The value represents the omitted value that a vacant point will be assigned.
Step 4. Generate the index of the vacant position randomly. The value generated represents the point where the value generated in Step 3 will be assigned.
The makespan will be evaluated, and the corresponding value will be stored. The process will be repeated. If a better optimal solution is obtained, it will replace the penultimate optimal value.
GA continues to process the above procedure until attaining the stop criterion set by user. The commonly used criteria are as follows: (1) the number of executed generations; (2) a particular object; and (3) the homogeneity of population. This study uses 500 generations to serve as the termination condition.
3.8. Test Problem
A 20-job test problem was simulated through the integral 5-process Gari production routine. As exemplified in our previous discussion the goal is to determine appropriate job order that will guarantee productivity and time response to customers order without delay. In the real world jobs are described by arrival time, processing time, and due-dates. In this work only arrival time and processing times of jobs (for peeling processing time—PPT, grating processing time—GPT, pressing processing time—PRPT, sieving processing time—SPT, and frying processing time—FrPT) were considered. Table 3 shows the job data.
3.9. Method of Solution
All algorithms were coded and run within the MATLAB environment. The test problem was run with a MATLAB 7.5 program using the algorithm to evaluate the makespan for each of the chromosomes. The hardware used for running the M-file programme is a 1.67 GHz Intel Core Duo CPU T2300 with 512 MB memory.
3.10. Methods of Analysis
The results obtained by using different sequencing and dispatching rules to generate initial population for the genetic algorithm optimization scheme are compared with the results from the GA scheme using freely generated initial population and those using the traditional sequencing and dispatching rules of shortest processing time, longest processing time, first come first served, and the modified Johnson’s algorithm. The bases of comparison of results are the optimal mean-makespans obtained from programme execution times for the various options.
The Mean-Makespan. The makespan for a set of jobs under consideration is the total time durations through all the five integral production processes of all jobs received within a time horizon in the Gari processing job shop. The mean-makespan is thus the quotient of the makespan and the number of jobs processed. The optimal mean-makespan is functional defined as where is the minimum time (span or duration) for job to be completed through the five production processes.
The is also equivalent to the minimum difference between the time point of completion of job and the arrival time point in the job shop. Assuming there is no breakdown within the system of production, this span is dependent on the sequence of jobs at each stage or process of production. For the traditional sequence and dispatching rules the sequences are well defined. For the new approach used in this work, an improved solution with sequences evolving through genetic algorithm optimality process is sought.
Execution Time. As a basis for practical implementation, the time of execution of a sequence of processes of the sort used in this work is paramount. If a particular scheme is to be more beneficial than any other to industrial practitioners who are time-conscious, it must be executable faster. This informs the comparison of the execution time for the different options of scheduling used in this work.
Population Variation within the Genetic Algorithm (GA) Scheme. Because of the subjective nature of choice of GA parameters, this work attempted to vary the population sizes of the genetic algorithm scheme used and compare both the mean-makespans and execution time for varying GA populations.
4. Results and Analysis
Table 4 clearly depicts the result obtained when the test problem was addressed using freely generated initial GA population. Table 5 indicates the result obtained using the four traditional job sequencing and dispatching methods as elucidated in Section 3. A mixed breed of the results obtained as in Table 5 indicates that the various job orders constitute the family initial population. The results obtained for running the algorithm with improved 2-dimensional array initial GA population that were generated from the traditional job sequencing and dispatching rules such as FCFS, SPT, LPT, and modified Johnson’s algorithm are shown in Table 6.
From Tables 4–6 it can be deduced that when the algorithm was tested with an improved initial GA population a better optimal makespan was realized as against the freely generated initial GA population. Generally, it can be stated that when the algorithm was tested with improved initial GA population a large difference was observed in the execution time and optimal makespan. Graphical illustrations of the above analysis are shown in Figures 2–4 utilizing the data in Tables 4–6.
Figure 2 shows that when heuristics is incorporated in the generation of initial population using traditional dispatching rule, a better optimal makespan is obtained. The result also indicates that as the size of the initial population increases the corresponding execution time also increases but the execution time obtained with a freely generated initial GA population is quite high when compared with the execution time obtained using the improved initial GA population.
From Figure 3, by comparing optimal makespans obtained, better optimal makespans are obtained with improved initial GA population than with randomly (freely) generated initial population. A better optimal makespan is obtained with improved initial GA population. Both plots are downward sloping from left to right and the population size increases while a better optimal makespan is obtained. The improved initial population proves to be much more effective.
Table 7 shows the improvement rate in optimal makespan when the algorithm was run with improved initial population over freely generated initial population; a remarkable improvement was observed when the population size was of 250 chromosomes. The average improvement rate of improved initial population over freely generated initial population is 0.360. This further confirms the superiority of the method over the other methods considered in this work.
This study developed a makespan optimization scheme using genetic algorithm with improved initial population as a structure for the suitable scheduling of orders (jobs) in a Gari processing firm using initial GA population based on job sequencing and dispatching rules. A number of new features were incorporated into the improved initial GA population. Several yardsticks were used for quantifying the performance of the scheme; the computed results are then compared when the same test problem is addressed using a freely generated GA initial population and four traditional job dispatching rules as follows: first come first served (FCFS), shortest processing time (SPT), longest processing time (LPT), and modified Johnson’s algorithm. Analyses based on the computed results show that the method can propitiously improve the results obtained by using freely generated initial GA population and traditional job sequencing and dispatching rules. A better optimal makespan is obtained with the improved initial GA population and as the size of the initial population increases, the corresponding execution time increases; the execution time obtained with a freely generated initial GA population is quite high when compared with the execution time obtained using the improved initial GA population. In conclusion, GA provides a variety of options and parameter settings which still have to be fully investigated. This study has demonstrated that scheduling of orders (jobs) in a Gari processing firm can be addressed by means of GA and suggests that such procedures are well worth exploring in the context of solving large and difficult combinatorial problem which may be of interest to industrial practitioners and academic researchers in the field of evolutionary computing and machine scheduling.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
- T. Aldowaisan and A. Allahverdi, “New heuristics for no-wait flowshops to minimize makespan,” Computers and Operations Research, vol. 30, no. 8, pp. 1219–1231, 2003.
- R. Bellman, “Mathematical aspects of scheduling theory,” Journal of the Society for Industrial and Applied Mathematics, vol. 4, no. 3, pp. 168–205, 1956.
- M. Y. Wang, S. P. Sethi, and S. L. Van De Velde, “Minimizing makespan in a class of re-entrant shops,” Operations Research, vol. 45, no. 5, pp. 702–712, 1997.
- C. H. Campbell, D. R. Dudek, and S. M. Smith, “A heuristic algorithm for n job, m machine sequencing problem,” Management Science, vol. 16, no. 10, pp. 630–637, 1970.
- P.-C. Chang, S.-H. Chen, and K.-L. Lin, “Two-phase sub population genetic algorithm for parallel machine-scheduling problem,” Expert Systems with Applications, vol. 29, no. 3, pp. 705–712, 2005.
- D. G. Dannenbring, “An evaluation of flow-shop sequencing heuristics,” Management Science, vol. 23, no. 11, pp. 1174–1182, 1977.
- C.-L. Chen, V. S. Vempati, and N. Aljaber, “An application of genetic algorithms for flow shop problems,” European Journal of Operational Research, vol. 80, no. 2, pp. 389–396, 1995.
- H. D. Pour, “A new heuristic for the n-job, m-machine flow-shop problem,” Production Planning and Control, vol. 12, no. 7, pp. 648–653, 2001.
- A. Dolgui, B. Finel, N. Guschinsky, G. Levin, and F. Vernadat, “MIP approach to balancing transfer lines with blocks of parallel operations,” IIE Transactions, vol. 38, no. 10, pp. 869–882, 2006.
- D. E. Goldberg, Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, Reading, Mass, USA, 1989.
- S. Reza Hejazi and S. Saghafian, “Flowshop-scheduling problems with makespan criterion: a review,” International Journal of Production Research, vol. 43, no. 14, pp. 2895–2929, 2005.
- F. Werner, “On the heuristic solution of the permutation flowshop problem by path algorithms,” Computer and Operations Research, vol. 20, no. 7, pp. 707–722, 1993.
- T. Stutzle, Local search algorithm for combinatorial problems: analysis, improvements, and newapplications [Ph.D. thesis], Darmstadt University of Technology, Department of Computer Science, 1998.
- C. Rajendra and H. Ziegler, “Ant colony algorithms for permutationflowshop scheduling to minimize makespan/totalflow-time of jobs,” European Journal of Operational Research, vol. 155, no. 2, pp. 426–438.
- J. Grabowski and M. Wodecki, “A very fast tabu search algorithmfor permutation flow shop problem with makespancriterion,” Computers and Operations Research, vol. 31, no. 11, pp. 1891–1909, 2004.
- R. Ruiz and C. Maroto, “A comprehensive review and evaluationof permutation flowshop heuristics,” European Journal of Operational Research, vol. 165, no. 2, pp. 479–494, 2005.
- J. Soewande, T. Octavia, and I. H. Sahputra, “Robust hybrid genetic algorithm for a flow-shop scheduling problem (A case study at PT FSCM manufacturing Indonesia),” Jurnal of Teknik Industri, vol. 9, no. 2, pp. 144–151, 2008.
- M. S. Nagano, R. Ruiz, and L. A. N. Loren, “A constructive genetic algorithm for permutation flow shop scheduling,” Computer and Industrial Engineering, vol. 55, no. 1, pp. 195–207, 2008.
- R. Ruiz, J. C. Garcia-Diaz, and C. Maroto, “Considering schedulling and preventive maintenance in the flow shop sequencing problem,” Computer and Operations Research, vol. 34, no. 11, pp. 3314–3330, 2007.
- A. El-Bouri, N. Azizi, and S. A. Zolfaghari, “Comparative study of a new heuristic based on adaptive memory programming and simulated annealing: the case of job shop scheduling,” European Journal of Operational Research, vol. 177, no. 3, pp. 1894–1910, 2007.
- J. H. Holland, Adaptation in Natural and Artificial Systems: An IntroducTory Analysis with Applications to Biology, Control and Artificial Intelligence, University of Michigan Press, 1975.
- J. C.-H. Pan and J.-S. Chen, “Minimizing makespan in re-entrant permutation flow-shops,” Journal of the Operational Research Society, vol. 54, no. 6, pp. 642–653, 2003.
- J. C. H. Pan and J. S. Chen, “A comparative study of schedule-generation procedures for the re-entrant shops,” International Journal of Industrial Engineering, vol. 11, no. 4, pp. 313–321, 2004.
- M. Pinedo, Scheduling Theory, Algorithms and Systems, Prentice Hall, Englewood Cliffs, NJ, USA, 2nd edition, 2002.
- S. G. Ponnambalam, P. Aravindan, and S. Chandrasekaran, “Constructive and improvement flow shop scheduling heuristics: an extensive evaluation,” Production Planning and Control, vol. 12, no. 4, pp. 335–344, 2001.
Copyright © 2014 Adeyanju Sosimi et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.