Skip to main content

About this book

Evolutionary algorithms are becoming increasingly attractive across various disciplines, such as operations research, computer science, industrial engineering, electrical engineering, social science and economics. Introduction to Evolutionary Algorithms presents an insightful, comprehensive, and up-to-date treatment of evolutionary algorithms. It covers such hot topics as: • genetic algorithms, • differential evolution, • swarm intelligence, and • artificial immune systems. The reader is introduced to a range of applications, as Introduction to Evolutionary Algorithms demonstrates how to model real world problems, how to encode and decode individuals, and how to design effective search operators according to the chromosome structures with examples of constraint optimization, multiobjective optimization, combinatorial optimization, and supervised/unsupervised learning. This emphasis on practical applications will benefit all students, whether they choose to continue their academic career or to enter a particular industry. Introduction to Evolutionary Algorithms is intended as a textbook or self-study material for both advanced undergraduates and graduate students. Additional features such as recommended further reading and ideas for research projects combine to form an accessible and interesting pedagogical approach to this widely used discipline.

Table of Contents


Evolutionary Algorithms


Chapter 1. Introduction

Perhaps this is a required textbook for a course, perhaps you want to learn about evolutionary algorithms (EAs), or perhaps you just pick up this book occasionally. In this simple chapter, we will discuss the necessity, definition, original idea, branches, and information resources of EAs. We hope it will command your attention and stimulate you to read the other chapters.

Chapter 2. Simple Evolutionary Algorithms

In Chap. 1, we drew a graph for EAs with the statement that EAs are interesting, useful, easy-to-understand, and hot research topics. Starting with Chap. 2, we will demonstrate EAs in a pedagogical way so that you can enjoy the journey around EAs with active reading. We strongly encourage readers to implement their basic EAs in this chapter in one programming environment and improve its search ability through other chapters. Footnotes, exercises, and possible research projects are of great value for an in-depth understanding of the essence of the algorithms.

Chapter 3. Advanced Evolutionary Algorithms

The numerical example in Chap. 2 demonstrates that EAs are powerful yet simple search methodologies. In this chapter, several critical topics will be discussed in a clear way through which you can really claim that you know EAs and have the courage to design your own EA for the problem you face. We hope it’s a productive journey reading this chapter.

Dealing with Complicated Problems


Chapter 4. Constrained Optimization

In previous chapters, we only searched the space defined by variables’ upper and lower bounds. But real-world problems are always with constraints. One important question that needs to be answered when applying EAs in constrained optimization is how to evaluate a solution that violates some constraints. Generally, we want the final results of our EAs to satisfy all the constraints. But discarding the those that violate some constraints and generating new ones again is very inefficient. Several wonderful ideas for constraint handling will be discussed in this chapter.

Chapter 5. Multimodal Optimization

Sometimes you run a EA for a problem several times. The algorithm might provide different solutions with similar qualities. You may feel uncomfortable with this. We will show you in this chapter that there really exist problems with several high-quality solutions and we want to find all of them in a single run of an EA. Techniques in this chapter could also help to adjust the tradeoff between selective pressure and population diversity, which is an eternal subject in designing and analyzing EAs.

Chapter 6. Multiobjective Optimization

EAs are developed to solve real-world problems, such as designing and scheduling. In real conditions, there are many requirements to fulfill. In previous chapters, we sometimes wanted to model them into constraints because it is hard to compare two objectives simultaneously. Pareto gave us the idea of dominance, so we can divide the relationship between two vectors into three categories: one is better than the other, the converse is true, or they are incomparable or incommensurable. For problems with multiple objectives, there exist many “good” points that are no worse than any other point in the objective space. EAs contain a group of individuals. So if we can distribute the individuals evenly on these “good” points, it will be very helpful for designers and decision makers. This chapter discusses how to use EAs to solve such problems. It is a fascinating and hot research area. You will experience the shining wisdom of other researchers, which will deepen considerably your understanding of EAs.

Chapter 7. Combinatorial Optimization

Previous chapters discuss parameter optimization, i.e., we need to find the optimal values of variables so that the objective function has the maximum/minimum value. Many real-world problems are not like this. We often need to select some elements from a set or arrange the sequence of some events with constraints so that the objective function has the maximum/minimum value. These problems belong to combinatorial optimization. We will introduce three examples, explain their respective properties, illustrate how EAs solve them, and summarize design-effective algorithms for them.

Brief Introduction to Other Evolutionary Algorithms


Chapter 8. Swarm Intelligence

We look at the natural selection process as a learning or optimizing process and apply the survival of the fittest principle to designing the learning and optimizing algorithm. Then many EAs, e.g., GA, ES, EP, DE, etc., are suggested accordingly. There are other similar phenomena in nature. A swarm of “low-level” (not smart) insects sometimes surprises us with their amazing behaviors, such as foraging for food efficiently and constructing exquisite nests. We can also look at the process of foraging for food and constructing nest as a learning or optimizing process and learn to design corresponding algorithms. This swarm-level smart behavior generated by an agent-level, not smart property could enlighten us to suggest more robust algorithms for more complex problems in an uncertain environment.

Chapter 9. Artificial Immune Systems

In previous chapters, we introduced GAs, which mimic the natural evolving process, and ACO and PSO, which mimic the feeding behavior of an ant colony and the bird flock, respectively. Scientists in the EA field are used to taking these biological or physiological “intelligent” phenomena as metaphors to excite the imagination for generating algorithms for learning and optimizing problems. In this chapter, we will introduce a concept and a procedure borrowed from the human (vertebrate) immune system and focus on how to apply these ideas to implementing our algorithms for various applications.

Chapter 10. Genetic Programming

Genetic programming is a very famous branch of EAs. The departure point of genetic programming is to automatically generate functional programs in the computer, whose elementary form could be an algebraic expression, logic expression, or a small program fragment. This idea can be expanded to generate artificial intelligence by computer. The reason for a separate chapter, instead of integrating it into Chap. 2, lies in its special representation, evaluation, and variation methods caused by the requirement of representing structure in the chromosome.


Additional information

Premium Partner

    Image Credits