Bots and Simulations > Evolution and Internet Sharing Sims

Zerobot sims

<< < (8/13) > >>

EricL:

--- Quote from: Jez ---er, seeing as you guys are discussing what a zerobot is and I was thinking of having some sort of zerobot league thingy (maybe not competitive) with, perhaps, a template zerobot that all entries had to start from, what would you suggest for that template?
--- End quote ---

How about something such as "Any bot descended from an ancestor with a genome or 30 bais pairs or less ( hand coded or 0 sequence) and whose current genome is at least 100 mutations distant from that ancestor.

Numsgil:
I wouldn't even put an upper limit on the the number of mutations.  Just so long as 100% of its DNA came from a predecessor (not from viruses of league bots infecting them).   I wouldn't put any strictures on how the evolved bot is treated either.  If you want to just let a bot develop on its own, that's equally valid as if you prune and weed like Zinc Avenger's sim.


--- Quote ---These questions are meaningless without reproduction. If a bot learns to shoot, but will not reproduce, what good will it do? It's just going to be a single bot.
--- End quote ---

A single bot in a sim full of other single bots.  We've seen big berthas in the past.  With costs all set to 0 (as is usually done) a bot that fires -6 shots all the time is going to have a great deal of surpluss body and nrg.  As Eric pointed out above, something that just replicates all the time without a source of raw material is eventually going to stop reproducing.  This is as true in Darwinbots as in real life.  I think the question of what develops first and in what order is fundamental, and largely unexplored in Darwinbots.


--- Quote ---You can't draw any conclusions from this. It is also of no importance to evolution, because evolution is based on reproduction.
--- End quote ---

Right, natural selection requires reproduction.  However, somethings still acting even without Natural selection.  A bot that learns to shoot -2 (nrg) shots all the time is going to kill itself.  There are so many ways for a bot to kill itself.  There's another sort of natural selection at work here.  But instead of having the creature try to live on to the next generation, you have the genomes fighting just to survive till the next cycle.  Genomes that can't are immediately removed, and fresh ones are given in their place.  It's not natural selection, but it's definately not all random.


--- Quote ---Now, the fact that viruses are the first thing that develops is an interesting finding. Even more so, because I would predict that viruses would be
difficult to develop. That's a pretty cool result if confirmed by others!
--- End quote ---

It's happened at least twice.  Testlund has posted his bots that learn to do this.  Both viruses were about 10 or 20 base pairs, and extremely inefficient at producing a virus from itself.  But it still managed to do so every once in a while.  What I think this is is DNA learning that it doesn't need to use bots to reproduce.  Bots can die, and they need physical substances eventually in order to reproduce indefinately, but viruses can infect fresh copies of the zerobot being spawned into the simulation.

It would be really interesting to see where that course of evolution would go, but the DNA length of bots in the sim starts to get really out of hand.  Like on the order of thousands of base pairs and steadily climbing.  Some DNA costs would probably help.  The research is ongoing!


--- Quote ---As far as your concerns for bias, I don't agree at all. The simple genome that I started with is completely gone in 1 million cycles. There is nothing left at all. One mistake I made was that I started with a reproduction gene that had a condition and a predefined % to give to baby. Something like this would have been much better:
--- End quote ---

Certainly after several thousand mutations, the final product is probably statistically lost.  All correlation has entirely been destroyed.  But that initial genome provides momentum into what sort of bot you're going to end up with.

Even if there was no good reason to play with ex nihilo sims, there's still a romantic magic about starting from scratch and seeing what develops.  It's hardly a new idea, the majority of other simulators let you start with noncoding empty cells and allow reproducers to eventually develop.

Testlund:
Well, reading the discussion here I see it is worth it to try both starting from nothing and starting with a basic replicator. Also I have found that if you let the program make a replicator it never seem to give 50% energy to it's offspring, more like close to 100% or 10%. I'm waiting to see what effect that will have. The one that gives allmost all of it's energy to it's child will actually just try to avoid the ageing costs to stay immortal. Logically all it takes is some bad mutation to kill off that offspring and that kind of bot will be gone.
I think a bot like the one in Shvarz example whould be the most effective kind which might prevent other kind of reproduction metods from taking over, like that of viruses for instance. In my evosims though I've seen that viruses are what really kicks the evolution forward by providing a lot of code.
In any case I think it can be interesting to compare two evosims (one with a predesigned replicator and one null) just to see what other things might evolve and when. So I'm thinking I should try that with my two computers now.  

