Written on Tuesday October 2, 2018
It seemed like a good idea. Let evolution solve the mutation problem for me. This is procrastination, as what I really need to do next is update the documentation and archive this version. It’s time to clean up the code and concentrate on making the system run faster. Still, I had a few days, and I’d notice that some populations were much more resistant to mutation than others.
There’s an information issue here. The only way to be certain how well a given population has handled mutations, is to watch it and see how many it survives. The trouble being that once it’s dead, and you finally know how well it did; it’s dead, and the code that let it do so well is gone. Any given mutation may grant the gift of being immune to other mutations, or kill everyone. Thus in addition to losing the information upon death, there’s no way to know at what point the population would be best saved—at what point it would be best at surviving further mutations in other runs.
So, just as a quick and dirty way to try and catch it in the act, I setup thresholds. If the given run produced a population that had survived a given number of mutations, or had produced a given number of offspring, the system would beep at me and I’d save it.
I generated 6 populations that had reached some small threshold… I think it was probably 100 mutations and 100,000 new figures. After they were generated, I tested them. If you take the total number of mutations for a given run, and divide that by the total number of extinctions, you get the average number of mutations per extinction, an average of how many mutations a given population will survive before it dies. The population that had the highest average became the new seed. Instead of using randomly generated figures to add to the realm when it was empty, that population was reloaded from memory.
The next time I ran it, using the seed, I set the thresholds up a bit. Then I generated five new populations that had reached one or the other threshold, and tested them, and used the winner as the next seed.
I’m only four levels in, and I think It’s doing better. I didn’t save the early results, so I can’t be certain, but as I recall most of them were coming in with averages of 40 or 50 or so, with one or two that made it up to 60. I think, one got up to just about 70. With the latest, averages came in at 58 to 68.
This morning I was convinced it was a waste of time. It seemed like the latest run hadn’t done any better than the seed population. The thresholds were up to 500 and 500,000, but it took forever to generate them and forever to test them, hours upon hours upon hours of computer time. Then I took another look at the results I’d jotted down before writing this.
Each of the five populations that have most recently been generated reached one or the other threshold during testing. They always did at least a little better than threshold, and once, much better. All but one of the runs lasted for more than two hours but less than three. That run hit a threshold that was at 1,000,000 that I’d set as something too high for them to reach while I got enough extinctions to get a good average of mutations per. That run stopped somewhere between 19 and 20 minutes, and had to be tossed out when considering averages.
The first population generated in this round had been tested rather quickly. It was the first one; I wanted to play with it. I just made it the seed and ran it, leaving the thresholds at 500 and 500,000. It hit both of those rather quickly, less than an hour for both, I believe. I was just screwing around, so I didn’t write down the results.
I need to update the documentation next. There’s no reason not to keep running this experiment while I’m up to that and whatever else I’m up to. These things don’t need to be babysat; they just chug away in the background. I want to see where this will go.
Have the notes I have that have survived. me and my delete key.
The longest is the longest lived population, measured by how many were born, so if the longest=10, only 10 figures were born in the population that lived the longest.
Most, is the most number of mutations any population had in its lifetime.
Mutations is the total number of mutations that occurred.
Extinction is how many times the entire population died, meaning each time population hit 0.
saved at threshold when most greater 500 or longest greater 500,000
Elapsed time=2 hours, 14 minutes and 51 seconds
Elapsed time=2 hours, 10 minutes and 8 seconds
Elapsed time=0 hours, 19 minutes and 8 seconds
Elapsed time=2 hours, 20 minutes and 16 seconds
Early testing, quickly hit both thresholds
Elapsed time=2 hours, 6 minutes and 28 seconds