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.
For more details, please refer to the source code at https://github.com/PacktPublishing/Hands-on-Neuroevolution-with-Python/blob/master/Chapter9/maze_experiment_safe.py.