An overview of evolutionary algorithms: practical issues and common pitfalls
Introduction
Evolutionary algorithms have become popular tools for search, optimization, machine learning and for solving design problems. These algorithms use simulated evolution to search for solutions to complex problems. There are many different types of evolutionary algorithms. Historically, genetic algorithms and evolution strategies are two of the most basic forms of evolutionary algorithms. Genetic algorithms were developed in the United States under the leadership of John Holland and his students. This tradition puts a great deal of emphasis on selection, recombination and mutation acting on a genotype that is decoded and evaluated for fitness. Recombination is emphasized over mutation. Evolution strategies were developed in Germany under the leadership of Ingo Rechenberg and Hans-Paul Schwefel and their students. Evolution strategies tend to use more direct representations [3]. Mutation is emphasized over recombination. Both genetic algorithms and evolution strategies have been used for optimization. However, genetic algorithms have long been viewed as multipurpose tools with applications in search, optimization, design and machine learning [24], [18], while most of the work in evolution strategies has focused on optimization [39], [40], [2]. In the last decade, these two fields have influenced each other and many new algorithms freely borrow ideas from both traditions.
In the last 10 years, genetic programming has also become an important new sub-area of evolutionary algorithms [30], [27]. Genetic programming has been explicitly developed as an evolutionary methodology for automatic programming and machine learning. Design applications have also proven to be important. Another sub-area of evolutionary computing is evolutionary programming. Evolutionary programming has its roots in the 1960s [16] but was inactive for many years until being reborn in the 1990s [14] in a new form that is extremely similar to evolution strategies.
Each of these paradigms has its own strengths and weaknesses. One goal of this overview is to highlight each model so that users can better decide which methods are best suited for particular types of applications. There are also some general high-level concepts that are basic to evolutionary algorithms that might be applied in conjunction with any of the various paradigms. The use of a parallel evolutionary algorithm can often boost performance. The island model in particular has low cost in terms of software development and can have a significant impact on performance. This overview also addresses the question as to when it is reasonable to use an evolutionary algorithm, and suggests other methods to utilize in order to evaluate the effectiveness of an evolutionary algorithm.
Section snippets
Genetic algorithms
Genetic algorithms remain the most recognized form of evolutionary algorithms. John Holland and his students worked on the development of these algorithms in the 1960s, 1970s and 1980s. In the mid-1980s these algorithms started to reach other research communities — such as the machine learning and operations research communities. It is probably no coincidence that the explosion of research in genetic algorithms came soon after the explosion of research in artificial neural networks. Both areas
Some criticisms of the schema theorem
There are many different criticisms of the schema theorem. First of all, it is an inequality, and it only applies for one generation into the future. So, while the bound provided by the schema theorem absolutely holds for one generation into the future, it says nothing about how trials will be allocated in future generations.
It is also true that the schema theorem does hold true independently for all possible hyperplanes for one generation. However, over multiple generations these dependencies
Evolution strategies
About the same time Holland and his students were developing ‘genetic algorithms’ in the late 1960s and early 1970s in the United States, Ingo Rechenberg and Hans-Paul Schwefel and others were working in Germany developing evolution strategies. Historically, these algorithms developed more or less independently and in very different directions. Evolution strategies are generally applied to real-valued representations of optimization problems, and tend to emphasize mutation over crossover. The
Genitor
Genitor [47], [50] was the first of what has been termed ‘steady-state’ genetic algorithms [43]. The distinction between steady-state genetic algorithms and regular generational genetic algorithms was also foreshadowed by the evolution strategy community. The Genitor algorithm, for example, can also be seen as an example of a (μ+1)–ES in terms of its selection mechanism. Reproduction occurs one individual at a time. Two parents are selected for reproduction and produce an offspring that is
Binary, gray and real-coded representations
One of the long-standing debates in the field of evolutionary algorithms involves the use of binary versus real-valued encodings for parameter optimization problems. The genetic algorithms community has largely emphasized bit representations. The main argument for bit encodings is that this representation decomposes the problem into the largest number of smallest possible building blocks and that a genetic algorithm works by processing these building blocks. This viewpoint, which was widely
Genetic programming
Genetic programming is very different from any of the algorithms reviewed so far. Genetic programming is not a parameter optimization method, but rather a form of automated programming. There have certainly been other applications of evolutionary algorithms that foreshadowed genetic programming. Fogel's early attempts to evolve finite state machines can be seen as a kind of programming (hence evolutionary programming has its roots in a form of programming). Moreover, in the 1980s, genetic
Parallel evolutionary algorithms
Evolutionary algorithms are easily parallelized. One of the simplest things that can be done is to evaluate the population in parallel. There have also been several mechanisms and selection strategies developed to support this type of parallelism. From a practical point of view, there is also another form of parallelism that is extremely easy to implement and that offers the potential to significantly improve search. This is the parallel Island Model.
An island model is a coarse grain parallel
The evaluation of evolutionary algorithms
When should an evolutionary algorithm be used? For example, when an optimization problem is encountered, when should one consider the use of an evolutionary algorithm?
Evolutionary algorithms are what are known as weak methods in the Artificial Intelligence community. Weak methods do not exploit domain specific knowledge. Evolutionary algorithms are also an example of what is known as a blind search method.
For many domains, there may be a good deal of domain specific knowledge. Methods that
Conclusions
There is a large body of literature covering evolutionary algorithms. Some topics not covered include the use of hybrid evolutionary algorithms that combine local search or some other heuristic search methods. Such methods can be used to improve the initial population or to improve each offspring that is produced. Evolutionary algorithms also have been applied with a good measure of success to scheduling and other combinatorial optimization problems. A special issue of the journal Evolutionary
Acknowledgements
The author acknowledges the support of the Colorado Advanced Software Institute (CASI) and the Air Force Office of Scientific Research (AFOSR), Air Force Material Command, USAF, under grant number F49620-00-1-0144. The US Government is authorized to reproduce and distribute reprints for governmental purposes notwithstanding any copyright notation thereon. Thanks to Jon Rowe and Lisa Kennedy for reading a draft of this paper.
References (53)
The CHC adaptive search algorithm. How to have safe search when engaging in nontraditional genetic recombination
- et al.
A comparative analysis of selection schemes used in genetic algorithms
- et al.
The troubling aspects of a building block hypothesis for genetic programming
- et al.
Empirical investigation of multiparent recombination operators in evolution strategies
Journal of Evolutionary Computation
(1997) Evolutionary Algorithms in Theory and Practice
(1996)- et al.
A Survey of Evolution Strategies
Reducing Bias and Inefficiency in the Selection Algorithm
- et al.
Genetic Programming: An Introduction
(1998) - et al.
Efficient generation of the binary reflected gray code and its applications
Communications of the ACM
(1976) Bit-climbing, representational bias, and test suite design
Handbook of Genetic Algorithms
Genetic algorithms are NOT function optimizers
Special issue on evolutionary algorithms for scheduling
Evolutionary Computation
Preventing premature convergence in genetic algorithms by preventing incest
Evolutionary Computation
Comparing genetic operators with Gaussian mutation in simulated evolutionary processes using linear systems
Biological Cybernetics
Artificial Intelligence Through Simulated Evolution
Genetic Algorithms in Search, Optimization and Machine Learning
Explicit parallelism of genetic algorithms through population structures
Polynomial time summary statistics for a generalization of MAXSAT
Test Function Generators as Embedded Landscapes
Adaptation in Natural and Artificial Systems
Adaptation in Natural and Artificial Systems
Cited by (343)
Prediction of agricultural drought index in a hot and dry climate using advanced hybrid machine learning
2024, Ain Shams Engineering JournalPlanning of prescriptive maintenance types for generator with fuzzy logic-based genetic algorithm in a hydroelectric power plant
2024, Expert Systems with ApplicationsWolf-Bird Optimizer (WBO): A novel metaheuristic algorithm for Building Information Modeling-based resource tradeoff
2024, Journal of Engineering Research (Kuwait)Model-Free-Communication Federated Learning: Framework and application to Precision Medicine
2024, Biomedical Signal Processing and ControlFast trajectory planning for Dubins vehicles under cumulative probability of radar detection
2023, Signal Processing