Author Topic: Excess nrg -> body, excess body -> death  (Read 7726 times)

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #15 on: December 12, 2006, 05:24:41 AM »
Quote from: EricL
If conspec recognition is all about direct interogation of the genotype, then there will be select pressure in some cases to artifically decorate one's genotype to look like another's.

Maybe if the program is designed so the genotype doesn't have to be an exact match for bots to recognize each other. It could be like the more different they are the less percentage the bot will think it is a conspecies. For instance if 90% of the genes are the same it will be recognized as a conspecies. That should prevent a bot to get killed right away by it's relatives just because it got a single mutation, much like in reality I believe. In reality; the more different the genes the more different the species look. We could just PRETEND the bots think other species LOOK different.  
« Last Edit: December 12, 2006, 05:27:55 AM by Testlund »
The internet is corrupt and controlled by criminally minded people.

Offline Henk

  • Bot Destroyer
  • ***
  • Posts: 110
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #16 on: December 12, 2006, 05:30:53 AM »
Quote from: Testlund
Maybe if the program is designed so the genotype doesn't have to be an exact match for bots to recognize each other. It could be like the more different they are the less percentage the bot will think it is a conspecies. For instance if 90% of the genes are the same it will be recognized as a conspecies. That should prevent a bot to get killed right away by it's relatives just because it got a single mutation, much like in reality I believe. In reality; the more different the genes the more different the species look. We could just PRETEND the bots think other species LOOK different.  

This is already possible, consider this gene for example:

cond
(some conditions)
*.refeye *.myeye ~=
start
(some actions)
stop

Correct me if I'm wrong on the operator, can't remember exactly but there is an "is almost equal to[/I[ operator.
« Last Edit: December 12, 2006, 05:31:32 AM by Henk »
cond
*.DBbugs 0 =
start
.rejoice inc
stop

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #17 on: December 12, 2006, 04:22:20 PM »
I can never get the "almost equal" operator to work like I want when I'm actually coding.  What I would do is:

cond
(some conditions)
*.refeye *.myeye sub abs 3 <=
start
(some actions)
stop

Offline Testlund

  • Bot God
  • *****
  • Posts: 1574
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #18 on: December 12, 2006, 05:09:07 PM »
Then, theoretically, bots should be able to evolve using that function, though it might take forever.
The internet is corrupt and controlled by criminally minded people.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #19 on: December 13, 2006, 12:24:44 AM »
Presuming that the selective pressures encourage that sort of "friend" recognition.  I'm not at all convinced that it does, because the way the environment is set up it's very much "every bot for itself".

Maybe if we had a large, networked environment than this would evolve to prevent the slow intrusion of rival groups from rival network nodes.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #20 on: December 13, 2006, 07:45:47 PM »
Quote
Take mimicry.  If conspec recognition is all about direct interogation of the genotype, then there will be select pressure in some cases to artifically decorate one's genotype to look like another's.   The genotype becomes the morph.

I've seen some of this in my own sims with co-evolving plants. They have a disturbing tendency to simply keep adding "eyes" until they hit on the right number.

Lately I've been using in/out and .memloc/memval to achieve something closer to a phenotype recognition. With enough arbitrary reference points it should be virtually impossible for another species to mimic easily.
(Which raises the question of just how arbitrary our own reference points are  )

Haven't had any of the above problems using this and the bots are given a freer reign to mess around with their dna.

You could also use something like:
Code: [Select]
cond
*.out1 32000 !=
start
.out1 inc
stop

cond
*.refage *.in1 =
start
do some actions
stop

This used with regualar methods would expose any bot trying to simply copy another, because it'd expose itself in the process.

Sims with apparent conspecs should eventually resolve themselves. Typically one of the bots will have some slight hunting advantage over the other, and win the match over time.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #21 on: December 17, 2006, 03:51:13 AM »
Ran an experiment involving a species that was at least temporarily altruistic towards it's family. Whenever 32000 rnd equals 1 however they randomly change their out1 value. This seemed to happen on a fairly regular basis, presumably about every 16000 cycles. During the transition points the population droped rapidly until a new number dominated.

At first a completly(no kin recognition) canni species evolved from them. Next in response to the canni's attacks and inter-family fighting a completly altruistic species evolved.   They eventually won out. From the completly altruistic species a chamelon canni species evolved. The altruists were eliminated. Eventually the wasteful canni methods caused the population to wipe itself out.  

Haven't quite figured how to take the findings, Seems like a species needs to somehow maintain a level of altruism and infighting to avoid excessive cheaters.

I'm going to take a look at what effect seperating the shooting conspec check from the hunting ones has. From what I've seen the bots typically only break the shooting conditions, they don't often break the avoidance conditions.

I've also been working on a next of kin recognition system. (Parent, Self, Children) The complexity of moving the recognition numbers around is pretty hard though. I might just have them only recognize their own children, until the children themselves reproduce.This would be relativly easy, but leave them vulnerable to attacks from siblings and their own parents.
« Last Edit: December 17, 2006, 03:56:01 AM by Endy »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #22 on: December 17, 2006, 04:33:17 AM »
Quote from: Endy
Ran an experiment involving a species that was at least temporarily altruistic towards it's family. Whenever 32000 rnd equals 1 however they randomly change their out1 value. This seemed to happen on a fairly regular basis, presumably about every 16000 cycles. During the transition points the population droped rapidly until a new number dominated.

Neat.  Can we see the bot?  I'm interested in how you set it up.

Quote
At first a completly(no kin recognition) canni species evolved from them. Next in response to the canni's attacks and inter-family fighting a completly altruistic species evolved.   They eventually won out.

