Author Topic: darwinbots evolution  (Read 6195 times)

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
darwinbots evolution
« on: November 06, 2008, 07:03:14 PM »
well I made some bots several in fact and let them run trough the program.
Bots changed a lot by dna copy errors, and still kept reproducing eating eachother etc.
Basicly that seams to be it, wel as far as I see it, its fun dough you get to wonder is more going on or could more be going on?.
I designed a one gene Bot, called thermite 1G; even if I would understand genetic reproduction trough darwin bots.
There isn't much to evolve if you had only one gene..

Darwinbots evolution or evolution in general might not have a goal or purpose, just some lucky winners.
And even the lucky reproducing winners in general might not be the ultimate best winners.
Even the human race doenst endup like einsteins or pamela andersons, or bruce lee's or atists like Bjork.
They are just a few of the huge group of a species. Dough the group as a whole adapts pretty well against nature or culture.
We somehow survive wars floods epidemics, and we redisign our environments to live (most of the dutch live below sea level)
We even behave like swarms who's knowledge is expanding as a groupd, dough not as a individual. So teams outsmart individuals.

Comparing darwin bots to to other games and AI software I began to wonder.
Some software uses genetic algorythms to improve for example airplane wing designs.
Basicly such software uses trial and error reproducing to create the best sysvars describing a wing.
Using the environment paramaters of air and a certain required lifting force and somthing that can describe shape.
In other games you can grow yourself a bigger representations of your gunship by buying items etc. etc.
And in nature we see creatures creating wings.

So then I wondered, besides de copy errors in DNA, what environment does DarwinBots try to survive?
Well ofcourse that is other bots and a happy meal called algey.
But there isnt much else to adapt too, so as a result the copy errors are the main driving force, in this evolution here.
Altough you can disable that, but somehow you hope you get some kind of Bjork Einstein Bot or whatever...
Sadly however I never seam to be able to find the DarwinBot Bjorks.
Once in a while I see some powerfull big berta's stand out.
But they dont become a new species who outsmart the others.
Rather copy errors make them disapear or a more simple creatures each their food away.
I dont see big bertha's with nicer code, or better algorythms as far as I can judge.

Like a game of Spore or Creatures, there is not much learning improving going on about the outside world.
It seams to be more a battle of programs (and a verry intresting one, dont get me wrong about that).
But there is not much adapting against an outside world.
There is not much teaming to battle the outside world, like making a dyke's against flooding.
Or a group of dolphins who got an swarming idea and learned a way to catch fich together, and learned an optimal way of how to do that.
Lets call that behaviours, perhaps verry andvanced blocks of genes with predefined behaviours;

What I wonder is, might a more  complexer environment for DarwinBots. Result in bots, who somehow might better learn from their environment .
Might the world be to simple, in DarwinBots for its Bots?. I'm not thinking or have at the moment ideas to make it more complex, its just a tought.
Simple organisms can swarm easily never dye neither do they improve there is just a x percent who keeps a live each cycle, and Y new ones get born and Z dye.
What if there was some kind of external force or so they would have to tackle, or make advancement off to evolve.
Neither I'm that deep into programing, but I wonder would bots improve more/better if the landscape where more complex ?
If there where more external factors of some kind in the environment the bot's had to deal with.


?

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
darwinbots evolution
« Reply #1 on: November 07, 2008, 01:17:12 AM »
The problem is that the DNA of darwin bots is crippling for intelligent the way it is at the moment; AFAIK, nobody has made a super-intelligent bot yet, and if we can't hand-author a bot that good (come on, etch and fruitflies), what makes you think evolution can? Besides, the fact that it is simulating single-celled organsims, with ties that are incredibly inefficient at communicating, brought on by the necessity of not overpowering ties as a kill weapon, are the best way to make a competent intelligent species, although ironically not being capable of significant intelligence at all.
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
darwinbots evolution
« Reply #2 on: November 07, 2008, 03:06:17 AM »
I takes time a lot of time to evolve a extremely smart bot from a zerobot if able at all.

