Author Topic: Ways to increase natural selection?  (Read 16738 times)

Offline Gantolandon

  • Bot Neophyte
  • *
  • Posts: 8
    • View Profile
Ways to increase natural selection?
« Reply #15 on: September 11, 2008, 10:08:11 AM »
Quote
Attempting to create a stable, mature, multi-species evo-sim using hand-coded bots as a starting point is the very definition of intelligent design and creationism. It should not be surprising that it doesn't work. Complex eco-systems are the end result of long long long periods of evolution and co-evolution. It extremely difficult if not impossible to create something sophisticated and balanced like this out of thin air using authored organisms.

Well, I don't hope for creating a stable ecosystem with hand-coded bots. I just would like to know what can I do in case of massive dying out of the entire ecosystem. Or an interesting "species". It seems that in many cases, when an organism gains a lucky mutation, it begins to drive out its competition before it has any chance to react in any way. I don't know what to do in such cases.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Ways to increase natural selection?
« Reply #16 on: September 11, 2008, 10:59:34 AM »
One thing you can do is create geographic isolation - pockets where diversity can evolve with minimal (but some) migration between them.  Do this by running larger fields, making your sim non-toroidal, using multiple teleporter-connected sims and/or or using shapes to create barriers to founders.   This lets species come into contact gradually and might perhaps allow them, once evolved, to evolve a means for long term co-existence instead of having every individual mixed in with every other.  Maybe.  A so-called weaker species might still defend a niche effectively against a "stronger" species, particularly if it has the strength of numbers on it's home turf.
« Last Edit: September 11, 2008, 11:00:46 AM by EricL »
Many beers....

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
Ways to increase natural selection?
« Reply #17 on: September 11, 2008, 01:33:38 PM »
Issue is that every strain competes for the same niche. If there are different niches (food availability, rules) different strains evolve in the different niches without being able to outcompete each other. You may even see strains being able to cling onto life on the border caught between lad and water. ruling neither, but surviving in both

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Ways to increase natural selection?
« Reply #18 on: September 11, 2008, 01:37:53 PM »
Quote from: ikke
Issue is that every strain competes for the same niche. If there are different niches (food availability, rules) different strains evolve in the different niches without being able to outcompete each other. You may even see strains being able to cling onto life on the border caught between lad and water. ruling neither, but surviving in both
Exactly.  When I say our sims are too small, too simple, etc. I mean that we don't have a rich enough environment to support lots of niches to facilitate this multi-specialist co-existence in proximity.  Adding additional environmental complexity to facilitate diversity of niches is one of the main thrusts I want to work on over the next year...
Many beers....

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Ways to increase natural selection?
« Reply #19 on: September 11, 2008, 03:38:18 PM »
FYI, I managed to get a couple of hours to rub together today and I implemented auto-species forking based on genetic distance for 2.43.1M.   I also implemented a Max Genetic Distance graph which shows you the maximum genetic distance between individuals in a species.
Many beers....

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Ways to increase natural selection?
« Reply #20 on: September 13, 2008, 01:06:16 PM »
FYI, here's a screen shot showing co-existence of multiple species over time.  Granted, the duration shown is only 10k cycles, but you can see the relative populations of most species remain fairly stable.  Near the end, on species (Seasnake 1 4759)  can be seen making significant gains at the expense of the others.   Note that the coordinated up and down fluctuation is due to auto-costs.

New species were created via the new auto-forking capability when the genetic distance between individuals exceeded 30 mutations.
Many beers....

Offline Shasta

  • Administrator
  • Bot Destroyer
  • *****
  • Posts: 231
    • View Profile
Ways to increase natural selection?
« Reply #21 on: September 13, 2008, 06:49:08 PM »
Thats really cool. I can see that being really handy in evo sims. But, is 30 mutations enough? When I ran a zerobot sim there were thousands of mutations before anything reproduced, that graph might get pretty cluttered.

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
Ways to increase natural selection?
« Reply #22 on: September 13, 2008, 08:53:56 PM »
Quote from: EricL
FYI, here's a screen shot showing co-existence of multiple species over time.  Granted, the duration shown is only 10k cycles, but you can see the relative populations of most species remain fairly stable.  Near the end, on species (Seasnake 1 4759)  can be seen making significant gains at the expense of the others.   Note that the coordinated up and down fluctuation is due to auto-costs.

New species were created via the new auto-forking capability when the genetic distance between individuals exceeded 30 mutations.
Thanks, this is really, really helpfull (I really miss the :flowers: emoticon in this forum). I am very curious how this graph will play out in my zerobot sim. Currently my only means to assess success is finding the most successfull bot and looking at the number of offspring it has. As for the clutter: if the mutation distance can be chosen, and / or only the top x ar shown at any given time, the clutter can probably be controlled. For now I am happy enough to live with clutter.

