How does NEAT avoid bloat?
For those who don’t know, bloat is a major problem in Genetic Programming (GP) that results from genomes getting bigger and bigger without any corresponding increase in fitness, leading to unwieldy programs that cannot be optimized further. GP permutes through different structures of widely varying size and topology. NEAT does not permute in this way. Rather, it builds up structures slowly, piece by piece, each piece being tested carefully. As structures diverge in NEAT, they are placed into different species so they won’t interfere with each other. Thus there are multiple simultaneous and divergent lines of principled build-up of structure. Such an approach is more bloat-proof. Also, crossover in NEAT is itself bloat-proof, since it does not involve tacking on arbitrary trees of structure from widely varying topologies. Finally, the way NEAT is implemented, it only adds excess or disjoint genes from the more fit parent in a crossover of genomes with divergent histories. Therefore, you