This I don't understand.  Were they altruistic towards all other bots?  Did the altruism take the form of ignoring other bots?  Did this altruistic species evolve from the cannis or did it come from the original?

Quote
From the completly altruistic species a chamelon canni species evolved. The altruists were eliminated. Eventually the wasteful canni methods caused the population to wipe itself out.

This is fundamentally interesting to me.  Situations where evolution eventually causes the extinction of all life seems deliciously ironic.  This is also fairly constant with experience I've had with enitor comesum, which is specifically designed to eat each other.  The only stable population sizes are in the 20 - 30 individual range on the largest sim size.  I think cannibalism wouldn't lead to eventual extinction if we had the opportunity to use significantly larger geographic sizes.  Part of the problem is that new mutations get well mixed into the general population, so there's no failsafe to prevent blind short sighted adaptations from totally destroying a population.

All in all, your results remind me of an iterative game arriving at a Nash Equilibrium.  In this case the equilibrium being an unmaintainable strategy.

Quote
I've also been working on a next of kin recognition system. (Parent, Self, Children) The complexity of moving the recognition numbers around is pretty hard though. I might just have them only recognize their own children, until the children themselves reproduce.This would be relativly easy, but leave them vulnerable to attacks from siblings and their own parents.

I had an idea a long time ago of a species that stores a random number into out1 at birth, and copies the in1 to its out2 at birth.  If either the in1 or in2 of the other bot matches the current bot's out1 or out2, it wouldn't attack it.  So basically out1 is a unique ID and out2 is the ID of the parent.  Basically, this would result in bots not attacking parents, children, siblings, and some other close siblings.  If you combined this with a very large sim size and zero momentum mode, or high friction, so that geographically distinct areas with distinct family lines developed, I think you would be able to create lines of stable altruists.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #23 on: December 17, 2006, 06:45:33 AM »
Impressive,

I would also like to see how you set the bot up to do this.
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

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #24 on: December 17, 2006, 08:57:26 PM »
Err... It's no problem re-writing it. I've been peering at this bot's and it's evolved brethren dna for a whole day. The problem is it still won't work, it uses epigenetic locations I've added to my version. (550-554 coppied instantly at birth). Mainly this was to get around the time requirements of the other epigenetic locations and the difficulty of using tie number to accuratly communicate the value.
Quote
This I don't understand. Were they altruistic towards all other bots? Did the altruism take the form of ignoring other bots? Did this altruistic species evolve from the cannis or did it come from the original?

The altruistic species evolved from the original stock, and were tragically altruistic to all other bots.

Quote
Part of the problem is that new mutations get well mixed into the general population, so there's no failsafe to prevent blind short sighted adaptations from totally destroying a population.

Which is why they fight amongst themselves   Multiple times duiring the revolution periods where most of the bots are largely canni's, a new King bot would emerge decended mainly from original stock. After the revolutions produce an obviously more fit bot I'd go in and figure out what made it so much better, or in the case of pure canni's worse.

The most benneficial change, was probably simply duplicating the avoidance and attacking genes. The first two test refage equality to in2, while the last two use in/out epeigenetic recognition.

Code: [Select]
'Revolutionary Bot
cond
start
' Standard epigenetic starter
31999 rnd 1 add 550 store
.delgene inc
stop

cond
start
.out1 inc
32000 rnd
stop

cond
1 =
start
' 1/32001 chance that 550 will randomly change to something else,
' once that happens population begins a downward slide until the population stabilizes at a new number.
31999 rnd 1 add 550 store
stop

cond
*.robage 0 =
start
*550 .out1 store
stop

cond
*.eye5 45 >
*.out1 *.in1 !=
start
.shoot dec
stop

cond
*.nrg 5000 >
start
50 .repro store
*.nrg 5000 sub .strbody store
stop
' Avoid / Attack
cond
*.eye5 45 <
*.eye5 0 >
15 *.vel >
*.in2 *.refage !=
start
15 *.vel sub 2 div .up store
stop

' and this gene sets aim to well... aim. It was an avoidance gene, but along the way evolution had it's vote
' woks better than the original gene so it's been left this way
cond
*.eye5 0 >
*.refage *.in2 >
start
314 inc
*.aim add .setaim store
stop

cond
*.eye5 45 <
*.eye5 0 >
*.maxvel *.vel >
*.in1 *.out1 !=
start
*.maxvel *.vel sub 2 div .up store
stop

cond
*.eye5 0 >
*.in1 *.out1 =
start
314 rnd *.aim add .setaim store
stop

cond
*.eye5 0 =
start
314 rnd *.aim add .setaim store
stop
end
« Last Edit: December 17, 2006, 09:00:53 PM by Endy »

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #25 on: December 18, 2006, 08:29:25 PM »
Still can't use my computer, crazy little things been going over 19 hours straight.  

They're continual firing cannibots, but they still attempt to avoid family. They also seem to still have the posibility of randomly changing 550. Although the odds are stacked largely against it. 1/31549 x 1/32000.

It's almost like there's a kind of inertia to evolution, once the bots were evolved enough to prevent die offs they kept going.

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #26 on: December 18, 2006, 09:15:29 PM »
Can I add that to the bestiary as a working bot? Or is that a bot that also needs one of those epigenetic starter kits?  

Are you saying that they are all cannibots with family avoidance? Sweet little technique, particuarly as a stable(ish) evolved trait if it is. Makes me wonder about that haystack games theory (I did read your link Nums'  ) and how a change like that to the aggressive mice would affect the final result.

Very nice work btw, your title should be; Knight of Evolution!
« Last Edit: December 18, 2006, 09:28:37 PM by Jez »
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

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Excess nrg -> body, excess body -> death
« Reply #27 on: December 18, 2006, 10:56:19 PM »
I'm happy