Author Topic: How to avoid cannibotism?  (Read 5496 times)

Offline Ispettore

  • Bot Neophyte
  • *
  • Posts: 32
    • View Profile
How to avoid cannibotism?
« on: November 18, 2007, 08:40:06 AM »
Is there any way for you to avoid cannibotism in long-term evo sims? I mean, there should be a way (settings, different amount of predators, I don't know) to avoid the fact that cannibots are advantaged, because conspecs can't answer their fire. Is there for you to make evolution improve collaboration (or at least not killing) between conspecs?

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
How to avoid cannibotism?
« Reply #1 on: November 18, 2007, 12:33:05 PM »
We should seperate out two types of cannabalism:

1) A mutation impacts species recognition such that I attack anything and everything including my own descendants.
2) A mutation impacts species recognition such that I attack anything not possessing the same species recognition DNA I have.

In therory, type 1 should not provide an advantage in the long run.  An individual gains near term advantage for a generation or two due to the abundance of easy prey, but its does not favor longer term reproductive success for the cannabalistic DNA since it attacks it's offspring or others related to it (via direct descent).  Type 2 should provide a long term advantage for the new DNA in asexually reproducing species and one might expect a new non-cannabalistic equalibrium to establish itself once all the others are wiped out.

But this whole argument is based on the presuption that the attacks by cannabots are not repulsed, that somehow the non-canablaistic members still think of the cannibal as one of their species despite it's rouge behaviour.   Real species recognition is not black or white.  It's complex, based on many clues including behaviour and members of the same species will often turn on and kill a rouge in their midst if it displays anti-social behaivour even when the rouge shares the same DNA.  Genes protect themselves.  Species form as a side effect of gene self preservation.

Unfortunatly to date our bots, evolved or not, are too simplisitc in their species recogntion to base it on behaviour.  In this light, cannabalism can be seen as an advantage selection will and should favor.  I.e. DNA so dumb as to not defend itself when attacked (even by one nearly identical to itself) is selected against.  Type 2 cannabalism at least defends itself via a good offsense against everything.   So, attacking everything can be seen as a first primitive step towards evolving true species recognition since the first step has to be for the DNA to defend itself and artifical (I.e. hand authorred) species recognition does not do that against cannabots.   Thus it is little wonder that cannibots are selected for in our simplisitc sims.  Nature doesn;t do thinng the way we do.  This is why I claim that evolving from starter bots with hand coded DNA is a dead end.   Hand coded bots are unreachable peaks in the fitness landscape.  Easy to fall from.  Necessary to fall from so that a real trail up the side of mount improbable can be climbed by evolution.
Many beers....

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
How to avoid cannibotism?
« Reply #2 on: November 18, 2007, 01:16:33 PM »
Quote
1) A mutation impacts species recognition such that I attack anything and everything including my own descendants.
2) A mutation impacts species recognition such that I attack anything not possessing the same species recognition DNA I have.
I would like to say that one certainly is canibalism. Two is like I see it a declaration of independence of one bot from the rest, aka I am the first of a whole new specie. As it wouldn't attack it's own young bot only the rest.

As by some handbuilded bots there are some defences against such cannibalism.
Such as shooting a virus at the cani bot to chance his id.
A small timeout after the birth. In the timeout there is no shooting.
There are different possibilities, different combinations.

In my bot I have set up different ID-systems, just with a small mutation in one id the bot will still be seen as desame specie. At the other end it is pretty strict on putting venom, poison or just shooting on everyone that attacks it, in couterattack genes there has no conspec-rec been set. Means if you punch it it will puch back without even looking at you.

I have to say, my way doesn't work perfect, in IM I have received bots back of multiply that just attacked everything. I've got to say that the dna has extremely changed. Nothing was desame.

You can look around on the forum and find some ideas for countering cannis, if you find a good working one (or anybody) I am pleased to know.


Could be interesting to see a bot build up a own id-system in any sim. Could be something interesting, instead of begining with normal bots, begin with simple canni-bots and see if there could evolve a id system. I doubt if that will happen. But it could be nice.
Oh my god, who the hell cares.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
How to avoid cannibotism?
« Reply #3 on: November 18, 2007, 01:25:37 PM »
The best way to counteract cannibots is to make your bots defend themselves.  However, this can quickly lead to anarchy if you use shots, since shots might stray from the intended target.

Another method is to design cannibalism into the bots from the start.  I have a bot I like to run that tries to kill everything, including its own young.  Young learn to escape from parents and bulk up on veggies until they're strong enough to survive.

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
How to avoid cannibotism?
« Reply #4 on: November 18, 2007, 01:59:45 PM »
I had a huge post all typed out, but the forum ate it. Damn.

Yeah, first way is to design smarter conspec-recognition systems, recipriocity, offspring-checking, defence, poison canni-'marking' etc. into the bots.

The problem is that at an individual-selevtion, level, cannibiotism really is better than playing nice. Cannis can feed with impunity on their meek, unconditionally-cooperating kin, and this represents a huge individual advantage for a bot.

From an evolutionary standpoint, there are two solutions to this:

(1) Raising the priority of gene-level selection. Cannis, the selfish individualists they are, are poor at passing on their genes due to their disdvantageous habit of eating their offspring. By (for example) using a massive ramping age cost that prevents bots from living indefinitely, there is a selection pressure to pass your genes forward and safeguard your offspring rather than eating them. This mechanism has been proposed as a way that cooperation could have evolved in real life (advocated by Richard Dawkins), and is especially relevant when it comes to eusocial reproductive systems and kin-selection etc.

(2) Group-level selection. This mechanism has also been proposed to explain altruism and cooperation in the real world (Gould, I think (?) was a fan of this view). If you've got a situation where individuals must cooperate against an external threat, cooperation is favoured or the whole group goes bust. Pack-bots, territory-forming bots, antbots etc. where there are a plurality of groups in competition for limited resources favours the evolution of cooperation (and complex cooperation strategies). There has got to be a situation where bots' survival depends on others in its group. A load of individuals with a set of conspec-recognition codes wouldn't cut it.

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
How to avoid cannibotism?
« Reply #5 on: November 18, 2007, 02:28:59 PM »
Quote
The problem is that at an individual-selevtion, level, cannibiotism really is better than playing nice. Cannis can feed with impunity on their meek, unconditionally-cooperating kin, and this represents a huge individual advantage for a bot.
And, yes the problem. Cannis are born, destroy everything around them, with a bulk of energie they reproduce often, often enough to repro some other cannis, and the beginning.

That said, the simplest solution is ofcource self-defence.

That would mean a simple bot only needs,

1 )A way to see veggies, and eat them.

2 )A way to defend themself if atacked.

With no own id, a bot would attack those who can't defend themself(veggies)
With no own id, a bot would attack those who attack him. Take care this doesn't endin complete anargy like numsgil said. With every misshot another bot mixing in the fight.

Maybe this is a way against cannis.
Oh my god, who the hell cares.

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
How to avoid cannibotism?
« Reply #6 on: November 18, 2007, 02:43:56 PM »
I wish to mearly point out (again) that this discussion is about evo-sims and state my strong opinion that solutions of the form "just code your bot this way" are missing the point.  Besides, the way we are using the term 'species' is broken since we are discussing asexual reproduction.  When you code so-called species recognition into a bot, you are in effect coding in altificial altruism, a handicap which will not last long in an asexually reproducing evo sim.  It will be selected against.

Any hand-coded species recognition DNA we might concoct is artifical and fragile in the face of mutations, and will and should break down so that evolution can proceed.  I predict any real notion of species that might evolve out of our evo sims will be very different from how we use that term today.  For one thing it may necessitate symbiosis evolve first.
Many beers....

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
How to avoid cannibotism?
« Reply #7 on: November 18, 2007, 03:13:24 PM »
Quote from: EricL
I wish to mearly point out (again) that this discussion is about evo-sims and state my strong opinion that solutions of the form "just code your bot this way" are missing the point.  Besides, the way we are using the term 'species' is broken since we are discussing asexual reproduction.  When you code so-called species recognition into a bot, you are in effect coding in altificial altruism, a handicap which will not last long in an asexually reproducing evo sim.  It will be selected against.
Again, (did you really)oh well sorry.  , I gues you're meaning me.  



Well yes, not it aren't species in the way like animals. But, bacteria and such are divided in species too. As the DNA is practically desame. Well mostly desame.
And of altificial altruism,(difficult words) it is artificial, that's true. But in all cases altruism, I gues you're right in most possibilities. But in possibilities with a sim with a selfdefending bot, attacks whoever attacks him. It isn't a altruism.

Quote from: EricL
Any hand-coded species recognition DNA we might concoct is artifical and fragile in the face of mutations, and will and should break down so that evolution can proceed.  I predict any real notion of species that might evolve out of our evo sims will be very different from how we use that term today.  For one thing it may necessitate symbiosis evolve first.

I see your point now.
We are mostly programing bots to wipe others out and keeping one specie.

