Author Topic: Canni sim  (Read 5139 times)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Canni sim
« on: June 02, 2005, 08:14:16 AM »
I've been running my own canni bot (Enitor Comesum) in an evolution sim to see if it degrades itself worse than it is.  I set it at the largest sim size because it's just really inefficient otherwise, and I wanted to make it hard to find food.

Currently I'm getting about 50 cycles/sec with 100 vegs and 100 bots.  I'm averaging 1 mutation every 30 generations for the bots, and 1 mutation every 140 generations for my plants.  Plants are at 5K mutation rates all around and Comesum is at 10K all around.

What is a good rate for generations/mutation?  Too high and it just slows things down obviously.  Too low and it will actively kill of the bots.  This is mostly for shvarz I suppose.

First things the plants do in the last 5 or 6 simulations I've run is get rid of limitations on reproduction.  That is, they turn cancerous.  This makes sense when you're getting 5 energy/cycle per bot, and there's an artificial limit of 100 bots at a time.  Definately evolution at work on that one.

The second major change in veggies occured just recently.  14 5 rnd store evolved, which makes the veggy behave in a drunken stupor, which confused the heck out of the cannis.  Their population dropped to 50 in only a few hundred cycles.

At any one time in my sim, only about 5% of bots have any alive children.  This isn't because they're eating their children so much as only the bots near food have any energy to spare for reproduction, and further out the bots have to eat each other to survive.

Also, about 10% of bots at any time can trace their ancestory to a living bot.  So I think there's evidence of strong selective pressure (am I right?).  Very little branching of the genome is possible.

All mutations thus far for the bots have been neutral.  Out of 10 mutations in a genome of 162, none have negatively effected any part of the genome.  Which would seem to imply that all the genes are functioning in such a way as to maximize the individual fitness of the bots.
« Last Edit: June 02, 2005, 08:34:33 AM by Numsgil »

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Canni sim
« Reply #1 on: June 02, 2005, 11:05:37 AM »
The cool thing about your sim is that you let the veggies evolve.  I've never tried that - figured they are at too big of an advantage to let them aquire new features.  I wonder if they learn to run at some point?
As for mutation rates - go for mutants appearing once in 5-10 off-springs. What I usually see is "average mutations" graph taking off almost imidiately and doing erratic ups and downs for a while (neutral mutations).
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Shen

  • Bot Destroyer
  • ***
  • Posts: 111
    • View Profile
Canni sim
« Reply #2 on: June 02, 2005, 02:08:35 PM »
Imo running cannibots in evo sims is much more interesting than running an advanced well written bot. I dont see why bots would have conspec genes IRL, having a child avoidance gene is much more 'real'. Your distraction gene is a good example, has that devolved at all?

Personally I use *.numties 0 = to deactivate condidtions when bots have just reproduced and I've NEVER had a successful bot get rid of them. In fact my current Sim is going on for 5000 generations at 10K mutation rate and the child avoidance condition is just about the only unmutated part of its genome.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Canni sim
« Reply #3 on: June 02, 2005, 02:23:24 PM »
As I already mentioned I've seen bots develope cannibalism and then loose it in a single sim.  It's just another phenotype for selection, nothing special about it.

In real life animals oftne eat their children, especially mice, because they have a lot of pups and very often.  If conditions are bad, mother will eat pups to survive till next reproduction cycle.  Also, any half-dead mutant gets eaten very quickly as well.  And it makes perfect sense if you think about it.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Shen

  • Bot Destroyer
  • ***
  • Posts: 111
    • View Profile
Canni sim
« Reply #4 on: June 02, 2005, 04:03:27 PM »
What I'm trying to say is that using a arbitrary value such as number of eyes or aimdx commands is just as bad as say.. me being attacked by people in the street because I have a big nose.

Development of a bots eyes would be restricted if *.refeye is used, not because having more eyes is intrinsically worse but for no other reason than its different from the parents.

True, mutants or runts are eaten by there mothers sometimes but there are many shades of grey that using a essentially meaningless value doesn't reflect.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Canni sim
« Reply #5 on: June 02, 2005, 04:30:04 PM »
The make the parent look the other way gene got a minor changing during mutation.

Here's what I mean:

*.aim -770  628 add  1256 mod .shootval store
 mod .shootval store

