Author Topic: Repopulating/Refreshing non-Veggies  (Read 4829 times)

Offline Zinc Avenger

  • Bot Builder
  • **
  • Posts: 56
    • View Profile
Repopulating/Refreshing non-Veggies
« on: September 12, 2006, 06:12:49 AM »
It seems to be a fairly common theme on this board that evolution sims end up with fit bots evolving away from fitness. I believe this to be at least partly because all the bots are mutating simultaneously - eventually mutations will tend to crunch genes so that the bots are not competitive against the original "pure" genome, but mutations will also ensure that there are no "pure" bots left to compete against, so the standard of competition is reduced.

One way I've found to at least temporarily stave off this tendency is to reintroduce small populations of "pure" unmutated bots from time to time using the Bot Add tool. This ensures that the evolved descendants are forced to be competitive against the original genome, leading to a (slow) general trend towards improvement - a bot which is less competitive than its ancestors will be at a disadvantage.

Unfortunately this can't work for sims I leave running while I am out at work!

Would it be possible to introduce a mechanism to do this automatically? Along the lines of having options to reintroduce a customisable quantity of original-genome bots at a customisable interval?
« Last Edit: September 12, 2006, 06:13:23 AM by Zinc Avenger »

Offline Henk

  • Bot Destroyer
  • ***
  • Posts: 110
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #1 on: September 12, 2006, 06:51:59 AM »
This, I reckon, will be one of the features of the enchanced script system (ie 'if amount of cycles isX, insert N bots of species Y'), along the lines of this topic. I don't know when it will be implemented though.
« Last Edit: September 12, 2006, 06:52:17 AM by Henk »
cond
*.DBbugs 0 =
start
.rejoice inc
stop

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #2 on: September 12, 2006, 02:29:33 PM »
Yeah, scripts would do this quite well.  It's just a matter of someone implementing them.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #3 on: September 13, 2006, 12:31:36 AM »
It seems to be a fairly common theme on this board that evolution sims end up with fit bots evolving away from fitness.

Actually, I disagree with this.  In all my evo-sims I always end up with bots that are much better than the original bot.  In fact, since I gradually change the environment, the original bot is usually not even able to survive long enough to reproduce, so adding some pure bots has no effect on simulation at all.

To get these results you need to make sure that your mutation rates are not high enough to produce a mutation in every off-spring.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #4 on: September 13, 2006, 12:56:47 AM »
It would be interesting to study under what settings the evolved bot is less fit, and what settings lead to bots more fit.  I've seen both occur in sims with low mutation rates, so it's not entirely related to mutation rates.

Offline Henk

  • Bot Destroyer
  • ***
  • Posts: 110
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #5 on: September 13, 2006, 06:44:37 AM »
Quote from: Numsgil
It would be interesting to study under what settings the evolved bot is less fit, and what settings lead to bots more fit.  I've seen both occur in sims with low mutation rates, so it's not entirely related to mutation rates.

Then we would need a definition of 'fit'.
cond
*.DBbugs 0 =
start
.rejoice inc
stop

Offline abyaly

  • Bot Destroyer
  • ***
  • Posts: 363
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #6 on: September 13, 2006, 10:08:14 AM »
Quote from: Henk
Then we would need a definition of 'fit'.
An evobot league?
Lancre operated on the feudal system, which was to say, everyone feuded all
the time and handed on the fight to their descendants.
        -- (Terry Pratchett, Carpe Jugulum)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #7 on: September 13, 2006, 02:33:10 PM »
I specifically meant "able to kick the other's butt".

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #8 on: September 13, 2006, 11:56:35 PM »
Testing fitness is easy - drop several original bots into the sim and see how they are doing compared to evolved bots.  If their numbers go up, then there is your answer.

As for Nums point, I think that at the lower mutation rates the only way to loose fitness is to go through a bottleneck.  Because if population is large then rules of selection kick in and fitness can't decrease.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #9 on: September 14, 2006, 02:33:15 AM »
I view it as sort of a succession crisis.  The original bots are better at a stable and running simulation and the mutant varieties are the survivors of a sort of founders effect.

That's my hypothesis anyway.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #10 on: October 21, 2006, 08:34:34 PM »
There is another dimension here.  You are assuming hand coded bots are fitter because they have working genes to fight, find food, etc. that mutated versions don't have but it doesn't matter how good you are at doing something, if you can't survive/reproduce in the real world - a real world that includes random mutations - you are unfit by definition.

Hand coded bots are very very very unfit with respect to their genome's ability to withstand mutations and mutations are a big part of their environement in an evo sim.  Human created software of any kind is incredibly fragile.  One bit gets changed and the thing is a piece of toast.  Of course complex hand coded bots will exhibit loss of macro behavioural functionality when subjected to mutations!  Of course!   All mutations are bad for them!  They are sitting on top of a very very steep, local peak in the fitness landscape, one that in all probablity is not even reachable via evolution because all the slopes are too steep.  There is no path of incremental changes leading from one sucessfull organism to another that would result in that genome.    Their genome did not evolve and hence is not designed to suffer mutations well.  Humans don't code that way.  When you mutate them, they fall off the peak, generally a very very long way.

This is why in my opinion, starting an evo sim with a complex hand-coded bot is little better than starting one with random garage.  You have to come down off the peak onto some path where evolution can work with you and take you somewhere.
Many beers....

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #11 on: October 21, 2006, 11:11:56 PM »
That's an interesting idea, similar to what I was thinking but better fleshed out.

Offline Zinc Avenger

  • Bot Builder
  • **
  • Posts: 56
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #12 on: October 24, 2006, 10:55:20 AM »
Ooh, that's a good description of the problem, it makes sense. That has just brought a little more about fitness, genetics and mutations out of the heading of "accepted as fact" into "understood".

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Repopulating/Refreshing non-Veggies
« Reply #13 on: October 24, 2006, 06:06:50 PM »
AFAIK small populations often result in detrimental mutations.

Inbreeding and all that, the Eve theory of human devolpment suggest that Eve was just below 50 seperate people (if I remember correctly.)

Petri dish experiments often show detrimental results via mutations for example.

Size is everything, whatever she tells you!

I would like a bot 'drip' option to help solve the problems that the size of our experiments cause I have to admit.

The definition of fitness is: the condition of being suitable; "they had to prove their fitness for the position"
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams