Author Topic: gimmic for zerobot evolution  (Read 5435 times)

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
gimmic for zerobot evolution
« on: May 16, 2008, 04:55:32 AM »
I was thinking about the way DB behaves around zerobot evolution an the emergence and propagation of replication. It occurred to me that the zerobot as it currently has been defined already has a fundamental characteristic of life that greatly impacts propagation of replicating genes: self containment. Two randomly evolved genes cannot bond head to tail when in physical contact, nor can a gene split up in two autonomous parts. Imagine a zerobot developing some sort of replicating mechanism without this auto containment: it would pass on replication to whatever other bots it would come into contact with. Inversely, the population could grow without replication. In DB this could be modelled by introducing a few items: a close to represent the boundaries of the selfcontainment, and the rule that bonding or breaking cannot occur before the first close. Combined with probabilities of bonding and breaking this should push back the start of DB simulation back further ito the aminoacid soup

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
gimmic for zerobot evolution
« Reply #1 on: May 16, 2008, 05:09:59 AM »
Of the part I can currently understand, I do agree that it is wierd having the zerobots "evolve" bodies before they become replicators. I'll come back when I'm in an environment that allows me to digest info.
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
gimmic for zerobot evolution
« Reply #2 on: May 16, 2008, 12:06:36 PM »
It's a good point and there is nothing we can do about this - DB is based on the concept of bots. It never was specifically design to ask the question of emergence of life - from the beginning it was always about evolution of existing life. The "zerobot" approach is relatively new here. It was brought in just as a fun challenge.

BTW, you can treat each bot at that stage as a puddle of water that is full of pre-biotic material. In that case the evolved replicator (a particular set of DNA commands within that pe-biotic material) does indeed replicate all other stuff along with itself.  So it's not self-contained. The abstract nature of bots can be interpreted in many different ways
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
gimmic for zerobot evolution
« Reply #3 on: May 16, 2008, 12:53:37 PM »
I'll just point out that due to technical limitations in the simulator, evo sims of any sort were basically a joke until perhaps 2 years ago, which is about when the zerobot concept caught on.  For various reasons not the least of which were limitations on the number of mutations details that could amass before bad stuff happened (yes, these issues existed in the 2.36 code base) no one was even capable of running long term evo sims until I fixed those bugs.  So, no one was able to explore the issues related to the effect of cummulative mutations on hand authored code or to understand that people just don't author code in the same way nature does.

We talk about conspecs and species recognition and canibots and such as if our concept of those things have some relationship to evo bots but they don't.  No DNA has ever evolved enough logic to have the ability to care about other copies of itself much less recognize them.  Those terms are meaningless to date w.r.t. evo sims.

Zerobot evo sims in my mind arn't about the origination of life.  Rather IMHO, they are the only kind of evo sim that is worth doing.  Any evo sim that begins with a hand coded bot of any complexity is bascially akin to shooting gamma rays at a space shuttle.   Your taking something man made and artificial, built in a manner nature didn't create and would never use and simply using mutations to degrade it, comparing which copies degrade the slowest and acting surprised when some degraded copy malfunctions in an interesting manner.  Hand authorred bots were not designed to be mutation resistant, they have no evolution history.  They didn't come from anywhere and they arn't going anywhere in an evolutionary sense.  They're a built thing, not an evolved thing and as such you can't expect them to go anywhere but "down" when you start the evolution clock by enabling mutations.  They're DNA occupies an unreaslitic peak in the fitness landscape, one unreachable by evolution.

Of course it takes a few tens of millions of cycles for this to become apparent, which is why people still try running evo sims with hand coded bots and think something worthy is happening when their delicate hand-authored conspec recognition or body management code breaks and they get so-called cannibots or cancerious bots.  IMHO, there's nothing worthy or interesting or surprising about that.  The breaking of hand coded conspec code is not evolution preferring cannibalism.  Its not evolution at all.  It's just the space shuttle failing in an interesting way as it falls off it's impossible peak in the fitness landscape.
« Last Edit: May 16, 2008, 12:56:15 PM by EricL »
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
gimmic for zerobot evolution
« Reply #4 on: May 16, 2008, 01:23:19 PM »
I am going to disagree and say hand authored bots can give interesting results.  Let's assume that the bot is at the top of its fitness landscape.  It is simply the most perfect bot ever written by Man.  With a sufficiently large population, and low enough mutation rates, you should be able to run a sim of those little buggers for millions of years and have them not change, which is sure an interesting result.

