Optimizing CPU Scheduling Problem using Genetic Algorithms

Similar documents
College of information technology Department of software

Introduction To Genetic Algorithms

Alpha Cut based Novel Selection for Genetic Algorithm

ISSN: ISO 9001:2008 Certified International Journal of Engineering Science and Innovative Technology (IJESIT) Volume 2, Issue 3, May 2013

Original Article Efficient Genetic Algorithm on Linear Programming Problem for Fittest Chromosomes

CHAPTER 6 GENETIC ALGORITHM OPTIMIZED FUZZY CONTROLLED MOBILE ROBOT

Lab 4: 26 th March Exercise 1: Evolutionary algorithms

A Robust Method for Solving Transcendental Equations

Evolutionary SAT Solver (ESS)

Genetic Algorithms and Sudoku

A Non-Linear Schema Theorem for Genetic Algorithms

Memory Allocation Technique for Segregated Free List Based on Genetic Algorithm

Genetic Algorithms commonly used selection, replacement, and variation operators Fernando Lobo University of Algarve

A Genetic Algorithm Processor Based on Redundant Binary Numbers (GAPBRBN)

Volume 3, Issue 2, February 2015 International Journal of Advance Research in Computer Science and Management Studies

Solving Banana (Rosenbrock) Function Based on Fitness Function

Genetic Algorithm Performance with Different Selection Strategies in Solving TSP

Genetic Algorithm. Based on Darwinian Paradigm. Intrinsically a robust search and optimization mechanism. Conceptual Algorithm

STUDY ON APPLICATION OF GENETIC ALGORITHM IN CONSTRUCTION RESOURCE LEVELLING

Numerical Research on Distributed Genetic Algorithm with Redundant

GA as a Data Optimization Tool for Predictive Analytics

Asexual Versus Sexual Reproduction in Genetic Algorithms 1

Holland s GA Schema Theorem

New Modifications of Selection Operator in Genetic Algorithms for the Traveling Salesman Problem

A Parallel Processor for Distributed Genetic Algorithm with Redundant Binary Number

Analysis and Comparison of CPU Scheduling Algorithms

A Study of Crossover Operators for Genetic Algorithm and Proposal of a New Crossover Operator to Solve Open Shop Scheduling Problem

International Journal of Software and Web Sciences (IJSWS)

Comparison of Major Domination Schemes for Diploid Binary Genetic Algorithms in Dynamic Environments

A Fast Computational Genetic Algorithm for Economic Load Dispatch

Advanced Task Scheduling for Cloud Service Provider Using Genetic Algorithm

Cellular Automaton: The Roulette Wheel and the Landscape Effect

PROCESS OF LOAD BALANCING IN CLOUD COMPUTING USING GENETIC ALGORITHM

A Group based Time Quantum Round Robin Algorithm using Min-Max Spread Measure

CHAPTER 1 INTRODUCTION

An Efficient load balancing using Genetic algorithm in Hierarchical structured distributed system

Objectives. Chapter 5: Process Scheduling. Chapter 5: Process Scheduling. 5.1 Basic Concepts. To introduce CPU scheduling

HYBRID GENETIC ALGORITHMS FOR SCHEDULING ADVERTISEMENTS ON A WEB PAGE

Nonlinear Model Predictive Control of Hammerstein and Wiener Models Using Genetic Algorithms

Keywords revenue management, yield management, genetic algorithm, airline reservation

A hybrid Approach of Genetic Algorithm and Particle Swarm Technique to Software Test Case Generation

Modified Version of Roulette Selection for Evolution Algorithms - the Fan Selection

AS part of the development process, software needs to

A Comparative Study of CPU Scheduling Algorithms

Model-based Parameter Optimization of an Engine Control Unit using Genetic Algorithms

Study of Various Load Balancing Techniques in Cloud Environment- A Review

A Comparison of Genotype Representations to Acquire Stock Trading Strategy Using Genetic Algorithms

Evolutionary Detection of Rules for Text Categorization. Application to Spam Filtering

Non-Uniform Mapping in Binary-Coded Genetic Algorithms

Genetic Algorithms for Bridge Maintenance Scheduling. Master Thesis

A Hybrid Tabu Search Method for Assembly Line Balancing

Design of Web Ranking Module using Genetic Algorithm

Improved Multiprocessor Task Scheduling Using Genetic Algorithms

COMPARISON OF GENETIC OPERATORS ON A GENERAL GENETIC ALGORITHM PACKAGE HUAWEN XU. Master of Science. Shanghai Jiao Tong University.

Announcements. Basic Concepts. Histogram of Typical CPU- Burst Times. Dispatcher. CPU Scheduler. Burst Cycle. Reading

Road Map. Scheduling. Types of Scheduling. Scheduling. CPU Scheduling. Job Scheduling. Dickinson College Computer Science 354 Spring 2010.

Stock price prediction using genetic algorithms and evolution strategies

PROCESS SCHEDULING ALGORITHMS: A REVIEW

Effects of Symbiotic Evolution in Genetic Algorithms for Job-Shop Scheduling

A Method of Cloud Resource Load Balancing Scheduling Based on Improved Adaptive Genetic Algorithm

A SURVEY ON GENETIC ALGORITHM FOR INTRUSION DETECTION SYSTEM

The Binary Genetic Algorithm

Scheduling. Yücel Saygın. These slides are based on your text book and on the slides prepared by Andrew S. Tanenbaum

SCHEDULING MULTIPROCESSOR TASKS WITH GENETIC ALGORITHMS

An evolutionary learning spam filter system

Practical Applications of Evolutionary Computation to Financial Engineering

Analysis of Job Scheduling Algorithms in Cloud Computing

Evaluation of Different Task Scheduling Policies in Multi-Core Systems with Reconfigurable Hardware

CHAPTER 3 SECURITY CONSTRAINED OPTIMAL SHORT-TERM HYDROTHERMAL SCHEDULING

Heuristics for the Sorting by Length-Weighted Inversions Problem on Signed Permutations

Vol. 35, No. 3, Sept 30,2000 ملخص تعتبر الخوارزمات الجينية واحدة من أفضل طرق البحث من ناحية األداء. فبالرغم من أن استخدام هذه الطريقة ال يعطي الحل

Genetic algorithms for credit card fraud detection

Research on a Heuristic GA-Based Decision Support System for Rice in Heilongjiang Province

Roulette Wheel Selection Model based on Virtual Machine Weight for Load Balancing in Cloud Computing

Genetic Regular Expressions: a New Way to Detect and Block Spam. Eric Conrad April 2008

LOAD BALANCING IN CLOUD COMPUTING

6 Creating the Animation

A Multi-objective Genetic Algorithm for Employee Scheduling

Objectives. Chapter 5: CPU Scheduling. CPU Scheduler. Non-preemptive and preemptive. Dispatcher. Alternating Sequence of CPU And I/O Bursts

MINIMUM FLOW TIME SCHEDULE GENETIC ALGORITHM FOR MASS CUSTOMIZATION MANUFACTURING USING MINICELLS

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS)

ON SUITABILITY OF FPGA BASED EVOLVABLE HARDWARE SYSTEMS TO INTEGRATE RECONFIGURABLE CIRCUITS WITH HOST PROCESSING UNIT

Optimizing Testing Efficiency with Error-Prone Path Identification and Genetic Algorithms

A Genetic Algorithm Approach for Solving a Flexible Job Shop Scheduling Problem

Principles of Evolution - Origin of Species

Genetic Algorithm. Tom V. Mathew Assistant Professor, Department of Civil Engineering, Indian Institute of Technology Bombay, Mumbai

Evolutionary Prefetching and Caching in an Independent Storage Units Model

A Review And Evaluations Of Shortest Path Algorithms

SOFTWARE TESTING STRATEGY APPROACH ON SOURCE CODE APPLYING CONDITIONAL COVERAGE METHOD

HYBRID GENETIC ALGORITHM PARAMETER EFFECTS FOR OPTIMIZATION OF CONSTRUCTION RESOURCE ALLOCATION PROBLEM. Jin-Lee KIM 1, M. ASCE

Overview. Swarms in nature. Fish, birds, ants, termites, Introduction to swarm intelligence principles Particle Swarm Optimization (PSO)

A GENETIC ALGORITHM FOR RESOURCE LEVELING OF CONSTRUCTION PROJECTS

A Binary Model on the Basis of Imperialist Competitive Algorithm in Order to Solve the Problem of Knapsack 1-0

GENETIC ALGORITHM FORECASTING FOR TELECOMMUNICATIONS PRODUCTS

