chapter five

5 Advanced evolutionary approaches

 

This chapter covers

  • Considering options for the various steps in the genetic algorithm life cycle
  • Adjusting a genetic algorithm to solve varying problems
  • The advanced parameters for configuring a genetic algorithm life cycle based on different scenarios, problems, and datasets
NOTE

Chapter 4 is a prerequisite to this chapter.

5.1 Evolutionary algorithm life cycle

The general life cycle of a genetic algorithm is outlined in chapter 4. In this chapter, we consider other problems that may be suitable to be solved with a genetic algorithm, why some of the approaches demonstrated so far won’t work, and alternative approaches.

As a reminder, the general life cycle of a genetic algorithm is:

  • Creating a population—Creating a random population of potential solutions.
  • Measuring fitness of individuals in the population—Determining how good a specific solution is. This task is accomplished by using a fitness function that scores solutions to determine how good they are.
  • Selecting parents based on their fitness—Selecting pairs of parents that will reproduce offspring.
  • Reproducing individuals from parents—Creating offspring from their parents by mixing genetic information and applying slight mutations to the offspring.
  • Populating the next generation—Selecting individuals and offspring from the population that will survive to the next generation.

Keep the life cycle flow (depicted in figure 5.1) in mind as we work through this chapter.

5.2 Alternative selection strategies

5.2.1 Rank selection: Even the playing field

5.2.2 Tournament selection: Let them fight

5.2.3 Elitism selection: Choose only the best

5.3 Real-value encoding: Working with real numbers

5.3.1 Real-value encoding at its core

5.3.2 Arithmetic crossover: Reproduce with math

5.3.3 Boundary mutation

5.3.4 Arithmetic mutation

5.4 Order encoding: Working with sequences

5.4.1 Importance of the fitness function

5.4.2 Order encoding at its core

5.4.3 Order mutation: Order / permutation encoding

5.5 Tree encoding: Working with hierarchies

5.5.1 Tree encoding at its core

5.5.2 Tree crossover: Inheriting portions of a tree

5.5.3 Change node mutation: Changing the value of a node

5.6 Common types of evolutionary algorithms

5.6.1 Genetic programming

5.6.2 Evolutionary programming

5.7 Glossary of evolutionary algorithm terms

5.8 More use cases for evolutionary algorithms