Bots and Simulations > Evolution and Internet Sharing Sims
Shvartz, can you help me out?
PurpleYouko:
Only if the veggie is directly in front.
If it is even slightly off center then the difference between the direction of movement and the vector angle from robot to veggie should quickly result in the veggie being pushed to the side.
Right now that doesn't happen. The veggie just stays in front and moves on the same vector as the robot after a collision. This even happens when the veggie is quite visibly off center and the shots are missing it entirely.
shvarz:
An update and some ideas:
I've decided to give up on evolving firstbot. I pushed the bot too far and the current population died out. The bots that were saved in "snapshots" are not usable, they have these weird mutations with incorrect syntax of DNA. I tried to fix them, but I can't. I am just going to wait for the new version and maybe restart the evolution from scratch.
Here is what I think about the experiment so far: aside from incorrect syntax the mutation routine works nicely. The biggest problem is that the environment is too small -next time I'll start with size 12 right away. Should we consider making even larger environments possible? Maybe.
I also think there is a potential problem (I am not sure if this is a problem) with the way bots mutate and evolve. 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. As a result the code becomes quite unmutable - even a slight modification in such a long and complicated sequence of events results in a totally messed up code. This puts bots into evolutionary dead-ends, don't you think?
Ulciscor:
How could this problem be corrected though?
Could you sort of have mutations of patterns rather than individual commands? So instead of just inserting one command it would insert a pattern from a whole collection, like 'a b store' where a and b are random variables or values. That would make sure the sequence for storing a value would be contained in one gene, and would mean that it would be more tolerant of other mutations.
shvarz:
As I said, I'm not even sure if this is a problem, so I don't know if we should try to correct it. Your approach would help, but it goes against the evolutionary principles. And it reduces the chances of seing something new emerge.
Maybe not allowing genes to communicate through a stack?
Ulciscor:
So every time a gene terminated the stack would be cleared? Wouldn't that just make it even harder for bots to evolve any new sequences? The 'problem' doesn't seem to lie in the fact that genes can use values on the stack from other genes but that it always goes that way. I suppose with all the random alterations that right value will get to the right memory address at some point but as you said any further errors are catastrophic as they mess up the whole chain.
What exactly are the evolutionary principles that DB is modelled after anyway?
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version