For the complex environment: I don't know how integrated the rules are in the sim or if it is easy to make rules specific to a shape. From an evo sim perspective this is the feature. Putting on my object oriented, and without knowing the code hat I'll state that it can be as easy as making the rules object part of shape not sim. Given that DB itself is an evolutionary project, and that VB is not object oriented (at least that is what I'm told), the code probably has to be torn apart to get this done, making it a near prohibitive amount of work.

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Ways to increase natural selection?
« Reply #23 on: September 14, 2008, 11:40:47 AM »
Quote
For the complex environment: I don't know how integrated the rules are in the sim or if it is easy to make rules specific to a shape. From an evo sim perspective this is the feature. Putting on my object oriented, and without knowing the code hat I'll state that it can be as easy as making the rules object part of shape not sim. Given that DB itself is an evolutionary project, and that VB is not object oriented (at least that is what I'm told), the code probably has to be torn apart to get this done, making it a near prohibitive amount of work.
VB is objectorientated.

Can the number of 30 mutations be changed?
Can I get the program mad if I insert 1000 bots inside a sim with full mutations?
Oh my god, who the hell cares.

Offline goffrie

  • Bot Builder
  • **
  • Posts: 65
    • View Profile
Ways to increase natural selection?
« Reply #24 on: September 14, 2008, 08:59:17 PM »
Quote from: Peter
VB is objectorientated.
Visual Basic 6 (at least) is not really object-oriented (Wikipedia says "basic object oriented support").

Yay nitpicking!

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Ways to increase natural selection?
« Reply #25 on: September 15, 2008, 01:42:50 AM »
Either way the Darwinbots source for VB is written about as procedurally as you can get.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Ways to increase natural selection?
« Reply #26 on: September 15, 2008, 12:23:56 PM »
Quote from: Shasta
Thats really cool. I can see that being really handy in evo sims. But, is 30 mutations enough? When I ran a zerobot sim there were thousands of mutations before anything reproduced, that graph might get pretty cluttered.
In 2.43.1m, species can be forked either manually or automatically.  There's a new dialog where you set options for what attributes should be used to declare new species.  It contains a "fork now" button for one time forking as well as an option for automatic forking where the code will automatically fork species, checking every 100 cycles if the criteria for forking have been met.

In either case, the decision to fork species can be made based upon the maximum genetic distance within species, the maximum generational distance within species or both.  Maximum genetic distance as I'm using it is a bit of a misnomer in that is not an exact computed genetic distance.  I am not examining extant genomes and computing genetic distance.   Rather, I'm using ancestor lists and thus the maximum genetic distance is really the number of mutations that separate the genomes of the two most distantly related (based on genetics) individuals in the species.  Generational distance is the number of generations separating the two most distantly related individuals (based on ancestral relationship).  

Consider two extant bots of the same species, A and B.   Since they are of the same species, they have a most recent common ancestor.  Lets call that bot C.  Let's say bot C is 20 generations back for bot A and 25 generations back for bot B (the generation time on B's side of the family has been shorter for whatever reason).   45 generations separate bots A and B.  That is the generational distance.    The genetic distance (as I'm using the term) is the sum of the mutations that have occurred along both lines of descent, from C down to A and from C down to B.

A new species can be said to have come into existence when a single species splits into two or more separate and independent lines of descent.   Drift and/or selection works to separate the genomes on the lines of descent over time.  If they don't die off, at some point they can be said to have forked and to have become separate species.  The new dialog allows the human to specify when a new species should be declared for the purposes of separate tracking via the population and other graphs based on generational distance and/or genetic distance.  

New graphs for maximum genetic distance and maximum generational distance in 2.43.1m allow you to watch this happen for all species and tune your speciation settings accordingly.   With either graph, a species value that greatly exceeds those of the others is a clear indication that speciation has occurred within that species I.e. that multiple independent lines of descent exist within the species.  In future versions, I may provide the option to detect this and fork species automatically based on these relative measures rather than specific human-specified trigger values.  e.g. fork a species once it's maximum genetic distance reaches 10X the average for all other species.

The weather is still really nice here in Seattle, so my DB coding time has been limited, but it looks to turn crappy later this week at which point my time working on DB should increase.  Hopefully should be able to release this relatively soon.
« Last Edit: September 15, 2008, 02:03:48 PM by EricL »
Many beers....

Offline ikke

  • Bot Destroyer
  • ***
  • Posts: 300
    • View Profile
Ways to increase natural selection?
« Reply #27 on: September 15, 2008, 01:18:55 PM »
still mis the flowers emoticon. Additionally I now miss the worthy emoticon. I'll just have to settle for  

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Ways to increase natural selection?
« Reply #28 on: September 15, 2008, 02:46:19 PM »
Quote from: EricL
The weather is still really nice here in Seattle, so my DB coding time has been limited, but it looks to turn crappy later this week at which point my time working on DB should increase.  Hopefully should be able to release this relatively soon.
I hope there will be rain.
Oh my god, who the hell cares.

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
Re: Ways to increase natural selection?
« Reply #29 on: November 29, 2014, 02:55:30 PM »
Expect full implementation of architecture soon.