The problem is that we have yet to devise a long term environment that exactly mimics the conditions of a F1 contest, so features that are good in an F1 contest just aren't good in a sparse and safe long term evo sim.  When a bot develops cannibalism, or whatever, it is evolving.  That it comes up so frequently is a sure sign of that.  Bots that don't remember how to feed, for instance, die rather quickly.  We may not like the sort of mutations that break behavior we built, but it's a valid evolutionary strategy that makes the bot more fit iff it catches on and everyone does it.

Destructive adaptations aren't the only things I've seen with hand authored bots.  I have also seen alga minimalis evolve to wiggle instead of turn, which caused it to be much harder to eat.  That mutation quickly was the only one left, and most of my other bots died from starvation.  Zerobots are fun to run, not because they're the only things that are evolutionary, but because they allow us to look at something that is purely evolutionary.

Anyway, to the topic at hand, I think Eric's right and the technical limitations of the simulator are going to be the primary limiting factor.  Reproduction is sort of magical like it is because that's the easiest way.

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
gimmic for zerobot evolution
« Reply #5 on: May 16, 2008, 02:08:11 PM »
Quote from: shvarz
BTW, you can treat each bot at that stage as a puddle of water that is full of pre-biotic material. In that case the evolved replicator (a particular set of DNA commands within that pe-biotic material) does indeed replicate all other stuff along with itself.  So it's not self-contained. The abstract nature of bots can be interpreted in many different ways
Nice abstraction. However, I would say it is contained by the puddle.
Quote from: shvarz
It's a good point and there is nothing we can do about this - DB is based on the concept of bots.
I don't see the concept of bots needs to be broken to implement this. All that is needed is a set of rules to define gene behaviour in uncontainend conditions and defining when the condition applies. As an inprovement to the original suggestion to a new ''close'' command a body could be said to exist when  body, slime or shell have been increase by the genome. No new command needed.
Quote from: shvarz
It never was specifically design to ask the question of emergence of life - from the beginning it was always about evolution of existing life. The "zerobot" approach is relatively new here. It was brought in just as a fun challenge.
I'm not judging the work done. I like the concept of zerobot evolution and I think this may be a nice extension. I for one am curious about the interaction between containment and replication. Outside that it has no purpose. A gimmick, as the title says

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
gimmic for zerobot evolution
« Reply #6 on: May 16, 2008, 02:08:21 PM »
Quote from: Numsgil
I am going to disagree and say hand authored bots can give interesting results.  Let's assume that the bot is at the top of its fitness landscape.  It is simply the most perfect bot ever written by Man.  With a sufficiently large population, and low enough mutation rates, you should be able to run a sim of those little buggers for millions of years and have them not change, which is sure an interesting result.
There's a difference between being at the top of the fitness lanscape and being on a peak that is actually reachable by evolution.  There are many many peaks, some very very high, that are unreachable by evolution (one wonders whether the same is ture for biological DNA - can you say engineered supermen?) but in general, I'll agree with you here.  I will point out that the default mutation rate is too high for this to happen currently, probably by orders of magnitude.  We need more instrumentation on the evolution of mutation rates relative to the overall rate and selection for stasis, but I don't think I've ever seen anything close to this.  Everybody mutates.  We don't see stasis.  One would expect that in the absense of any other kind of selection pressure, we would see selection for lower mutation rates.  I don't think we've seen that but admitably, its hard to tell today.

Quote from: Numsgil
The problem is that we have yet to devise a long term environment that exactly mimics the conditions of a F1 contest, so features that are good in an F1 contest just aren't good in a sparse and safe long term evo sim.
I think it's more than this, more than just constructing the environmental conditions so as to provide the right selection pressure to maintain the hand authorred logic.  I think it's a function of the richness of the DB DNA.  There are so many different ways to code the same thing that the probability that a human will code some functionality in a way that evolution would is bascially zero.   I suspect (but cannot prove) that code produced by evolution has "hidden complexity" and represents more than just the functionality it embodies.  It represents a specific way of obtaining that functionality, a specific coding style if you will that was produced by evolution and is therefor selected for an evironment where evolution is occurring.  I suspect that someday, an analysis of evolved sequences will show things such as a much higher probabiltiy that a point mutation will result in something functional for example, than does a similar hand authored sequence that acheives the same functionality.

Quote from: Numsgil
When a bot develops cannibalism, or whatever, it is evolving.  That it comes up so frequently is a sure sign of that.  Bots that don't remember how to feed, for instance, die rather quickly.  We may not like the sort of mutations that break behavior we built, but it's a valid evolutionary strategy that makes the bot more fit iff it catches on and everyone does it.
In my mind, it's more a matter of degrading incrementally.  Sure, if you degrade too quickly, your line dies out.  The pace of degradation is held in check by the most functional of the failing space shuttles, but the population as a whole is fast degrading and loosing the functionality represented by that hand authorred code (yes, because selection is in operation.)  A mutation that increases short term reproductive fitness is perferred over long term because there is no long term stabalizing selection in operation preserving that code, nothing to preserve all that complex code represented by that artificially high peak in the landscape except competition between conspecs for which has the least deleterious mutations.   You can think of this as evolution in that the least broken surivies to reproduce, but I would hestiate to call it directional selection.  And if you do, surely the direction is towards destroying all that hand authorred code.  

