Searching for a kinder gentler mutation



I spent a couple of weeks testing a notion I had. I’m not going to bother explaining—it would take too long for something that I’m not going to use. So far as I can tell, what I did to try and increase the system’s stability made it even more fragile. For example, with the usual approach, as few as 5 mutations have wiped out an entire population. With the other method, what I called snapcom, the one I’m tossing out the window, one mutation was enough. I gathered some statistics, but the results were inconclusive. Still, even if it is somehow performing better, it’s not enough better.

It’s also true of using copy errors instead of just random mutations. A copy error is when the number a given figure is about to write is changed. It was looking promising, but after a lot of work, I found that the improved performance had to do with the number of mutations, not their type.

Because of the way I implemented copy errors, they were happening less than just picking a number of a given figure at random, and replacing it with a random number. If I adjusted the odds of random mutations to produce roughly the same number at roughly the same rate, it performed as well as copy errors did. There was nothing magic about copy errors vs random mutation.

Meanwhile, I started implementing another method, changing the odds of what command the little figures are likely to activate. I’ll explain in detail when and if it works out. I also just thought of another thing that might be worth trying………..

Note to self: what about fixed length figures, with the positive to negative large flip at a much smaller absolute value. Ha… That’s only an array of 128 slots, and a limit of 128 ports.

Right, maybe, that’s another low level change though, and I should at least see what probability shifting does.

After several hours, changing the probabilities didn’t seem to be working. I was surprised and suspected a bug. This morning I did a couple of tests, and confirmed that, yes indeed, there’s a bug.

Several stats showed me that figures were being born, both randomly constructed by the system, and written by the figures. However one field, called “longest,” that keeps track of how many figures have been made by a given population without their dying out, isn’t getting updated. That’s the field I check to see how the figures are doing, and to stop the system when they’ve reached a given number of figures born from other figures. That means that during those hours of running, a stable population may have emerged without my noticing it.

Somewhere in the mess while I cleaned up my code from earlier experiments and implemented this one, I somehow managed to either add or delete something I shouldn’t. I’ve got many other projects that demand my attention today, so I’ll save the bug hunt for a little later.


Leave a Reply