I gues it is hard to evolve a man-made bot. Often evolution in DB breaks everything down that isn't needed right away. Then the real evolution begins an the bots never get back to the level of the original fighterbot. Having lost everything that was usefull in a fight.
Oh my god, who the hell cares.

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
darwinbots evolution
« Reply #3 on: November 07, 2008, 04:18:06 AM »
You are right that Darwinbots although named otherwise is not really great on the aspect of evolution.
That has several reasons:

I think the basic thought was to create selection pressure mainly trough competition with other bots, but this means that bots mainly evolve to defend and attack better and more efficiently or to stop fighting there is not much outside of that to enforce selection pressure if you do not choose really special environmentally conditions.

Although over time option after option was added, this only increases the size of the solutionspace making it harder for evolution to work as the bots have to find predefined syntaxes, prethought solutions and thats pretty hard , as was said darwinbots Dna is nolt reall designed for easy evolution.
But more so, when a clever designer can come up with the possibilities that can be used, although he might have problems implementing them(having mostly the same problems as bots with finding the exact syntax, correct solutions) how do we expect a bot to surprise us in finding something new?

Complex behavior is difficult and well complex, that makes its hard to develop, to maintain and optimize in most cass it just to costly in terms of efficiency and performance to have a chance to compete.

The current mutation structure is just dumb, I mean sometimes you need to have almost the exact gene for all 9 eyes and so you write 9 genes or line of code then you need 9 mutations to do that.(If you had some dna command  that started a loop that repeats 9 times  changing a certain dna cxommand with 0 add, 1 add 2 add etc this could be done in a way one mutation would be enough), sometimes mutation would need to mainly mutate numbers or leave certain parts of the code rather unharmed while mutating others more but currently mutation works totally random.

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
darwinbots evolution
« Reply #4 on: November 07, 2008, 10:31:08 AM »
I have to disagree, DB is one of the better Alife simulators out there. That being said, I'm not saying it's the best it could be either since its nearly impossible to interpret the results. I would like to see a window with just the locations w/sysvar names, stored to that cycle and the values stored. Think that would go a long ways to helping us understand what's going on internally.

Most of the evolved dna may not make sense from a human point of view, but is elegant once its understood. The bots making better use of the !~= condition than we can is a good example, its both less susceptible to mutations and more gradual than the other conditions.

I've seen zerobots evolve fairly advanced stuff. I think their main problem is that they just don't have as good of a starting point in terms of novel dna. It takes a considerable amount of time just to get something like *.eye5 and even longer for them to find a use for it.

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
darwinbots evolution
« Reply #5 on: November 07, 2008, 11:21:50 AM »
Quote from: Welwordion
You are right that Darwinbots although named otherwise is not really great on the aspect of evolution.
That has several reasons:

I think the basic thought was to create selection pressure mainly trough competition with other bots, but this means that bots mainly evolve to defend and attack better and more efficiently or to stop fighting there is not much outside of that to enforce selection pressure if you do not choose really special environmentally conditions.

Although over time option after option was added, this only increases the size of the solutionspace making it harder for evolution to work as the bots have to find predefined syntaxes, prethought solutions and thats pretty hard , as was said darwinbots Dna is nolt reall designed for easy evolution.
But more so, when a clever designer can come up with the possibilities that can be used, although he might have problems implementing them(having mostly the same problems as bots with finding the exact syntax, correct solutions) how do we expect a bot to surprise us in finding something new?

Complex behavior is difficult and well complex, that makes its hard to develop, to maintain and optimize in most cass it just to costly in terms of efficiency and performance to have a chance to compete.

