In this chapter, we introduced a classic computer science problem related to the creation of the optimal XOR solver. We discussed the basics of the XOR problem and demonstrated its importance as the first experiment with neuroevolution—it allows you to check whether the NEAT algorithm can evolve a more complex ANN topology, starting with the most straightforward ANN configuration. Then, we defined the objective function for the optimal XOR solver and a detailed description of the NEAT hyperparameters. After that, we used the NEAT-Python library to write the source code of the XOR solver using a defined objective function, and then we experimented.
The results of the experiment we carried out allowed us to conclude the relationship between the number of species in the population, the minimum size of each species, and the performance of the algorithm, as well as the...