Quote from: Numsgil
Destructive adaptations aren't the only things I've seen with hand authored bots.  I have also seen alga minimalis evolve to wiggle instead of turn, which caused it to be much harder to eat.  That mutation quickly was the only one left, and most of my other bots died from starvation.  Zerobots are fun to run, not because they're the only things that are evolutionary, but because they allow us to look at something that is purely evolutionary.
Right.  To be clear, I'm not saying simple hand authorred bots can't evolve, just that the more complex the hand authorred code, the less one can expect selection to favor and preserve that hand authorred code in the long run.

I will say however that there is one good thing about hand authorred bots and that is they represent a lot of usefull, low level DNA buiding blocks akin to junk DNA.  I.e. a genome that already contains a tie sysvar is more likely to to evolve the use of ties than a zerobot genome that does not.  But after a few million cycles, it is unlikly that the tie use will have any relationship to the manner the human author intended.    Hand authorred code is rarely if ever preserved by selection for very long.  Still, I will admit it might be faster to start with hand authorred bots, let them degrade to nothing more than replicators with lots of junk DNA and watch them evolve from there than it would be to start from pure zerobots.
Many beers....

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
gimmic for zerobot evolution
« Reply #7 on: May 16, 2008, 04:39:07 PM »
Just my two cents:

I have seen a lot of hand-authored bots becoming better during evolution in DB. The trick is not to use the conditions for which the bot was originally coded. As a result, the hand-coded bot starts with low fitness and then improves over time. Often the improvements are enormous.

As far as bots that fit the environment for which they were designed, I don't think that hand-authored bots break down because their DNA is somehow non-fit to accommodate mutations. I think that much more frequently the coded features are simply not as beneficial as authors think they are. Thus bots loose them. Due to low population sizes and high mutation rates the amount of genetic drift is enormous in DB. When we improve the computation speeds and people start running larger sims we'll see a lot more preservation of hand-authored features and a lot more evolutionary improvements on hand-authored designs.

I'd like to take a minute here and once again call for running IM with pre-set conditions that are identical or very similar for all IM-connected sims. This should reduce the drift a lot and help the evolution.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
gimmic for zerobot evolution
« Reply #8 on: May 16, 2008, 08:06:41 PM »
The unnatural efficiency argument seems to make sense, but I still think there will always be room for improvement, no matter how unlikely. Zerobot are a good example of this; if they learn to feed, won't they have made progress from losing energy so they die a slow death?
 On the topic of Zerobots, and now that someone has brought out conspecs, in a high-mutation rate environment, I think consec systems would be a proof of irreducible complexity, unless the environment allowed cumulative mutations through several generations. What we really need is something that picks out the best bots and deletes the rest, kind of a population threshold that when crossed destroys the bots that are least successful.
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
gimmic for zerobot evolution
« Reply #9 on: May 16, 2008, 08:28:26 PM »
What you're talking about is an artificial fitness function.  Something like what Avida has.  It's not a bad strategy, but IMO what makes Darwinbots work well is that there isn't any divine intervention on selection.  Bots are purely selected based on removing bots with 0 nrg.  That's the entire fitness function as far as the program is concerned.  If you have >0 nrg, you're fit.  Otherwise you aren't fit.  Any other fitness term is emergent from interactions between the bots and their world.

Also, anything evolving in a high mutation environment would be proof for irreducible complexity   Really if you have more than one functional mutation per generation you're in trouble.
« Last Edit: May 16, 2008, 08:30:03 PM by Numsgil »

Offline The_Duck

  • Bot Neophyte
  • *
  • Posts: 29
    • View Profile
gimmic for zerobot evolution
« Reply #10 on: May 18, 2008, 03:19:06 PM »
Quote from: EricL
I suspect that someday, an analysis of evolved sequences will show things such as a much higher probabiltiy that a point mutation will result in something functional for example, than does a similar hand authored sequence that acheives the same functionality.

