The aim here is simply to develop a method to run stable simulations.
As the genetic material of an agent becomes more complex, it becomes correspondingly more difficult to produce simulations that survive the first 1000 cycles. I assume this has to do with the fact that the genomes of the original agents are generated completely at random, and the chance of producing successful genomes from the beginning is very small. Nevertheless, even in the simulations with populations that fall to 0, some agents are capable of reproducing, but the number of these agents tend to be low.
Thus, the idea is to run a pre-simulation that takes any offspring (or grandchildren) that are produced, and then use these to generate agents for the main simulation.
Hmm, not working. Going to try generating agents for the first 200 or so cycles. (Run 2) This works much better, though still isn't 100% stable.
Ok, I've settled on duplicating agents when the number of agents left on the board is very low. This is probably the most 'natural' way of intervening to save a population that I can think of. The only thing to keep in mind is if populations drop to low numbers again later in a sim, that I should take account of the artificial regeneration.