2 Introducing evolutionary computation

 

This chapter covers

  • Exploring the Game of Life with Google Colaboratory
  • Creating a simple cellular life simulation in Python
  • Optimizing cell attributes by simulating life
  • Applying 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 of or as an optimization of DL. As a general all-encompassing term, we refer to this process as evolutionary deep learning (EDL). Before we start exploring the applications of EDL, we first need to understand 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, with evolution being just one of them. In this chapter, we present 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 we can 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 have one thing in common: they find their origins in the computer version of Conway’s Game of Life.

2.1 Conway’s Game of Life on Google Colaboratory

2.2 Simulating life with Python

2.2.1 Learning exercises

2.3 Life simulation as optimization

2.3.1 Learning exercises

2.4 Adding evolution to the life simulation

2.4.1 Simulating evolution

2.4.2 Learning exercises

2.4.3 Some background on Darwin and evolution

2.4.4 Natural selection and survival of the fittest

2.5 Genetic algorithms in Python

2.5.1 Understanding genetics and meiosis

2.5.2 Coding genetic algorithms