The current mutation structure is just dumb, I mean sometimes you need to have almost the exact gene for all 9 eyes and so you write 9 genes or line of code then you need 9 mutations to do that.(If you had some dna command  that started a loop that repeats 9 times  changing a certain dna cxommand with 0 add, 1 add 2 add etc this could be done in a way one mutation would be enough), sometimes mutation would need to mainly mutate numbers or leave certain parts of the code rather unharmed while mutating others more but currently mutation works totally random.



hmm nice food to think about...

 
how could we notice evolution in darwinbots even if it was going on?
Maybe a smart species would evolve to perform group inteligence, simply said swarming behaviour to tackle food.
Swarming can be a type of simple group rules, resulting in complex behaviour, dough it rarely advances.
Other ways of recognizing would
For example untis that somehow seam to prefer to be connected to 3 cells and hunt together (where there wasnt a number 3 given, neither in their mutated code).
It would mean that those 3 evolved by balancing their parameters; if they could reproduce and soon form 3 again that might be a hint that there is something going on beyond their individual code.

In our DNA happens a lot of changes too, and altough we dont have 9 eye's I think an eye would only need to be described once, and then finetunes itself to its environment over generations. Hmm maybe the algorythm in darwinbots that creates dna copy error is a bit harsh, more like a cancer then something that deals with how good a species behaved.
When I run the 1G bot I made, and let it run over a night. I noticed that I had evolved to a 2G bot (altough it was an empty gene; maybe call it junk DNA ).
Some species had their vision range changed based on input, I had not coded that in yet myself, neither it was optimal, but maybe it could have evolved to something usefull.
As those species had also wider eyerange as a result, and that might be of benefit for use for futher generation. Sadly next morning, it saw mostly verry poor eyesight and verry small bots (altough lots).

hm I'l go adjust my 1G bot with some extra code, I hope I can fit it in a 1G / or make another bot with more genes.
Add code that would define eyerange shootrange etc, define it with the default valeus.
If I then would run it again, and let DNA copy error only in valeus not in commands (it was 50% 50%), then I wonder what would happen.
Altough this might fine tune a bot species.
It wouldnt evolve for example a bot that would reproduce based on *.nrg > 300 to become reproducing like > *.body *.age  mult 20 mod =0




Maybe somthing like this could do that :

Remember old PC's assambler code, in the low memory range they had jumps comands to interupts.
It was like:

gosub  ...  keyboard   (all instruction there to handle the keyboard)
  <empty>
  <empy>
  <return>
gosub ..  mouse ...
  <empty>
  <empty>
  <return>
gosub to ..
  <empty>
  <empty>
  <return>
..
.
Well the interesting parts for early assembler programmers where those empty areas.. since the computer walked down all the interupts at an empty place one could define a hook
A hook was a location from where your code would execute, after it had dealed for example with the keyboard, so one could for example dump keystrokes.
Some programs still do that as of today, computer viruses.

However this hooking method I wonder.
Maybe it could be used inside a bot, and the hooking itself could advance like if there was a line  
Gosub 10 [<10: do your behaviour commands; for example walk up on eye5> <empty hook> <emptyhook>] return

What if 10 was a valeu which could be changed by darwinbots DNA copy erros.
so it could became Gosub 13 [<13: do different commands with the stack valeus> <empty hook> <emptyhook>]
ofcourse the <empty hook> could contain also new hooks. so you could get

gosub 10 [<10: do behaviour instructions> <emptyhook> <new hook number13>]

its a bit complex tought dough.. using such mechanism in a bot and hoping the hooking would evolve.
So that the DNA code can be generic but the hooking can advance over it.


Hmm wel even our DNA isnt complex enough to deal with the stuff our brains deal with, it only knew how to make a brain.













Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
darwinbots evolution
« Reply #6 on: November 08, 2008, 09:22:11 AM »
People have the wrong idea about DNA and evolution in general...
IRL complexity is a disadvantage and complex multicellular organisms are usualay allowed to evolve and exist only because they function as vessels for bacteria and viruses.
And real DNA will never say something like:
3000 nrg <
50 .rerpo store

