chapter two

2 An Introduction to Evolutionary Computation

 

This chapter covers

  • Exploring the Game of Life with Google Collaboratory
  • Creating a simple cellular life simulation in Python
  • Optimizing simulation attributes by simulating life
  • Apply the theory of evolution to a simulation
  • Applying genetics and genetic algorithms to simulation optimization

In the last chapter we introduced the concept of applying evolutionary computation on top or as an optimization of deep learning. As a general all-encompassing term, we will refer to this process as Evolutionary Deep Learning, EDL. Before we start exploring the applications of EDL we first need to ground ourselves in what evolutionary computation or algorithms are.

Evolutionary computation is likewise a blanket term for a whole host of methods that borrow from life simulation in many forms, evolution being just one of them. In this chapter we are going to take a gradual introduction to life simulation, what it is, what it does and how it can optimize problems.

Life simulation is just one form of simulation that we may use to explore and optimize problems. There are plenty of other forms of simulation that allow us to better model processes from fires to financial markets and more. However, they do all share one thing in common and that is their origins with the Game of Life, the computer version.

2.1 Conway’s Game of Life on Google Collaboratory

2.2 Simulating Life with Python

2.3 Life Simulation as Optimization

2.4 Adding Evolution to the Life Sim

2.4.1 Simulating Evolution

2.4.2 Some Background on Darwin and Evolution

2.5 Genetic Algorithms in Python

2.5.1 Constructing the Population

2.5.2 Evaluating Fitness

2.5.3 Selecting for Reproduction (Crossover)

2.5.4 Applying Crossover – Reproduction

2.5.5 Applying Mutation and Variation

2.5.6 Putting it all Together

2.5.7 Understanding GA Hyperparameters

2.6 Summary