Darwinbots Forum

Code center => Bugs and fixes => Bug reports => Topic started by: Testlund on November 16, 2007, 09:38:15 AM

Title: My evobots don't work in 2.43r RESOLVED (BY DESIGN)
Post by: Testlund on November 16, 2007, 09:38:15 AM
Start version 2.43r and load this sim, wait for awhile. Then you quit and start version 2.43p and load the same sim. Watch the difference.  
Title: My evobots don't work in 2.43r RESOLVED (BY DESIGN)
Post by: Numsgil on November 16, 2007, 11:56:58 AM
There have been alot of changes with the way DNA works lately.  Hand written bots aren't going to really change, but evo bots (which are basically aglomerations of random DNA) are going to behave quite differently in the newer versions.

Not much to do about it.
Title: My evobots don't work in 2.43r RESOLVED (BY DESIGN)
Post by: EricL on November 16, 2007, 12:03:01 PM
I'll take a look at the sim later today.  I too suspect the recent changes allowing conditionals in gene bodies...
Title: My evobots don't work in 2.43r RESOLVED (BY DESIGN)
Post by: Testlund on November 16, 2007, 12:21:28 PM
If that's the case then so be it. As long as DB progresses forward. Maybe when 2.44 is released I'll start a new zerobot sim and not upgrade the version for that sim, running it on my spare computer and only use later versions on my new computer.
Title: My evobots don't work in 2.43r RESOLVED (BY DESIGN)
Post by: Testlund on November 17, 2007, 02:40:29 AM
I looked at your latest changes for 2.43r and was thinking maybe it could be that you fixed the 'Cond' statement, but that's not the problem. I did a test with both 2.43p and 2.43r by running 50 of my evobots in the upper area, and 50 bots where I had deleted the cond statements in the lower area. Just by watching it I couldn't see that the cond statements were affecting my bots in ANY way.

In any case my bots appear much more alive in 2.43p than in 2.43r, moving faster and reproducing, forming ties etc. In 2.43r they just swim very slowly from left to the right edge and just sit there. If there might be something in the genes that doesn't work with this version maybe you could tell me which dna it is and I could change it so I can still run them. Just if you happend to feel like it. It's saturday and all. :-)
Title: My evobots don't work in 2.43r RESOLVED (BY DESIGN)
Post by: Numsgil on November 17, 2007, 03:58:03 AM
Try deleting any logic operators.  Anything that's an and, or, xor, not, >, <, =, !=, >=, <=, ~=, %=, etc. etc.
Title: My evobots don't work in 2.43r RESOLVED (BY DESIGN)
Post by: EricL on November 17, 2007, 04:12:05 PM
I am almost positive it is the new conditional paradym.  When I look at the evolved DNA of your bots, as see lines like:

 -5 17 >

in the gene body.  That is, following a start but before other commands which store to memory.  Where before lines such as the above were ignored, under the new paradym, they are exectued and the result - in this case False - impacts whether the following stores happen or not.  In this case, they will not.

As Nums says, you can preserve your bots and restore their functionality under the new paradym by removing any and all logic operators between start and end (or the end of the DNA.  Below is an attempt of mine to do so using one of yoru bots in the sim.  It seems to do much more in 2.43s than the original ChainBot did.

start
 dist 26
 -12 1 sqr inc
 -- mod
 -5 17
 floor angle rnd store
 sub mult 1 add .sx store
  start
 &
 *14 angle | *345
 1 | store
 | 3 floor dist & *.dn 481 -
 6 ~ store
 store
 6 rnd div 10 ceil ^ add 1
 *.up dec
 dec
 dist 18 ++ store
 1 mult 10 start
 *.up *.hitsx mult
 1
 & pow angle store
 add - floor .setaim store
 .up inc
 angle --
Title: My evobots don't work in 2.43r RESOLVED (BY DESIGN)
Post by: Testlund on November 18, 2007, 04:57:14 PM
Ok, thanks. I see you have removed anything that is before a start command. If I do that with my tiebot there won't be much DNA left because it has a start command near the end of it's DNA. I'll try just removing the logic operators Nums mensioned in my tiebot to see how it turns out.