OPTIMIZATION PROBLEM FORMULATION AND SOLUTION TECHNIQUES

PLAANN as a Classification Tool for Customer Intelligence in Banking

Optimizing Machine Allocation in Semiconductor Manufacturing Capacity Planning using. Bio-Inspired Approaches

6 Scalar, Stochastic, Discrete Dynamic Systems

Using Adaptive Random Trees (ART) for optimal scorecard segmentation

A Priority based Round Robin CPU Scheduling Algorithm for Real Time Systems

Transcription:

Optimizing CPU Scheduling Problem using Genetic Algorithms Anu Taneja Amit Kumar Computer Science Department Hindu College of Engineering, Sonepat (MDU) anutaneja16@gmail.com amitkumar.cs08@pec.edu.in Abstract: Operating system's performance and throughput are highly affected by CPU scheduling. The scheduling is considered as an NP problem. An efficient scheduling improves system performance. We use genetic algorithms to provide efficient process scheduling. This paper evaluates the performance and efficiency of the proposed genetic algorithm in comparison with other CPU Scheduling algorithms and will prove that proposed GA-based algorithm gives better performance measure and provides optimal solution. So on the basis of above concepts; a genetic scheduling algorithm has been developed. Hence the problem is comparing the performance of different scheduling algorithms and proving that genetic algorithms provide the optimal solution. Keywords This Paper contain following keywords: GA- Genetic Algorithms EA- Evolutionary Algorithms EP- Evolutionary Programming NP- Non Deterministic Polynomial Optimization Darwin s Theory 1. INTRODUCTION CPU Scheduling is the basis of multiprogramming operating systems. By switching the CPU among processes, the operating system can make the system more productive. Scheduling is a fundamental operating system function. Almost all computer resources are scheduled before use. The CPU is, of course, one of the primary computer resources [4]. Thus its scheduling is central to operating system design. Genetic Algorithm Approach to CPU Scheduling Problem-This study is an effort to develop a simple general algorithm (genetic algorithm based) for obtaining optimal or near optimal schedules for CPU Scheduling Problems with minimum computation effort even for large sized problems. The genetic algorithm is a search algorithm based on the mechanics of natural selection and natural genetics. Hence the problem is comparing the performance of different CPU Scheduling Algorithms and Genetic Algorithms. 2. PROBLEM UNDER CONSIDERATION Suppose there are N processes (1, 2, 3...N) each of which has one to be processed one at a time on CPU. Assume that the processing time of each job on CPU is given. The problem is to find an optimum sequence so that the total waiting time is minimal resulting in minimum elapsed time. 3. EXPERIMENTAL DESCRIPTION Genetic Algorithms are a way of solving problems by mimicking the same processes Mother Nature uses. They use same combination of selection, recombination and mutation to evolve a solution to a problem. Genetic Algorithms are one of the best ways to solve a problem for which little is known. A population is created with a group of individuals randomly. The individuals in the population are then evaluated. The evaluation function is provided by the programmer and gives the individuals a score based on how well they perform at the given task. Two individuals are then selected based on their fitness value; the higher is the fitness, the higher the chance of being selected. These individuals then reproduce to create one or more offspring, after which the offspring are mutated randomly. This continues until a suitable solution has been found or a certain number of generations have been passed, depending on the needs of programmer [1]. In this problem there are a number of processes (jobs) that are waiting to be processed by a singleprocessing system. The processor is assigned a job and remains busy until all the processes have been processed. Once a process is allocated the processor, remaining processes are forced to wait in the ready queue till their turn comes. 4. PROPOSED GENETIC ALGORITHM

