- About this Journal ·
- Abstracting and Indexing ·
- Aims and Scope ·
- Article Processing Charges ·
- Articles in Press ·
- Author Guidelines ·
- Bibliographic Information ·
- Citations to this Journal ·
- Contact Information ·
- Editorial Board ·
- Editorial Workflow ·
- Free eTOC Alerts ·
- Publication Ethics ·
- Reviewers Acknowledgment ·
- Submit a Manuscript ·
- Subscription Information ·
- Table of Contents
Applied Computational Intelligence and Soft Computing
Volume 2010 (2010), Article ID 781598, 14 pages
Modeling and Evolutionary Optimization on Multilevel Production Scheduling: A Case Study
1School of Control & Computer Engineering, North China Electric Power University, Beijing 102206, China
2College of Engineering Science & Technology, Shanghai Ocean University, Shanghai 201306, China
3School of Economics & Management, Beihang University, Beijing 100083, China
Received 31 August 2009; Revised 27 February 2010; Accepted 16 April 2010
Academic Editor: Chuan-Kang Ting
Copyright © 2010 Ruifeng Shi 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.
Multilevel production scheduling problem is a typical combinatorial optimization problem in a manufacturing system, which is traditionally modeled as several hierarchical sublevel problems and optimized at each level, respectively. An integrated model, which can cope with the whole multilevel scheduling information simultaneously, is proposed in this paper, and a specific evolutionary algorithm is designed to solve the integrated model with a twin-screw coding strategy. In order to evaluate the performance of the new algorithm, a real 3-level production scheduling problem is employed for case study, and two typical metaheuristic algorithms, a genetic algorithm (GA) and a simulated annealing (SA), are also employed for comparison study. Experimental simulation results show that our proposed modeling and optimization method has outperformed the other ones.
Multi-level production scheduling problem is a typical combinatorial optimization problem in manufacturing system, which is traditionally modeled as several hierarchical sublevel problems, and solved by single-level scheduling methods level by level [1–4]. As we know, the trends of manufacturing system development are increasing the competitivity of the company, promoting the customers’ service level, integrating the global manufacturing information, and processing flexible task flows in a more efficient way [5, 6]. In order to cope with these trends, researchers need to optimize plant operations and total activities from suppliers to customers and help manufacturers to find their ways in global optimization and support the needs of manufacturing at the same time. Along with all these scenarios, problem modeling and its optimization techniques play important roles in achieving these goals [7–10].
Generally speaking, multi-level production scheduling problem (MLPS) is one kind of hierarchical production planning problem, which considers a set of jobs on given machines with predefined sequence, while discarding to cope with a lot size problem [11–13]. Jobs in an MLPS problem belong to different product levels, and the higher level product cannot begin its process operation until all its subproducts in the lower level are finished. The general way to solve an MLPS problem is decomposing the entire problem into several sublevel problems according to its product level structure and optimize these subproblems within each level . The product level structure of a typical MLPS problem can be illustrated as in Figure 1, in which job 1 belongs to level 1; jobs 2, 3 belong to level 2; jobs 4, 5, 6, 7, 8 belong to level 3. Besides, the process operation precedence between adjacent levels is as follows: job 2 (level 2) cannot begin its process operation, until all its sub-jobs 4, 5 (level 3) are finished; job 1 (level 1) cannot begin its process operation, until all its subjobs 2, 3 (level 2) are finished.
2. Related Works
During the past decades, some researches have tried their efforts to demonstrate that a hierarchical production planning technique is the most efficient way in solving a multistage, multilevel production planning problem [15–17], while other researchers believed in that a monolithic/integrated method is better than a hierarchical one. These researchers proposed many integrated multi-level production planning models for various problems and obtained some exciting conclusions. But most of them are focused on coping a scheduling problem with a lot sizing problem simultaneously; few attention is taken on the MLPS described as in Figure 1. The reason may lied in the fact that a batch production module plays a major role in most manufacturing companies during the past decades, but a small batch, multiclass production module becomes more and more popular in current factories, especially in some high technological industries. This leads researchers to find more efficient models and optimization techniques to solve the MLPS in recent years [18–20].
Since the occurrence of modern heuristic optimization algorithms, like evolutionary algorithm (EA), simulated annealing (SA), coevolutionary algorithm (COEA), ant colony (AC), and particle swarm optimization (PSO), and so forth, solving a large scale MLPS with an integrated model becomes possible within an acceptable computational cost. More and more attentions are attracted to solve this NP complete (or NP-Hard) problem with an integrated model, and various problem-dependent heuristic algorithms are proposed to enhance the efficiency of the algorithms, among which evolutionary algorithm is the most attractive/preferred one [21–23].
Usually, an evolutionary algorithm is designed to solve a single-level scheduling problem, and an MLPS integrated model can be solved with a hierarchical looped EA, in which precedence prerequisite information can be satisfied with transferring the ready time and release time between adjacent levels. The result is greatly improved by contrast to a hierarchical technique. But the computational cost with this scheme may grow rapidly as the problem scale is increasing. Besides, the optimality of the final result is doubted by many classical optimization mathematicians. This leads researchers turning to new gene expression and evolving strategies to overcome those drawbacks.
In the following sections, Section 3 builds up a general integrate 3-level production scheduling optimization model. Section 4 proposes a twin-screw-coded hybrid evolutionary algorithm to solve the integrated model. Section 5 employs a real 3-level production scheduling case study to evaluate the performance of the proposed modeling and optimization technique, and Section 6 gives the conclusion of this study and highlights some perspectives for future study.
3. Mathematical Integrated Model for a Typical Three-level Production Scheduling Problem
In general, a multi-level production scheduling problem (Figure 1) can be described as follows: a final product consists of several () assemblies, each assembly consists of some () subassemblies, and each subassembly consists of several () parts All the jobs, including assemblies, subassemblies, and parts, should be processed through , , and operational sequences with given orders, where represents the maximum operation number of assembly , represents the maximum operation number of subassembly , and represents the maximum operation number of part . Besides, one assembly cannot begin its process operation until all of its subassemblies are finished and assembled into the assembly. The final product is assembled by the assemblies. Generally, min is considered as the optimization objective. In this section, an integrated 3-level MLPS model is built up, which can be stated as (1)–(24):
The definition of the parameters in the model is as follows.
represents the feasible solution set; represents the operation of job assembly , represents the th operation of job subassembly ; represents the th operation of job part ; represents the operation time of ; represents the operation time of ; represents the operation time of ; is an infinite positive multiply factor:
The definition of the decision variables in the model is as follows.
represents the start time of operation , represents the start time of operation , represents the start time of operation and represents the end time of assembly ; thus we have and the 0-1 programming variables are defined as
Equation (1) gives the optimization objective as makespan; (2) constrains that the start time of an assembly must be later than the completion time of all its subassemblies; (3) constrains that the start time of a subassembly must be later than the completion time of all its parts; (4) defines the precedence relationship of assembly ’s two successive operations and ; that is, the start time of operation must be later than the end time of operation if , and vice versa; (5) defines the precedence relationship between subassembly ’s two successive operation and ; (6) defines the precedence relationship between part ’s two successive operation and ; (7)–(15) define that there can only process at most one job on machine at one time; (16)–(18) constrain the start time of each operation as a non-negative variable; (19)–(21) define the constraints between each related-pair of decision variables in each level to guarantee the feasibility of the solution; (22)–(24) define the constraints between each pair of decision variables in different levels.
4. Twin-Screw-Coded Evolutionary Algorithm for Multilevel Production Scheduling Optimization
Since the computational complexity of the multi-level production scheduling problem is very high, it is hard to solve it with current existing optimization methods efficiently (either the precise methods or the problem-dependent heuristic algorithms). In order to overcome the drawbacks of current existing methods, a twin-screw-coded evolutionary algorithm is proposed in this paper, which encodes a possible multi-level scheduling scheme in a twin-screw chromosome, and a metaheuristic-based population gap for elitist exchange and local search is employed to enhance the convergence of the algorithm.
A typical 3-level MLPS example is shown in Figure 2, which includes two assembles (1,7), five subassemblies (1’s subassemblies include 2, 3; 7’s subassemblies include 8, 9, 10) and nine parts (2’s parts are 4, 5; 3’s part is 6; 8’s parts are 11, 12, 13; 9’s part is 14; 10’s parts are 15, 16). The hierarchical process precedence relationship between the jobs can be easily told from the figure, in which the process scheduling optimization covers all 3-levels’ jobs at the same time.
4.1. Gene Expression: Twin-Screw Coding
Current existing evolutionary coding can only express one single level’s scheduling information; it is hard to employ them to express a multi-level production scheduling information with one chromosome. Hence, we propose an operation-based twin-screw coding strategy to solve this problem: we define each job number with an implicit subsidiary coding (subcoding) to label its level information and construct a twin-screw module to express the hierarchy of the scheduling scheme. Assume that, in the example of Figure 2, each job in has two operations, respectively, job has three operations, and all the other jobs have only one operation, which is a typical mixed flexible job shop problem. A feasible solution for this problem can be coded as a twin-screw gene (shown as Figure 3), in which the italic gene in the second row shows the level of the job above it. Thus, we can construct a feasible chromosome for the 3-level job process scheduling problem with the twin-screwed gene expression.
In order to guarantee the feasibility of a twin-screw-coded chromosome, a specifically designed decoding strategy (shown as Figure 4) is employed to cope with this issue. We employ the example mentioned above to illustrate the process of our proposed decoding method, in which process scheduling information is obtained from lower level to the higher one. The genotype codes of a chromosome are scanned from the beginning to the end; those operations that labeled with a “3” as its implicit twin-code (in the second line) are Recognized as part level’s jobs and labeled to phenotype; after a round-robin scan, all the jobs belonging to the part level are kicked off from the original chromosome, a second round scan is taken to label the subassembly level, and then the assembly level, until all the levels’ operations are labeled and the whole chromosome is decoded to a complete 3-level job scheduling solution with phenotype status.
In the decoding process (Figure 4), represents the first operation of job 5; represents the operation of job 4. The final decoded solution of the above example is as follows:(i) part level: , , , , , , , , , , , ;(ii) subassembly level: , , , , , ;(iii) assembly level: , , .
In order to promote the decoding efficiency, an object-oriented data structure is designed to fulfill this task (Figure 5). The principle of designing the data structure and some variable abbreviations are noted as the follows.
() A chromosome composes three parts: twin-screw codes for sequence and “level” information, job-related information, and machine-related information.
() “GENE_i” represents the twin-screw coding structure of a chromosome; “JobNr” represents the job number (the number of each job is equal to its operation number); The initial “Flag” of job “i” indicates the production level, which job “i” belongs to.
During the decoding process, when all the operations of one subjob of job “i” are finished, we add “Job_i”’s “FinishedSubJobs” by (): when the value is equal to “i”’s “TotalSubJobs”, that means all the subjobs of “i” have been finished we turn the “Flag” of “i” from 1 to 0 under this circumstance, and return the scan pointer into the beginning of the twin-screw, and rescan the left operations.
() “OperationInfo” records the start time and end time of each job.
() “TotalOperNr”, “TotalSubJobs”, and “SubJobNr” are the initial status of the jobs; these information can be obtained from the configuration document.
() “Mach_i” records the job sequences at machine “i”; these pieces of information are employed to verify the validity of a solution, and to make preparation data for Gantt graph, while not participating the decoding process.
4.2. Evolutionary Operators: Crossover and Mutation
In order to guarantee the feasibility and validity of the chromosome during the population evolution, we propose improved crossover and mutation operators for the twin-screw-coded chromosome based on previous work in permutation scheduling problem studies (see ). The principle of designing the evolutionary operators is similar to that of PMX crossover and swap mutation operators (see ), which can be illustrated by examples shown in Figures 6 and 7.
Crossover operator for a twin-screw-coded chromosome is as follows.
Step 1. Randomly generate two cutting points , (assume ) on the two parents chromosome , .
Step 2. Exchange the partial chromosome between and (not only the process sequence information but also the “level” information) to get the two proto-children, shown as and in Figure 6.
Step 3. Scan and eliminate the existing elements of from parent 1 and from parent 2 to determine the mapping relationship between two mapping sections. After the mapping operation, we get two subsidiary partial mapping information as the , shown in Figure 6.
Step 4. Legalize the offspring with the mapping relationship information, and obtain two feasible offspring children (offspring1 and offspring2 in Figure 6).
Please note that the whole crossover process is guided and dominated by the sequence information, but not the “level” information. Because in our proposed twin-screw-coded chromosome, each bit of “level” information is bound strength with a corresponding operation information, it does not make any sense except in the decoding process.
Mutation operator for twin-screw-coded chromosome is as follows.
Step 1. Randomly generate two mutate points , on the parent chromosome to be mutated.
Step 2. Swap the two position’s sequence and “level” information to generate a legal offspring child (as shown in Figure 7).
4.3. Population Reconstruction with Elitism Strategy
In our previous work, we have proposed an escalating evolutionary structure (shown in Figure 8), which has outperformed several other modern heuristic algorithms with applications to flow shop scheduling problems under the similar computational cost. In order to solve the integrated MLPS model efficiently, we introduce the escalating strategy into the twin-screw-coded EA to enhance its convergence performance. The brief idea of escalating strategy can be explained as follows.
A population evolves from a random beginning status, the probability of an individual to bring its offspring lies on its fitness. After some generations’ evolution, the population may keep in evolving with no progress further more in some successive generations; then the elitist individual (the best one in the population from the beginning to current generation) is kept and introduced into a new population directly, and all the other individuals of the new population are generated randomly (reconstruction/reinitialization). Thus, the new population continues the evolution process until the stop criterion is satisfied.
The escalation process implies two meanings: (), the elitist individual will be introduced into the new population directly; (), other individuals of the new population will be generated randomly, where () makes it possible to utilize the previous level’s search information, and () is designed to keep the population diversity, which helps the algorithm escaping from premature.
5. Case Study
5.1. Problem Description
In order to evaluate the performance of our proposed modeling and optimization technique, a 3-level production scheduling problem from one of Chinese famous satellite production factory is employed for case study. All the processing information has been necessarily deposed with pre-declassification need beforehand.
The hierarchical product structure of the problem is similar to the model described as (1)–(24): product 0–0 consists of 3 assemblies, each assembly consists of 4, 3, 2 subassemblies, respectively, and each subassembly consists of some given number of parts. The job of a higher level could begin its process operation only if all its sub-products are finished and are assembled. The process information includes technical constraints within levels and between levels, process time, and predefined operational sequence between jobs. The hierarchical logic relationship of the problem can be highlighted as shown in Figure 9.
Table 1 gives the detail process information of the problem. There are some complementary comments to the problem.
() The in Table 1 represent the process operations on those machines, whose process ability can be greatly increased with a bit costs and the workloads on them can be considered as light as possible. So the capability of these machines can be considered as infinite. These machines include common low-precise manufacturing machines, like lathe, planer, grinder, and so forth.
While the workloads on the other kind of machines are obviously heavy, not only the fixed expensive purchasing costs but also the expensive unit time process costs on them are much higher than the common ones. There are 4 units of such machines in the factory that we investigated, whose name can be listed as Rough Milling machine (RM), Precise Milling machine (PM), Digital Milling machine (DM), and Other Milling machine (OM), respectively.
() The definition of job numbers (JobNr) in Table 1 is as follows.(i) represents the part of subassembly ;(ii) is the label for subassembly ; (iii) is the label for assembly ; (iv) is the label of the final product.
After analyzing the process information, we make two assumptions to deduce the computational complexity of the raw problem, in which only the most “expensive” and “crowed” machines are specifically treated, while we neglect the scheduling planing on those “cheap” or “loosely required” machines.
Assumption (Machine Scarce/Nonscarce Assumption). As we know, a satellite product requires more precision than a civil product; its large size and highly precision quality leads to the need of high-performance milling machines in many operations. We discriminately treat the operations that need to be operated on milling machines with those operations that need to be operated on other machines and call the operations on these two kind of machines as Scarce machine operations and nonscarce machine operations. Consecutive operations on nonscarce machines can be combined into “Dummy Operations”.
The adjacent operations on nonscarce machines can be combined as one operation time, and the new combined operation can be considered as operations that have no constraints on machine availability; we only take its operation time into account but neglect the operation’s machine information.
Assumption (Machine Specification Assumption). As different machines for the same type of task in the satellite factory take different costs, the milling operations are allocated to different machines according to its precision requirements, which aims at strengthening the economic profit of the whole. After the hypothesis of dummy operation and machine operation specialization, we focus our effort on the scheduling of scarce machines, which can help us avoid to waste time on insignificant operations or wasting costly machines on simple or nonprecise operations; thus can we possibly obtain a better solution in a given time.
5.2. Data Preprocessing
There are 4 milling machines (RM/PM/DM/OM) in the factory. Since the operations on these milling machines are the bottle neck of the scheduling problem, we allocate the milling operations to these machines with regard to each machine’s operational precision and cost.(i) Rough milling operations are allocated to the machine “RM”.(ii) Precise milling operations are allocated to the machine “PM”.(iii) Digital milling operations are allocated to the machine “DM”.(iv) Other milling operations are allocated to the machine “OM”.
All the other nonmilling operations are considered as “dummy operations” (as mentioned in Section 5.1). After we combined the “dummy operations”, we get the new modified process data of the problem (shown in Table 2).
5.3. Comparison Study Algorithms and Parameters Setting
In order to evaluate the performance of our proposed TCEA with its application to MLPS, we employ two basic metaheuristic algorithms, GA (Genetic Algorithm), and SA (Simulated Annealing) as comparison algorithms for case study.
In order to obtain the best performance of TCEA, parameters experiment has been taken to search the best parameters combination. The experiment is designed with the following guidance rules .(i) Population size (POP_SIZE) varies from 100 to 500, skip rule 100.(ii) Evolutionary generation varies from 100 to 500, skip rule 100.(iii) Crossover probability varies from 0.3 to 0.9, skip rule 0.1.(iv) Mutation probability varies from 0.01 to 0.1, skip rule 0.01.(v) Population escalation gap varies from 10 to 1, skip rule 1.(vi) Elitist local search step varies from 10 to 50, skip rule 10.
After the parameters experiment, we set the parameters of TCEA as in Table 3. In order to compare the performance of TCEA with that of GA and SA in a fair circumstance, we make the similar parameters experiments for GA and SA, respectively, in which the total CPU time consumption is kept in the same level as TCEAs. After the experiments, we can set the parameters of TCEA, GA, and SA as in Table 3. Since the twin-screw coding strategy is a general encoding strategy designed for MLPS problems, we employ the coding strategy in all the three algorithms.
5.4. Results Analysis
Since all the algorithms that we study are metaheuristic algorithms, we run each algorithm for 20 independent times to collect their statistical results. With parameters set in Table 3, we get the optimization results as in Table 4 and figure 10, in which the average result of TCEA outperforms that of GA and SA:
The average makespan of product 0–0 obtained by our TCEA is 5612.4, and the results of GA and SA are 5691.2 and 5788.5, respectively; all these metaheuristic algorithms outperformed current technique in the factory (6580).
However, the computational cost of TCEA (about 270s) is a bit longer than that of GA (about 250s) and SA (about 190s) in the same experiment environment (all the experiments are taken in a CPU Pentium IV-3.2 G, 1 G Ram PC platform).
In general, the statistical results show the outstanding performance of our TCEA by contrast to that of GA and SA to cope with an MLPS problem.
A twin-screw-coded evolutionary algorithm (TCEA), which is motivated by solving a typical multi-level production scheduling problem (MLPS), is put forward in this paper. The principle of the new algorithm is introduced; besides, a real 3-level satellite part’s case study has revealed the superiority of TCEA by contrast to GA and SA, which further demonstrates the effectiveness and practicability of our integrated model and optimization technique in solving such complex production scheduling problems. As we know, MLPS is a complex NP-hard problem; this work just shows the preliminary result of our project. Further research has been taken, in which multiobjective MLPS problem modeling and optimization technique has been taken into consideration.
The authors would like to thank the Natural Science Foundation of China (Grant nos. 70771003, 60974051), the Natural Science Foundation of Hebei Province (Grant no. F2010001714), the Doctorial Faculty Research Foundation of North China Electric Power University (Grant no. 200822025), and Shanghai Special Foundation of Outstanding Young Teachers in University (Grant no. ssc08023) for their financial supports with this research. The authors would like to thank Dr. X.W. Tan and J. Wang for their helpful suggestions to improve this work, and thank Ms. S.P. Wang for her help in case study data collection. The authors would also like to thank the anonymous reviewers and Dr. C.K. Ting for their constructive comments to improve the work.
- D. Biskup, “A state-of-the-art review on scheduling with learning effects,” European Journal of Operational Research, vol. 188, no. 2, pp. 315–329, 2008.
- N. Boysen, M. Fliedner, and A. Scholl, “Sequencing mixed-model assembly lines: survey, classification and model critique,” European Journal of Operational Research, vol. 192, no. 2, pp. 349–373, 2009.
- Y. Li, K. F. Man, K. S. Tang, S. Kwong, and W. H. Ip, “Genetic algorithm to production planning and scheduling problems for manufacturing systems,” Production Planning and Control, vol. 11, no. 5, pp. 443–458, 2000.
- W. Shen, Q. Hao, H. J. Yoon, and D. H. Norrie, “Applications of agent-based systems in intelligent manufacturing: an updated review,” Advanced Engineering Informatics, vol. 20, no. 4, pp. 415–431, 2006.
- Y. K. Kim, K. Park, and J. Ko, “A symbiotic evolutionary algorithm for the integration of process planning and job shop scheduling,” Computers and Operations Research, vol. 30, no. 8, pp. 1151–1171, 2003.
- L. Li, J. Y. H. Fuh, Y. F. Zhang, and A. Y. C. Nee, “Application of genetic algorithm to computer-aided process planning in distributed manufacturing environments,” Robotics and Computer-Integrated Manufacturing, vol. 21, no. 6, pp. 568–578, 2005.
- F. Riane, A. Artiba, and S. Iassinovski, “An integrated production planning and scheduling system for hybrid flowshop organizations,” International Journal of Production Economics, vol. 74, no. 1–3, pp. 33–48, 2001.
- L. Tang, J. Liu, A. Rong, and Z. Yang, “A review of planning and scheduling systems and methods for integrated steel production,” European Journal of Operational Research, vol. 133, no. 1, pp. 1–20, 2001.
- N. Vandaele and L. De Boeck, “Advanced resource planning,” Robotics and Computer-Integrated Manufacturing, vol. 19, no. 1-2, pp. 211–218, 2003.
- W. Xia and Z. Wu, “An effective hybrid optimization approach for multi-objective flexible job-shop scheduling problems,” Computers and Industrial Engineering, vol. 48, no. 2, pp. 409–425, 2005.
- J. Deschamps and J. Bourrieres, “Multi-level data model for load allocation to distributed manufacturing resources,” in Proceedings of the IEEE International Symposium on Intelligent Control, pp. 357–362, New York, NY, USA.
- M. Pinedo, Scheduling-Theory, Algorithms, and Systems, Prentice Hall, Upper Saddle River, NJ, USA, 1995.
- D. E. Shobrys and D. C. White, “Planning, scheduling and control systems: why cannot they work together,” Computers and Chemical Engineering, vol. 26, no. 2, pp. 149–160, 2002.
- C. Moon and M. Gen, “Genetic algorithm-based approach for design of independent manufacturing cells,” International Journal of Production Economics, vol. 60, pp. 421–426, 1999.
- A. Drexl and A. Kimms, “Lot sizing and scheduling—survey and extensions,” European Journal of Operational Research, vol. 99, no. 2, pp. 221–235, 1997.
- B. Karimi, S. M. T. Fatemi Ghomi, and J. M. Wilson, “The capacitated lot sizing problem: a review of models and algorithms,” Omega, vol. 31, no. 5, pp. 365–378, 2003.
- M.-J. Yao and J.-X. Huang, “Solving the economic lot scheduling problem with deteriorating items using genetic algorithms,” Journal of Food Engineering, vol. 70, no. 3, pp. 309–322, 2005.
- E. Alvarez, “Multi-plant production scheduling in SMEs,” Robotics and Computer-Integrated Manufacturing, vol. 23, no. 6, pp. 608–613, 2007.
- B. R. Sarker and C. V. Balan, “Operations planning for a multi-stage kanban system,” European Journal of Operational Research, vol. 112, no. 2, pp. 284–303, 1999.
- Y.-N. Yang, H. R. Parsaei, and H. R. Leep, “Prototype of a feature-based multiple-alternative process planning system with scheduling verification,” Computers and Industrial Engineering, vol. 39, no. 1-2, pp. 109–124, 2001.
- T. P. Bagchi, Multiobjective Scheduling by Genetic Algorithms, Kluwer Academic, Boston, Mass, USA, 1999.
- M. Gen and R. Cheng, Genetic Algorithms and Engineering Design, John Wiley & Sons, New York, NY, USA, 1996.
- T. Murata, Genetic algorithms for multi-objective optimization, Ph.D. thesis, Osaka Prefecture University, Osaka, Japan, 1997.