I recall reading an article in Scientific American a few years ago that was about something to this effect in real DNA; here is an abstract that talks about it: http://www.ncbi.nlm.nih.gov/pubmed/14604186?dopt=Abstract

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
gimmic for zerobot evolution
« Reply #11 on: May 19, 2008, 03:19:13 PM »
I definately agree that surviving is the best possible fitness function you can hope for, everything else is just assumed to be qualified guesses...
You never know what could happen, even if you observe a species or certain mutations or behaviors you never realy know if they where bad or good since it all depended on a large amount of factors at that time. So any assumtion you try to make will likely be wrong, you can hope to kill off more bad than good bots, but you also risk inhibiting evolution from going in certain directions and generaly kill off some of the potentialy best bots in your sim.
Also if you realy want to find the best bot in your sim, you need to disable mutations and wait for one species to remain.
I can't think of any other way, if you mess with costs or the environment then you won't get the bot that was most fit for the original setup.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
gimmic for zerobot evolution
« Reply #12 on: May 19, 2008, 03:30:30 PM »
As a follow up to my previous post.  Real organisms tend to have mutation rates on the order of 1 mutation per million to billion base pairs.  Which in DB terms would equate to 1 mutation per 1000 or 1000000 generations.  I think DB is a little more forgiving than real life in this regard, since a complex DB DNA might be a couple thousand bps, while the human genome has several billion bps, which bumps us back to something between 1 mutation per 1 to 1000 generations.

I would say a "default" mutation rate to aim for might be 1 mutation per 7 or 8 generations.
« Last Edit: May 19, 2008, 03:30:58 PM by Numsgil »

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
gimmic for zerobot evolution
« Reply #13 on: May 19, 2008, 03:43:41 PM »
Quote from: The_Duck
I recall reading an article in Scientific American a few years ago that was about something to this effect in real DNA; here is an abstract that talks about it: http://www.ncbi.nlm.nih.gov/pubmed/14604186?dopt=Abstract

I read this article also.  One thing I will call out that I think they missed is that genones aren't after a 0% error rate when it comes to copying fideility.  A genome that doesn't mutate and therefor cannot adapt to a changing environment is as bad as one that mutates too much due to too high a copy error rate.   Therefor, I think it is simplisitc to state that reducing copy errors has been the only selection driver for how DNA came to be coded the way it is.

A theory I happen to subscribe to is that codon synonyms, codon bias and much of the DNA copying and replication machinery itself is largly the result of selection for a coding language and machinery that allows a genome to code for very different copy fidelity rates in differnent places and to have this mutation probability coded in an out-of-band way that does not directly impact the resultant proteins.   Said another way, I might claim that evolution could have produced an information coding method and copy machinery whose error rate was zero for all intents and purposes but that this has been selected against since the genome that always makes perfect copies of itself cannot adapt.   It's not at all hard to imagine that given two genomes which code for the exactly the same, identical proteins, selection would favor the one which happened to use codon synonyms which coded for higher mutation rates where higher mutation rates were advantageous (e.g. specific posion production when co-evolving with preditors) and lower mutation rates where lower mutations rates were advantegous.
Many beers....

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
gimmic for zerobot evolution
« Reply #14 on: May 19, 2008, 08:16:12 PM »
Quote
As a follow up to my previous post. Real organisms tend to have mutation rates on the order of 1 mutation per million to billion base pairs. Which in DB terms would equate to 1 mutation per 1000 or 1000000 generations. I think DB is a little more forgiving than real life in this regard, since a complex DB DNA might be a couple thousand bps, while the human genome has several billion bps, which bumps us back to something between 1 mutation per 1 to 1000 generations.

I would say a "default" mutation rate to aim for might be 1 mutation per 7 or 8 generations.

Just to resolve some confusion of terms:

Mutation rates can be counted as "per replication per nucleotide", I.e. the frequency of error during each individual step of DNA replication. Those vary widely from 10^-9 to 10^-4. These numbers reflect the accuracy of the copying machinery of an organism.

But you can also count mutation rate "per genome per generation", I.e. what proportion of genomes have at least one mutation. Those can be obtained (in a rough but fairly accurate estimation) by multiplying the mutation rate by the length of the genome. These vary a lot less. For humans it is 175 mutations in each replication cycle, but most of those happen in all the junk DNA (or are silent mutations) and thus they have no effect on phenotype.

Another important measure of mutation rates is how many mutations per generation do have an effect on phenotype. It is very difficult to estimate that for humans. But RNA viruses give us a clue as to the maximum possible. We know it's maximum because when we try to increase that mutation rate, viruses go extinct - they enter error catastrophe. For some viruses every third off-spring carries a mutation. We can estimate that about half of these mutations are silent. Thus, a single  mutation in ~6 offspring is about as much as an organism can handle.

These rates are difficult to translate to DB, because they are properties of genome complexity and genome organization.
"Never underestimate the power of stupid things in big numbers" - Serious Sam