4.1 Encoding The first step for solving a problem in GA is to encode the problem at work into a state which can be solved using GA. The basis of genetics in nature is a chromosome. Each individual in the search space, i.e. each solution to the problem worked upon, needs to be encoded so that it can be modeled as a chromosome. The application of a genetic algorithm to a problem starts with the encoding. The encoding specifies a mapping that transforms a possible solution to the problem into a structure containing a collection of decision variables that are important to the problem worked upon. A particular solution to the problem can then be represented by a specific assignment of values to the decision variables. The set of all possible solutions is called the search space and a particular solution represent a point in that search space. Various types of encoding schemes are: 1. Binary encoding 2. Permutation encoding 3. Value/Real encoding 4. Tree encoding 5. Octal encoding & 6. Hexadecimal encoding. For our problem value encoding is used. Real/Value Encoding: Every chromosome is a string of values and the values can be anything related to the problem. This encoding produces best results for some special problems. On the other hand, it is often necessary to develop new genetic operator specific to the problem. Direct value encoding can be used in problems where some complicated value such as real numbers are used. Use of binary encoding for this type of problems would be very difficult. In value encoding, every chromosome is a string of some values. Values can be anything connected to problem, form numbers, real numbers or chars to some complicated objects. Various examples of encoded chromosomes relating to our problem are: [1 7 3 2 4 5 6 10 9 8] [12 10 8 11 6 4 3 2 5 1 7 9] 4.2 Fitness Function Coming up with an encoding is the first thing that a genetic algorithm implementer has to do. The next step is to specify a function that can assign a score to any possible solution. The score is a numerical value that indicates how well a particular solution solves the problem. The score is the fitness of the individual solution. It represents how well the individual suits to the environment. In this case, the environment is the search space. The task of the GA is to discover solutions that have higher fitness values among the set of all possible solutions. A fitness function must be designed for the problem under consideration. For a solution (Chromosome), the fitness function must return a single numerical value, which is proportional to the fitness of that solution. Our aim is to find out individual having minimum total waiting time. So the individual who has minimum total waiting time is fittest as compared to other. So, the fitness function of a Solution S i is given by Fitness (S i ) = n j =1 wj (Eqn. 3.1) where wj is the waiting time of the process j. n is the total no. of processes. 4.3 Selection Selection is the process of choosing two parents from the population for crossing. After deciding on an encoding, the next step is to decide how to perform selection i.e., how to choose individuals in the population that will create offspring for the next generation and how many offspring each will create. The purpose of selection is to emphasize fitter individuals in the population in hopes that their off springs have higher fitness. Chromosomes are selected from the initial population to be parents for reproduction. The problem is how to select these chromosomes. According to Darwin s theory of evolution the best ones survive to create new offspring [2]. Selection is a method that randomly picks chromosomes out of the population according to their evaluation function. The higher the fitness function, the more chance an individual has to be selected. The selection pressure is defined as the degree to which the better individuals are favored. The higher the selection pressured, the more the better individuals are favored. This selection pressure drives the GA to improve the population fitness over the successive generations. The convergence rate of GA is largely determined by the magnitude of the selection pressure, with higher selection pressures resulting in higher convergence rates. For our problem Roulette Wheel Selection Method is used.

Mating Pool Figure1. Selection Roulette Wheel Selection: Roulette selection is one of the traditional GA selection techniques. The commonly used reproduction operator is the proportionate reproductive operator where a string is selected from the mating pool with a probability proportional to the fitness. The principle of roulette wheel selection is a linear search through a roulette wheel with the slots in the wheel weighted in proportion to the individual s fitness values. A target value is set, which is a random proportion of the sum of the finesses in the population. The population is stepped through until the target value is reached. This is only a moderately strong selection technique, since fit individuals are not guaranteed to be selected for, but somewhat have a greater chance. The expected value of an individual is that fitness divided by the actual fitness of the population. Each individual is assigned a slice of the roulette wheel, the size of the slice being proportional to the individual s fitness. Then wheel is spun N times, where N is the number of individuals in the population. On each spin, the individual under the wheel s marker is selected to be in the pool of parents for the next generation. This method is implemented as follows: 1. Sum the total expected value of the individuals in the population. Let it be T. 2. Repeat N times: 3. Choose a random integer r between 0 and T. 4. Loop through the individuals in the population, summing the expected values, until the sum is greater than or equal to r. The individual whose expected value puts the sum over this limit is the one selected. 4.4 Crossover Select Two Individuals New Population Crossover is the process of taking two parent chromosomes and producing from them a number of offspring s. After the selection (reproduction) process, the population is filled with better individuals. Reproduction makes exact copies of good strings but does not create new ones. Crossover operator is applied to the mating pool with the hope that it creates a better offspring [3]. Crossover is a recombination operator that works in three steps: i. The reproduction operator selects at random a pair of two individual strings for the mating/crossover. ii. A cross site or cross point is selected at random along the string length. iii. iii. Finally, the position values are swapped between the two strings following the cross site. There are various different types of crossover methods/techniques available such as: 1. One point crossover. 2. Two point crossover. 3. Uniform crossover. 4. Ordered crossover. 5. Cyclic crossover. For our problem cyclic crossover is used. Cyclic Crossover: Let P1 and P2 are two parents P1 : 2 8 0 1 3 4 5 7 9 6 P2 : 1 0 5 4 6 8 9 7 2 3 Select the first process of P1 make it as the first process of offspring1 (01) O1: 2 - - - - - - - - - To find the next process of offspring O1 search current process, which is selected from P1 in P2. Find the location of process in P2 and select the process which is in the same location in P1. O1: 2 - - - - - - - 9 - Continue the same procedure, we will get O1 as O1: 2 8 0 1-4 5-9 - In the next step we will get the process 2, which is already present in O1 and then stop the procedure. Copy the processes from parent P2 in the corresponding locations O1: 2 8 0 1 6 4 5 7 9 3 For the generation offspring O2 the initial selection is from the parent P2, and repeat the procedure with P1 O2: 1 5 4 3 8 9 7 2 6

4.5 Mutation After crossover, the strings are subjected to mutation. Mutation prevents the algorithm to be trapped in a local minimum. Mutation plays the role of recovering the lost genetic materials as well as for randomly distributing genetic information. Mutation is viewed as a background operator to preserve genetic diversity in the population. Mutation helps escape from local minima s trap and maintains diversity in the population. It also keeps the gene pool well stocked, and thus ensuring periodicity. Mutation of a bit involves flipping a bit, changing 0 to 1 and vice-versa. There are various types of mutation schemes such as: For our problem, stopping criteria chosen is no. of iterations and initialization method is random generation of population. Flipping Interchanging Reversing Uniform mutation & Non-uniform mutation. For our problem interchanging is used. Interchanging: Two random positions of the string are chosen and the bits corresponding to those positions are interchanged. This is shown below in Figure 2. Parent 1 0 1 1 0 1 0 1 Child 1 1 1 1 0 0 0 1 Figure2. Mutation Interchanging 4.6 Initialization Method & Stopping Criteria The last steps of applying a GA are the specification of an initialization method and stopping criteria. The genetic algorithm is usually initialized with a population of random individuals, but sometimes a fraction of the population is initialized with previously known (good) solution. Following the initialization step, each individual is evaluated according to the user s specified fitness function. Thereafter, the GA simulates evolution on the artificial population of solutions using operators that imitate the survival-of-the-fittest and principles of natural genetics such as recombination and mutation. A number of criteria can be chosen for this purpose, including among others, a maximum number of generations or time has elapsed, some predefined fitness value is reached, or the population has converged considerably. Figure3. Genetic Algorithm Cycle 5. CPU SCHEDULING ALGORITHMS 5.1 First Come First Served Algorithm (FCFS) Start FCFS Algorithm Step1. Input number of processes. (nop is taken as input by the user. Step3. Calculate waiting time of each process. Step4. Calculate total waiting time. End FCFS Algorithm. 5.2 Shortest Job First Algorithm (SJF) Start SJF Algorithm Step1. Input number of processes. (nop is taken as input by the user. Step3. Sort the processes according to the burst time of each process. Step4. Now calculate the waiting time of each process. Step5. Calculate total waiting time End SJF Algorithm.

5.3 Priority Scheduling Algorithm Start Priority Scheduling Algorithm Step1. Input number of processes. (nop is taken as input by the user. Step3. Sort the processes according to the priority of each process. Step4. Now calculate the waiting time of each process. Step5. Calculate total waiting time End Priority Scheduling Algorithm. Step8. Evaluate fitness and return the two best fitted individual to the population [perform weak parent replacement using replace_weak function]. Step 9. if done=optimization criteria met? Step10. if (not) then, i=i+1. [Increase iteration number]. End for [if optimization criteria met, stop the algorithm]. Step11. Output the best solution. End Genetic Algorithm 5.4 Round Robin Scheduling Algorithm Start Round Robin Scheduling Algorithm Step1. Input number of processes. (nop is taken as input by the user. Step3. Allocate a time slice for each process. Step4. Now calculate the waiting time of each process. Step5. Calculate total waiting time. End Round Robin Scheduling Algorithm. 6. RESULTS There are four jobs (1,2,3,4,5) which requires processing time ( 5,15,12,25,5). So the sequence of the jobs may vary and also we analyze the GA by changing the process time of different jobs. We are comparing FCFS, SJF, Round Robin, Priority and GA, By apply the genetic operator s crossover, fitness function and inversion, we get the final population, out of the final population we get the job schedule, who have the minimum average waiting time Figure 4 focus on comparison of waiting time of various scheduling algorithms. 5.5 Proposed Genetic Algorithm Start Genetic Algorithm 6. RESULTS Step1. Initialize NOP and POPULATIONSIZE [Input no. of processes There and are Population four jobs size (1,2,3,4,5) from the user]. which requires processing time ( 5,15,12,25,5). So the sequence of Step2. the Initialize jobs may burst vary time and of each also we process analyze randomly the GA [using by rand function]. changing the process time of different jobs as shown in the Table 2. Step3. Generate population randomly [using cpu_createperm we are comparing function]. FCFS,SJF,RR and GA, By apply the genetic operator s crossover, fitness function Step4. Evaluate the fitness of each individual [using fitness and function]. inversion, we get the final population. out of the Step5. final For no. population of iterations we get do the job schedule, who have the Step5.1. Select two parents from the randomly generated minimum average waiting time Figure 3 focus on population [perform Roulette Wheel Selection using wheel comparison based average waiting time algorithms. function]. Step5.2. Crossover two parents [perform cyclic crossover using cyclic_crossover Function]. Step6. If i/10==0, mutate two offspring produced. [Perform mutation at every tenth iteration using mutation_ interchanging function]. Figure4. Comparison of Scheduling Algorithms The bar graph shown here is about the results showing the total waiting time of various algorithms over a number of iterations. Again the results that came out are in favor of genetic algorithms. 7. CONCLUSION AND FUTURE WORK Optimization is the main point of discussion in this paper. Actually this paper is based on implementing a Genetic Algorithm Approach to CPU Scheduling Problem. It includes making a comparison of Genetic Algorithms with CPU

Scheduling Algorithms i.e. FCFS, SJF, Round Robin and Priority Scheduling Algorithms and proving that Genetics Algorithms provide optimal solution in comparison to CPU Scheduling Algorithms. Basically GA is one of the better function optimization methods generally employed now days. Population is randomly generated. The encoding scheme used for this problem is real encoding. The fitness function used is waiting time. We have optimized the waiting time to effectively utilize CPU and get the best sequence to schedule the processes. Roulette Wheel Selection method is used and cyclic crossover method is applied for crossing the chromosomes in the population for producing better offspring s. And finally interchanging mutation is used while implementing this algorithm. After all the experimentation and implementation, Genetics Algorithms provides the optimal solution in comparison to existing CPU Scheduling Algorithms. The Genetic Algorithms outperform the conventional procedures in solving optimization problem. The experiment carried out is efficient to find the best sequence. Quite promising results are obtained. The results clearly show that proposed genetic algorithm is able to find the optimal solution. In future, further this work may be enhanced to incorporate multiprocessor system environment. This work can also help us to design the effective algorithm for dynamic process scheduling in future. REFERENCES [1] S.N Sivanandam & S.N Deepa, Introduction to Genetic Algorithms, Springer Publishers, 2008, ISBN 978-3-540-73189-4. [2] David E. Goldberg, Genetic Algorithms in Search, Optimization, and Machine Learning, Pearson Publishers, Eighth Edition, 2006, ISBN 978-81-775-8829-3. [3] S.N Sivanandam & S.N Deepa, Principles of Soft Computing, Wiley, Second Edition, 2008, ISBN : 9788126527410 [4] Galvin, Operating System Concepts, John Wiley & Sons Inc. Publishers, Sixth Edition, 2004, ISBN 9812-53- 055-X. [5] William Stalings, Operating System Designs & Principles, Pearson Publishers, Sixth Edition, 2009, ISBN 978-81-317-2528-3. [6] Mrs. Snehal Kamalapur, Mrs. Neeta Deshpande2, Efficient CPU Scheduling: A Genetic Algorithm Based Approach, IEEE, 1-4244-0731-1/06, 2006. [7] N. Chaiyarataiia and A. M. S. Zalzala, Recent Developments in Evolutionary and Genetic Algorithms: Theory and Applications, Genetic Algorithms in Engineering Systems: Innovations and Applications, 2-4 September 1997, Conference Publication No. 446, IEE, 1997, 270-277.