Zerobot

From WikiManual
Revision as of 18:56, 29 November 2014 by Botsareus (talk | contribs) (Automatic settings independent zerobot evolution)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

A zerobot sim (sometimes called ex nihilo) starts using a bot with as little information as possible. Traditionally these bots would contain all zeros. An example:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Other Zerobot DNA:

cond
start
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
stop


Numbers of Bots:

To start I'd recommend a large number of bots between 60 and 100.

This increases the chances that at least one of them will evolve DNA code that allows self reproduction.

Settings

There's no single 'best' setting for evolving a zerobot. I'll try to describe some of what I've seen work and what I've heard from others working.

Zerobot Feeding

Personally I use feeder veggies that both feed and initially force reproduction upon the zerobots. Some other methods include the zerobots themselves starting as veggies, feeder veggies with manual reproduction, and simply waiting. In the last case the Zerobots will not replicate at first. Eventually point mutations will create a replicator, and natural selection may start. It has been observed to take some time with this method for the first replicators to appear.

Physics

This is where it gets tricky. There's an endless variety of settings that'll support the evolution of a self reproducer.

Endy's Method

I'll normally start with a high gravity, high brownian motion, high global mutation rate, non-toroidal environment. Basically this clumps the bots together with their feeder veggies at the bottom, while the brownian motion ensures the bots are distributed randomly for feeding. The bots being tightly grouped together provides an additional benefit, since the effects of their random mutations can spill over onto the other bots via shots or ties. The high initial mutation rates ensure that tons of random DNA is generated each reproduction event, some of this is bound to produce bots that can reproduce by themselves.

Then you proceed to make their environment more challenging as they evolve to meet the basic challenges. Once the bots achieve basic self reproduction I'll restart with those bots, swapping out the Feeder/Repro'er veggie with a strict Feeder veggie and decreasing the mutation rates. This'll wean them off any dependency on the plants for reproduction and the mutation rate reduction will stabilize their evolution. Next I wait until they learn to feed by themselves with semi-random nrg sharing or shots. Then I'll swap the veggies out again with a regular veggie so that the bots truly have to fend for themselves. When the bots evolve the ability to deliberately move, I change Brownian motion to zero, so the ability is encouraged.

Each time the bots meet their current challenges, they find even harder challenges ahead. Best results from ex nihilo sims usually require constant tinkering.

Automatic settings independent zerobot evolution

Well it is not totally settings independent, population density per screen size is the only settings dependent thing about it. Early modifications are in 2.48

Links:

Zerobot Veggies