To nature that would  make no sence whatsoever and would be far less efficient than what nature does...

The whole reason I usualy build a NN structure for evo bots is because long strings of values getting multiplied and mixed together in odd ways is exactly what nature understands best... this is what you see in nature and therefor creates the best base for a bot to evolve...

Also people think evolution is suposed to make sence and that every step should show a clear advantage... but in reality the smallest difference could give a very slight advantage in ways that aren't clear to us...

The best example I can give is the NN bot I was running, longest sim I ever ran, it wen't from barely being able to survive, to thriving in an environment with light fluids, in a size 13 field with a max veggy pop of 10, with F1 costs but with reduced movement costs. Those 10 veggies suporeted over 2000 bots.
But the interesting part relevant for this conversation would be 2 things :
The conspec wasnøt absoluted, they would shoot at everything they saw, but they would also try to move around their own species... but if they encountered a canibot they would still defend themselves as they where attacked, and they also fight over alge.
The other part is that their aim got worse... because that was a lot better. Now to me this didn't make any sence, why would it be an advantage to miss? But it's clear that in a size 13 field with 10 alge and a strong conspec against cannibots, you need to keep the alge you find alive... the bots where VERY good at holding on to the alge, more or less playing soccer with it while feeding slowly on it... and all the shots that didn't hit the alge served as protection against other bots.
In the end, when it comes to evolution it's every man for himself... it can be an advantage not to eait bots that defend themselves... and it can even be an advantage to work together... but the last mentioned is something that would take a lot of time, and I'm not even sure it would be worth that much on a celular level.

Anyway my point is that what seems like a good idea to us, is not the best option, because compared to mother nature we're completely clueless.



Also about the assembler things... not sure what kind of assembler you're writing there, never seen it. All I know is the RISC and CISC comand sets, but it seems to me like Darwinbots looks a lot like assembler, just without loops and branches (For obvious reasons... bot code execution takes long enough without people creating long/infinite loops, and in the end every cycle is a loop).

Also I can't tell you how to make a brain, I doubt anyone can, but Octopusses are very smart and seem to be able to do a lot more than some creatures with brians, but the octopus doesn't have a brain, it just uses a very large complex NN.
And NN's may not exists on a celular level, but the basic concept is the same, DNA is just long sequences of actions that seem to be random and make no sence but culminate into a higher purpose somewhere down the line wich is more or less what a NN does (NN's don't HAVE to use BP to adjust weights, they can just mutate them randomly with great results, and even the structure of the network can mutate into something new and interesting, the trick for making an evo bot using a NN in DB is just to have a realy redundant structure when it comes to the weights and some values to get it started, this way the structure of the network won't devolve before the bot starts to make use of it.)
(I promise I'll geta round to post that sim and the bots and all that stuff very soon, just had a lot to do lately and I always get sidetracked when I'm messing with DB... had a lot to write about the sim and lots of .sim files and all that to upload, so I never finished, but I'll get it done very soon, or atleast post some of it then add the rest later)



Also one last note about evolution.... in nature you have a HUUUUUUUGE field.... like billions agzilions times the largest field we can run, with infinately more cells and environment types that we can simulate... the largest field we can run is insignificant compared to a petri dish...
And it took nature millions of years to get anywhere.... so if you compare the field size it should take us infinately longer to get that far.
Now ofcourse we "cheat" a litle wich allows more intersting this to evolve... but still, you're not going to see large complex organisms evolve (Except maybe fungus). The field size doesn't eevn allow that much, only very small MB's would be able to fit on the screen...
So if you're expecting something amazing to happen while you're watching you'll probably be disapointed...

Anyway DB is the best Alife simulation I've seen so far, if anyone knows of other that are as good or better, then post a link
« Last Edit: November 08, 2008, 09:44:17 AM by Moonfisher »