By the way I've heard that there is a theory that viruses might have been the first that appeared on earth. An interesting paralell.

Jez:
Ok, I've done a little bit of surfing to see what people think about abiogenisis.

A common thread seems to be self replication using some form of free energy.

I jumped on the zerobot idea because that seems a much more purist way of running the evolution, not using other bots for gentic contamination or starting from a previously designed bot. DB was really designed as an evolution program, I think zerobots are a really good way of exploring what the program is capable of.

Testlund raises a good point, because the bots aren't limited, at the start, to only producing identical copies of themselves, the bots have taken it upon themselves to test the programming by varying their reproduction percentage. Also the idea that they might replicate in ways other than .repro is a possible reason to not give them the .repro command to start.

I think one of the problems that we are going to run into is that the veg are defined as veg outside the sim, not inside the sim. Eric thought of a neat way to provide the free energy that this sort of evolution needs to start but that might have an affect on the path evolution then takes. Otherwise we are using an outside, non evolving, heterotroph command to provide the start energy.

The virus thing is interesting, is this evolution of proper viruses or a form of evolutionary horizontal gene transfer as suggested by Carl Woese, the chap that discovered the Archaea?


--- Quote ---instead of having the creature try to live on to the next generation, you have the genomes fighting just to survive till the next cycle. Genomes that can't are immediately removed, and fresh ones are given in their place. It's not natural selection, but it's definately not all random.
--- End quote ---

I don't see that as a problem tbh, you are looking at the evolution of a species in an area that provides the right properties for mutation, there are millions of other self replicating bodies in other areas, that aren't so encouraging for mutations and as your mutating bots die out more unmutated bots drift in. Until your mutating bots manage to colonise the area by evolving positive mutations this is always going to happen. I don't see evolution as a world wide blanket event. I think this is a great way of modeling natural selection, albeit our hotspot might be a little small...

Anyway, in the interest of not confusing things by arguing over terminology, I define a zerobot as starting from (almost) nothing and an evobot as being evolved from something with possible genetic contamination allowed.
Doesn't matter (to me) if the evolution is run as a test of randomness or in God mode. (You slaughtering the bots you don't like and pretending to take care of the bots you do like!)
The template I was thinking of is probably not a fixed template, more what you can't have. (You can have .repro, you can have as many random numbers as you like, but nothing else, for instance).

Zinc Avenger:
The only reason why my "headstart" bots have 50 .repro store in there is because I don't want to wait 15m cycles for something interesting to appear. If my computer was faster, I would have no hesitation to start with a "pure" zerobot.

I've performed super-long-term "pure" zerobot sims (on machines at work I've "accidentally" left running all weekend, save on Monday and load and continue every Friday...) that have reached several tens of millions of cycles. I don't see this as more or less valid than an intensive bonsai - the costs and my whims are all part of the environment and they evolve to survive both. Its the evolution of behaviour I find interesting, rather than the starting point.

I like the idea of a zerobot league. How about two: one with vanilla zerobots with, say, 20 zeros and nothing else, and another with (50 .repro store) and 17 zeros. Competitors can tailor their evolution sims in any way they like (bonsai-style environmental pruning encouraged but hand-editing of dna strictly forbidden) but the competition only takes place in a fully-standard F1 environment, winner is the last bot standing.

Perhaps to encourage some seriously long collaboration we could also include a clause that whatever bots are submitted are fair game for anyone to take and evolve and compete with, provided they put the bot through at least, say, 10m cycles of their own before submitting.

If anyone is interested, we'd need to come up with a naming convention for the bots... Hmm... An identifier for the original bot, then a two letter code for the competitor, then the number of million cycles that competitor evolved it uniquely, adding the code and number of cycles removed from the last submission? Like I might start a bot 01ZA5.txt (Starting zerobot 01, then baked by Zinc Avenger for 5 million cycles) and Testlund might give it 10 million cycles so it would be named 01ZA5TL10.txt. That way we might be able to build up a family tree.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version