Evolution goes like everyone for itself, what is the easiest way to get energie, who can I destroy with minimal risk to get better myself.(I this case everyone is another specie)

Well, am I right, say if I am not.

Okay now to see a sim, where species have evolved becouse of symbiotis. Is there a way to make that happen.  , I am thinking is there some way.
Oh my god, who the hell cares.

Offline Ispettore

  • Bot Neophyte
  • *
  • Posts: 32
    • View Profile
How to avoid cannibotism?
« Reply #8 on: November 19, 2007, 09:57:54 AM »
well guys I'm happy for your answers! I'm not an expert of the program nor of evolution, but I agree that hard coding robots is not the best way. I think we must find an environment where cooperation is better than anarchy...
« Last Edit: November 19, 2007, 10:18:46 AM by Ispettore »

Offline Peksa

  • Bot Destroyer
  • ***
  • Posts: 118
    • View Profile
How to avoid cannibotism?
« Reply #9 on: November 22, 2007, 05:28:40 PM »
In my longest running evosim (7M cycles) my bots haven't still evolved cannibalism, or the cannibals have died off every time. The bots use *.refeye *.myeye != check. Well, kinda.

They move fast and shoot from quite far away - even their own species - but when they get close to other than their species, ie. veggies, they slow down to target's speed and shoot more accurate. This way the move around the large field when they see any bots, but feed carefully only of other species.

By the way, I'd be interested if any of you could find out how it reproduces.

Code: [Select]

cond
 *576 !=
 !=
 ~ *498 *.eye2dir 0 and
 not
 <
 !=
 -489 !=
 | not
 0 *677 and
 ~=
 ~ .aimleft dec
 and
 .up dec
 0 and
 & *.eyef store
 *.tmemloc else
 stop

''''''''''''''''''''''''Gene  1: Last 'stop' at position  34''''''''''''''''''''''',

 stop

''''''''''''''''''''''''Gene  1: Last 'stop' at position  35''''''''''''''''''''''',

 >> 1 -4 *555 <
 not
 -4 or
 start
 store
 ~ 0 dec
 stop

''''''''''''''''''''''''Gene  1: Last 'stop' at position  49''''''''''''''''''''''',

 angle *.tmemloc *.eye1 0 add dec
 store
 cond
 *426 dist ceil *.eye3 0 mod !=
 0 add ~ inc
 6 not
 and
 16 else
 >=
 0 inc
 *.trefaimsx div start
 or
 dec
 *.dn 336 sub .aimright store
 ^ <
 else
 pyth <
 *.eye9 mult -129 start
 *919 -31 !~=
 dec
 ~ *.eye9 *.eye1 start
 stop

''''''''''''''''''''''''Gene  2: Last 'stop' at position  104''''''''''''''''''''''',

 *-388 *.eye8 add stop
 *.eye2 ~ !=
 ~=
 pow %=
 abs *-117 pow !~=
 *.eye7 start
 *.eye7 *.eye3 <
 sub

'The main gene

cond
 or
'The bot evolved with circling bots, hence eye4, not 5
 *.eye4 !=
 pow cond
 1 and
 start
 add 35 *.eye3 *.eye7 sub 453 sgn div .sx store
 rnd 30 .up store
 *.refveldx .dx store
 start
 *20 522 and
 *754 ^ sub ^ << !%=
 1 start
 .shoot dec
 37

'the second clearly meaningful gene

cond
 *.up dec
 7 *.eye5 47 >
 *.refeye *.myeye !=
 *50 ceil 0 =
 add start
 *.refvelup .up store
 10 .shootval inc
 start
 store
 floor inc
 *.nrg not
 =
 114 *.aimright pyth and
 floor *.body cond
 store
 <
 3284 start
 store
 xor
 pow sub dup 41 300 >
 store
 else

Offline fulizer

  • Bot Destroyer
  • ***
  • Posts: 198
    • View Profile
How to avoid cannibotism?
« Reply #10 on: November 24, 2007, 04:39:35 AM »
my way to do this is to steal the gene then modify it to fit your needs
"If this is coffee bring me tea, If this is tea, bring me coffee"

Offline Ispettore

  • Bot Neophyte
  • *
  • Posts: 32
    • View Profile
How to avoid cannibotism?
« Reply #11 on: November 26, 2007, 09:44:30 AM »
I'm now running a 5m evosim (starting with a. minimalis and alga runaways), and in this sim bots seems to can canni each other, but they almost never do it: bots are too small and shots cost too much (22)!!! It is really better to shoot big fat veggies... btw, this is a pond simulation with very high costs, I'll post it: