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.

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 thus far won’t work, and alternative approaches.

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

  • 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.

Alternative selection strategies

Rank selection: Even the playing field

Tournament selection: Let them fight

Elitism selection: Choose only the best

Real-value encoding: Working with real numbers

Real-value encoding at its core

Arithmetic crossover: Reproduce with math

Boundary mutation

Arithmetic mutation

Order encoding: Working with sequences

Importance of the fitness function

Order encoding at its core

Order mutation: Order/permutation encoding

Tree encoding: Working with hierarchies

Tree encoding at its core

Tree crossover: Inheriting portions of a tree

Change node mutation: Changing the value of a node

Common types of evolutionary algorithms

Genetic programming

Evolutionary programming

Glossary of evolutionary algorithm terms

More use cases for evolutionary algorithms