Their first task was easy. Can the digital organisms I wrote, called “figures,” learn to call a good command and avoid a bad one?
My first job was easy. It only took 6 lines of code. Each digital creature, each “figure,” has a certain amount of energy.
Figure.energy = 12,168;
Each time a figure has a turn, (when they execute one command,) the energy level drops.
When a figure is out of energy, it dies. It is completely deleted from the system, leaving behind it’s children, if it had any.
If (figure.energy < = 0)
Death.kill(figure) [scary music!]
Continue reading Their first task was easy
It’s about time I tried using my artificial life as an artificial intelligence. It’s been the goal since day one. Before I could do that, I had to come up with the algorithm in the first place, and then make sure that the figures could actually evolve. To evolve, they need to change, and some of those changes should help them survive and reproduce, passing on their successful tricks to their offspring.
Continue reading It’s about time I tried using my artificial life as an artificial intelligence
I’m sitting on the edge of a binary ocean, casting hyperdimensional nets into the infinite waters of possible programs. My digital creatures, which I call “figures,” will run on my computer for hours, until I finally catch something.
Continue reading It’s like fishing.
Written on Wednesday October3, 2018
Small sample sizes and all those caveats.
I’m tossing out the number of figures being born as a threshold. That will pop out of any of them at any time, and it’s just luck. One of them starts reproducing very quickly, and happens to find a window of relatively few mutation’s, and then skate on through to the finish line.
I retested the first five populations, snagged with a threshold of 100 and 100,000, if memory servs me. Looking at the most mutations given to a population, side by side results, first five and latest five.
Continue reading It bloody well works!
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.
Continue reading I was going to say that’s going nowhere, but looking at my notes just now.
Written on Thursday September 27, 2018
mutation each extinction
5.pop average 73
figures just fat
6.pop average 48
x.pop average 460 just fat longest with mu 131616 without only 38453
61.pop keeps doing too well to tell
I was trying to make s.pop into a six figures steady pop size stable population. I wanted to recreate 6.pop whose magic children have done so well that they climb off the measurement scale. I set things up so that s.pop was read from disc and stored in memory. Then, when s.pop died out, she’d be restored from memory rather than from disc. Mutations would happen unless the population was within a certain size range. Once it was all ready and as tested as I was willing to bother with, I let er rip.
Continue reading Think I was trying for the wrong thing.
Picking it up from yesterday’s entry, I needed to confirm that the quick populations, those that produce new figures quickly, were as fragile as I thought, and for the reasons I thought. I started with m1.
Continue reading The quick are the dead
This might solve everything. I’ll need to do some testing to make sure I’m right, but there’s a beautiful way around the mutation problem.
It’s not the type of mutation; it’s the type of population. We’ve got two main types: the quick and the slow. The quick ones, like m1.pop, do their best to fill up all available space and to make new figures as quickly as possible. The slow ones generally find a particular population size, and stay there, no matter how much more room is available; and they only make new figures slowly. I’ve said several times, and it turns out to be true—speed isn’t everything.
Continue reading Solving the mutation problem
I’ve come up with a mixed bag of modifications to my artificial life system. I’m trying to get my digital creatures, which I call “figures,” more stable, quicker to emerge from randomness, and better able to tolerate mutations. As far as quicker emergence and greater stability goes, the tricks are working out. The system as gone from requiring multiple runs of 8 to 12 hours each, just to generate one stable population; to a system that can make a stable population consistently in less than 15 minutes, usually less than ten, and often less than 5. As far as tolerating mutation goes, it still isn’t any better. One single mutation is still enough to kill off the entire population, no matter which trick or combination of tricks I use.
Continue reading Zombie code
22 :: Sunday September 2, 2018
I need to jot this down before I forget.
I only just yesterday got the fat ports to work. I’d been calling inner write on the baby figures before they were added to the realm. That meant there were no trackers connected to the baby figures when their safe random method got called. All that time, I was just running the system more or less like the fat ports weren’t even there. Once I fix that, it ran like a dream.
Continue reading Two entries from my project journal