The implementation of the experiment runner is based on the MultiNEAT Python library, which we have used in several experiments in this book. The evolution of each co-evolving population is controlled by the basic NEAT algorithm, which was discussed in Chapter 3, Using NEAT for XOR Solver Optimization, Chapter 4, Pole-Balancing Experiments, and Chapter 5, Autonomous Maze Navigation.
However, in this section, we demonstrate how to use the NEAT algorithm to maintain the co-evolution of two independent populations of species: the maze solvers and the objective function candidates.
Next, we discuss the essential parts of the modified maze experiment runner.