Bots and Simulations > Evolution and Internet Sharing Sims
Shvartz, can you help me out?
PurpleYouko:
--- Quote ---Then why is Shvartz having trouble with my little first bot? :/
Shvartz:
--- Quote ---Consider this: when we program bots we write "a b store". Bots never evolve things like this. They go through complicated scenarios often involving several genes. Numbers are placed on stack, manipulated in many different ways and finally they are stored into memlocs.
--- End quote ---
--- End quote ---
This is complete bollox! :angry:
The robots can and do evolve stuff like a b store.
They evolve it in a single step too.
The "insert command" function makes a space of 3 positions in the DNA array, then it randomizes a value and a sysvar and sticks a store on the end and shoves it all into the space it created
Result = a b store
If the robots are not doing this then somebody has fucked up the code in the last release because I spent a lot of time making sure that this is exactly what would happen!
Numsgil:
Went on vacation for a few days, now I'm ready to come back and face the new problems.
Bots will sometimes evolve a b store, I've seen it in the more recent versions, but you must remember that it's rather rare for any kind of massive run (3 whole commands!) to be useful at all since they're just picked at random.
Here's the way I see it. Yeah, a bot that evolves a complex function to just get 4 seems odd. But remember that the store statement takes the top two values in the stack, and doesn't care how it gets them.
So suppose we call our 500 command function f(x). we have f(x) b store. A new mutation may insert an "a" after f(x), making it f(x) a b store, which entirely overrides the whole 500 command f(x). If the "a" is doing what f(x) used to, f(x) will slowly degrade into something else, maybe junk, maybe useful. If a single command like that can't replace the whole f(x) thing, then f(x) is obviously doing something that's important.
So I definately don't see this as a problem, since a single mutation can replace large sections of code. The easiest way to "fix" it so that larger DNAs are selected against is to incurr some built in costs on DNA replication. Not incredibly difficult to set up and be user definable.
About genes communicating via the stack: assuming you view this as undesirable (depends on what you're trying to do of course) we could implement a clearst command that erases the stack. Bots can evolve them or no depending on their usefulness.
Also, the chromosome idea I proposed would allow for seperate stack threads so you can evolve several different DNA threads that can't communicate through the stack except within the same chromosome.
As to the evolution of Bot's bot, I would try running a sim with Zero Momentum mode and largest sim size. Just decrease costs until the bots can survive (they can definately survive if nothing costs any energy, so there must be some cost level they can survive on), and then instead of increasing physics constants, increase the costs. That would select for efficiency.
I'll implement an optional cost-per-DNA-unit (either per reproduction or per cycle) so we can play with downward selective pressure on DNA length.
Botsareus:
Num, I cant figure this errors out. Can you try the stuff I am talking about: http://s9.invisionfree.com/DarwinBots_Foru...ndpost&p=850925
in that post.
I did not mess with the source code before I got it. But I did debug it, its somthing about searching then dna beiond the ubounds.
As for everything Num and PY have sayed. I totaly agree.
Numsgil:
--- Quote ---Num, I cant figure this errors out. Can you try the stuff I am talking about: http://s9.invisionfree.com/DarwinBots_Foru...ndpost&p=850925
in that post.
I did not mess with the source code before I got it. But I did debug it, its somthing about searching then dna beiond the ubounds.
--- End quote ---
I have no idea. I've totally rewritten alot of the DNA parsing routines (consolidating alot of functions inthe process) so I'm not even sure it's relavent anymore.
Does it happen with the latest official release? If you can reproduce a bug in that, then I can see if it's real or not. Otherwise I'm at sort of a loss.
Botsareus:
omg , I toled you what I did in the latest release to get this bug.
All you have to do is follow my instructions and reproduce it for yourself.
Is it so hard?
...
yea lol , dont forget to reproduce it from visual basic and not from the compiled virsion, other wise there is no way to debug it. :)
...
Edit: Bots is in a sarcastic mood tuday , do not ask.
Edit: I cant really call it sarcasm bc all my directions are lagit, unlike my spelling...
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version