Found some stuff, when mutation rates change liner there are floor to 1
But what happens if mutations where off ( < 1) to begin with? They where being set to 1 and the robot was pretty much getting nuked.
Fix in next version drop.
I am currently investigating a processing leak.
Here is pretty much what is happening:
One robot went from having ~1000 dna length to ~5000.
This robot attempts to mate sexually. From that we can infer two things:
1.) The robot will take more then 1 minute on decent hardware to recombine the resulting dna.
2.) The robot then will figure out that the dna is too different and abort reproduction. But during the next cycle it will try the same thing again.This will cause the program to run about 5 minutes per cycle which is total unacceptable.
Here are my possible hacks to achieve a solution, if anyone has any better ideas I would love to hear them:
- Make a sexual crossover terminate automatically after 32 seconds even if it is not complete
- If the crossover was unsuccessful the robot must wait 16 cycles before attempting to reproduce again