originally it was *.aim 628 add 1256 mod .shootval store

now it's, in effect, doing *.aim .setaim store to the other robot.  THat's even better!  The parent is turned entirely the other direction.  (Well, sorta better.  Since the bots turn randomly until they find something, any direction is equally unlikely to see it).

The plants evolution of 14 5 rnd store (or 14 .aimdx rnd store rather) was quite ingenious and absolutely screwed the cannibots.  It's a simple mutation.  All it did was insert a rnd.  The effects, though, just about kill off the cannibots.

Here's a save of right after the new plants appear.  All that seems to happen is the cannis slowly die off.  The new plants have gone from being easy prey to being about 8 times harder to catch than each other.

Offline Shen

  • Bot Destroyer
  • ***
  • Posts: 111
    • View Profile
Canni sim
« Reply #6 on: June 02, 2005, 04:46:13 PM »
Your mutant vegs is another example of the greatness of cannis heh. The veggies moved the goalposts on evolution.

For example my pred/prey cycle is fairly well tweaked. My bots have only basic navigation genes they cant accurately move at high speeds, especially in KE mode. This means that slower bots have the advantage during Veggie Highs as they can catch, eat and reproduce more. However once the cycle turns down there are several hundred bots and only a few dozen veggies a faster bot has the advantage.

After 10million cycles they have reached an equalibrium with their enviroment. Successful bots can reproduce quickly on veg highs and survive the cannibalism after the food has run out.

I might try mutant veggies now, Im using a modified Alga_Ansty which should do something cool. :D

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Canni sim
« Reply #7 on: June 02, 2005, 04:53:31 PM »
Glad to hear my veggies are useful.

An interesting note:  Alga Antsy will first evolve to be cancerous, then, the second gene will change.  One time it changed so that it reproduced at low energies, and ran in a straight line at high energy.  Sometimes it just breaks all together if the bots pick them off too fast for them to get that much energy.

How did you modify it?

I had to change the veggy pop limit to 300 in the sim I gave everyone.  That still only barely makes the bots more successful.  It'll be interesting to see if the bots can compensate later down the road.

If they can, then that'd be pretty cool.  A clear example of escalation, ie: biological game theory.

Offline Shen

  • Bot Destroyer
  • ***
  • Posts: 111
    • View Profile
Canni sim
« Reply #8 on: June 02, 2005, 05:16:03 PM »
Its pretty heavily modified really, I just took the idea of spreading the veggies out and ran with it. I merged the two genes. I also added an element of randomness to the repro nrg to stop the spikes you get when veggies repop.

cond
  *.nrg 6000 >
start
  25 50 rnd add .repro store
  500 rnd .aimdx store
  30 .up store
stop


Im trying to think of a way to stop them turning cancerous though as it would screw up the population cycles with veggies always being at max, or maybe I need to tweak the max

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Canni sim
« Reply #9 on: June 02, 2005, 05:18:43 PM »
I've seen the same thing with tons of veggies. Seems like it's a general species convergent evolution based on the sim settings. My guess is that the veggies are behaving like prey animals and so do better when they can escape being eaten. I think the repop might be helping them out also since the last survivor(s?) "should" become the next parent species(imagine having some 10 children at once :) ).

Not absolutly sure how repop works when there are different veggie bots, some help from the programers here would be useful. I was thinking the code selects for nrg or last living bot.

On this note could we get some sort of animal repop setting? I think this would help out alot in keeping population size up and not having the mass extinction events we get on ocasion.


Endy B)
« Last Edit: June 02, 2005, 05:19:37 PM by Endy »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Canni sim
« Reply #10 on: June 02, 2005, 05:19:48 PM »
A fix for cancerism is to have the veggies get X nrg/cycle PER kilobody.  Then a veggy reproducing won't be getting twice as much energy.  In the current system veggies are just 1000% more fit if they're cancerous.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Canni sim
« Reply #11 on: June 02, 2005, 05:46:15 PM »
As far as I know repop reloads the original veggy strain.  I'd have to check to be sure.  I'm working on adding all kinds of controls for veggys.  Should be pretty cool when I'm done.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Canni sim
« Reply #12 on: June 02, 2005, 06:44:54 PM »
Quote
As far as I know repop reloads the original veggy strain.

yes it does
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D