Darwinbots Forum
Bots and Simulations => Bestiary => Mutations => Topic started by: peterb on April 09, 2010, 07:24:06 PM
-
I was a bit amazed by this bot, the main movement gene was mutated to move sideways ???.
We almost never design bots to move like crabs, but apparently its not so bad.
the eyes acted more like ehmm a fishnet, the robot didn't move to fast, but still was pretty reproductive.
Only when it sees something it moves forward to eat to eat it, otherwise it walks sidewards.
I never would think it would work, but it was pretty good actually.
It had lots of offspring, and .... it seamed to catch better !!, but why ??
Hmm maybe the side walk of a crabs in nature, does have a benefit ??
What i can think of is that the catching, although more difficult,
has less chance of chasing long, resulting, in giving up, 'out of reach targets' earlier,
and getting the ones nearby more easily...???
well its a gues.
'''''''''''''''''''''''' Gene: 1 Begins at position 1 '''''''''''''''''''''''
cond
*.robage 30 >
*.eye5 0 >
*68 0 =
start
*67 sgn 1 add sgn 60 store
-32 *.eye5 div .shootval store
-1 .shoot store
*.refxpos *.refypos angle .setaim store
-1 *60 mult .shoot store
0 .fixpos store
*.refvelup 20 add *60 mult .up store
*.refveldx 7 div *60 mult .dx store
*67 1 add 67 store
*.pain *.pleas sub sgn 1 add sgn 1 sub abs 3 mult *64 add 64 store
*.pain sgn 1 sub abs 66 store
*0 sgn 1 sub abs *66 add sgn *64 add 64 store
*64 150 mod sgn 1 sub -628 mult .aimright store
*64 150 mod sgn 1 sub -1 mult .fixpos store
*.slime 50 sub sgn 1 sub sgn -7 mult 60 store
*.refmulti *60 mult .mkslime store
*.eye5 40 sub sgn 1 sub sgn -1 mult *.refvelup 61 store
*.up 60 store
60 *0 add * .up store
stop
'''''''''''''''''''''''' Gene: 1 Ends at position 151 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 2 Begins at position 152 '''''''''''''''''''''''
cond
*.eye5 0 =
*.robage 30 >
*68 0 =
start
*.eye9 *.eye1 sub sgn 54 store
*54 130 mult .aimright store
*54 abs -1 add abs 5 mult .up store
*54 abs -1 add *.mass mult .dn store
*.robage -2 div .dx store
10 .up store
*.eye6 *.eye4 sub sgn 63 store
*63 35 mult .aimright store
*.eye6 *.eye4 add sgn abs .fixpos store
*.pain 1 sub abs .pain store
*54 abs 65 store
*63 add *65 abs sgn 65 store
*65 *64 mult 64 store
*67 1 add 67 store
stop
'''''''''''''''''''''''' Gene: 2 Ends at position 244 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 3 Begins at position 245 '''''''''''''''''''''''
cond
*.nrg 16000 mod 0 =
*.mass 2 >
start
-4 .shoot store
*.waste .shootval store
20 .strbody store
20 .mkshell store
-40 67 store
30 68 store
stop
'''''''''''''''''''''''' Gene: 3 Ends at position 273 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 4 Begins at position 274 '''''''''''''''''''''''
cond
*.robage 30 <
start
*.tiepres .deltie store
500 .dx store
*.robage 5 sub sgn 1 add sgn 500 mult .dn store
*.robage 20 sub 0 floor 9 mult .aimright store
stop
'''''''''''''''''''''''' Gene: 4 Ends at position 305 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 5 Begins at position 306 '''''''''''''''''''''''
cond
*68 0 >
start
41 .aimright store
4 .repro store
*68 1 sub 68 store
stop
'''''''''''''''''''''''' Gene: 5 Ends at position 322 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 6 Begins at position 323 '''''''''''''''''''''''
cond
*.body *.refbody <
*69 20 <
*.robage 5 mod 0 =
start
300 .shoot store
50 .shootval store
*69 1 add 69 store
stop
'''''''''''''''''''''''' Gene: 6 Ends at position 347 '''''''''''''''''''''''
-
I was a bit amazed by this bot, the main movement gene was mutated to move sideways ???.
We almost never design bots to move like crabs, but apparently its not so bad.
the eyes acted more like ehmm a fishnet, the robot didn't move to fast, but still was pretty reproductive.
Only when it sees something it moves forward to eat to eat it, otherwise it walks sidewards.
I never would think it would work, but it was pretty good actually.
It had lots of offspring, and .... it seamed to catch better !!, but why ??
Hmm maybe the side walk of a crabs in nature, does have a benefit ??
What i can think of is that the catching, although more difficult,
has less chance of chasing long, resulting, in giving up, 'out of reach targets' earlier,
and getting the ones nearby more easily...???
well its a gues.
[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']'''''''''''''''''''''''' Gene: 1 Begins at position 1 '''''''''''''''''''''''
cond
*.robage 30 >
*.eye5 0 >
*68 0 =
start
*67 sgn 1 add sgn 60 store
-32 *.eye5 div .shootval store
-1 .shoot store
*.refxpos *.refypos angle .setaim store
-1 *60 mult .shoot store
0 .fixpos store
*.refvelup 20 add *60 mult .up store
*.refveldx 7 div *60 mult .dx store
*67 1 add 67 store
*.pain *.pleas sub sgn 1 add sgn 1 sub abs 3 mult *64 add 64 store
*.pain sgn 1 sub abs 66 store
*0 sgn 1 sub abs *66 add sgn *64 add 64 store
*64 150 mod sgn 1 sub -628 mult .aimright store
*64 150 mod sgn 1 sub -1 mult .fixpos store
*.slime 50 sub sgn 1 sub sgn -7 mult 60 store
*.refmulti *60 mult .mkslime store
*.eye5 40 sub sgn 1 sub sgn -1 mult *.refvelup 61 store
*.up 60 store
60 *0 add * .up store
stop
'''''''''''''''''''''''' Gene: 1 Ends at position 151 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 2 Begins at position 152 '''''''''''''''''''''''
cond
*.eye5 0 =
*.robage 30 >
*68 0 =
start
*.eye9 *.eye1 sub sgn 54 store
*54 130 mult .aimright store
*54 abs -1 add abs 5 mult .up store
*54 abs -1 add *.mass mult .dn store
*.robage -2 div .dx store
10 .up store
*.eye6 *.eye4 sub sgn 63 store
*63 35 mult .aimright store
*.eye6 *.eye4 add sgn abs .fixpos store
*.pain 1 sub abs .pain store
*54 abs 65 store
*63 add *65 abs sgn 65 store
*65 *64 mult 64 store
*67 1 add 67 store
stop
'''''''''''''''''''''''' Gene: 2 Ends at position 244 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 3 Begins at position 245 '''''''''''''''''''''''
cond
*.nrg 16000 mod 0 =
*.mass 2 >
start
-4 .shoot store
*.waste .shootval store
20 .strbody store
20 .mkshell store
-40 67 store
30 68 store
stop
'''''''''''''''''''''''' Gene: 3 Ends at position 273 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 4 Begins at position 274 '''''''''''''''''''''''
cond
*.robage 30 <
start
*.tiepres .deltie store
500 .dx store
*.robage 5 sub sgn 1 add sgn 500 mult .dn store
*.robage 20 sub 0 floor 9 mult .aimright store
stop
'''''''''''''''''''''''' Gene: 4 Ends at position 305 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 5 Begins at position 306 '''''''''''''''''''''''
cond
*68 0 >
start
41 .aimright store
4 .repro store
*68 1 sub 68 store
stop
'''''''''''''''''''''''' Gene: 5 Ends at position 322 '''''''''''''''''''''''
'''''''''''''''''''''''' Gene: 6 Begins at position 323 '''''''''''''''''''''''
cond
*.body *.refbody <
*69 20 <
*.robage 5 mod 0 =
start
300 .shoot store
50 .shootval store
*69 1 add 69 store
stop
'''''''''''''''''''''''' Gene: 6 Ends at position 347 '''''''''''''''''''''''
I found something similar to this and so decided it was because as they moved there eyes saw more of the enviroment and therefore it could spot veggies easier, I thus changed the eye setup so that the eyes pointed to the sides like so:
342 dup *.eye1dir sub sgn abs .eye1dir mult store
223 dup *.eye2dir sub sgn abs .eye2dir mult store
176 dup *.eye3dir sub sgn abs .eye3dir mult store
78 dup *.eye4dir sub sgn abs .eye4dir mult store
-78 dup *.eye6dir sub sgn abs .eye6dir mult store
-176 dup *.eye7dir sub sgn abs .eye7dir mult store
-223 dup *.eye8dir sub sgn abs .eye8dir mult store
-342 dup *.eye9dir sub sgn abs .eye9dir mult store
260 dup *.eye1width sub sgn abs .eye1width mult store
-20 dup *.eye2width sub sgn abs .eye2width mult store
115 dup *.eye3width sub sgn abs .eye3width mult store
85 dup *.eye4width sub sgn abs .eye4width mult store
70 dup *.eye5width sub sgn abs .eye5width mult store
85 dup *.eye6width sub sgn abs .eye6width mult store
115 dup *.eye7width sub sgn abs .eye7width mult store
-20 dup *.eye8width sub sgn abs .eye8width mult store
260 dup *.eye9width sub sgn abs .eye9width mult store
I'm more of a progammer than an evolver like you so this worked fine for me but it probably would be hurt my mutations easily... anyways it worked even better than moving to the side because it coverd way more space as it moved than either of the methods.
-
yes i can imagine changing eye directions and width does improve what you see.
It still is a bit strange to me as to why side moving can be so good.
its contra of what i think, i mean you design eyes so it folows a path, and now it turns out the path isnt that important.
Maybe the eye system is nothing more then a scoope or fishnet system.
Not realy moving but a bigger mouth, as basicly in DB we dont get realy a lot of info from eyes
Mainly there is something there and we shoot eat it..
Sometimes we add extra rules to not eat it when it is one of our kind but thats about it.
-
I didn't study the code, but it could be a makeshift way of conspec. When you reproduce in front of yourself and your moving sideways your offspring isn't going to eat you when you bump into them and you can avoid eating each other untill the birth tie breaks. Maybe not, I just know that darwinbots come up with strange solutions to problems.
-
Look at fish, there eyes are to the side so they can see more things such as predators or maybhe food but less likely where it doesn't disepear after a few seconds like in darwin bots... I think part of it is because dawrinbots are tremoundsly short-sighted when you think about it, they can only see the width of about 20 cells whilst we see accuratly for about quarter of a kilometer, thus darwinbots have to make the most of the little we can see, the only reason our eyes point forwards is it means we can focus eyes on a single object and I guess at some point in our brain we do some trigonometry or some other thing to work out how far away anything is, bots bieng as short-sighted as they are it's also not as important to judge distances, maybhe if you allow bots to develop longer-ranged sight (maybhe longer range costs more energy like shootval) and delete the ability to know where exactly something is (x & y co-ords) so that a bot can only judge distance on apparent size and calculations then encourage complex MBs I don't think it would be long until you get some complex solutions to sight...
-
Look at fish, there eyes are to the side so they can see more things such as predators or maybhe food but less likely where it doesn't disepear after a few seconds like in darwin bots... I think part of it is because dawrinbots are tremoundsly short-sighted when you think about it, they can only see the width of about 20 cells whilst we see accuratly for about quarter of a kilometer, thus darwinbots have to make the most of the little we can see, the only reason our eyes point forwards is it means we can focus eyes on a single object and I guess at some point in our brain we do some trigonometry or some other thing to work out how far away anything is, bots bieng as short-sighted as they are it's also not as important to judge distances, maybhe if you allow bots to develop longer-ranged sight (maybhe longer range costs more energy like shootval) and delete the ability to know where exactly something is (x & y co-ords) so that a bot can only judge distance on apparent size and calculations then encourage complex MBs I don't think it would be long until you get some complex solutions to sight...
Maybe your onto something, your right their eye sight is short, most bots run forward, without looking around.
Better might me adjusted vision (maybe just as narrow as an eye5) but over a longer range using eyewidth.
Then create some kind of a multibot, with a few of such good eyes, maybe 2 or or more, maybe 2 forward and a few rotating eyes.
Hmm this indeed could become a complex bots, i wonder who will be first to create such bots.
I'm trying to get a grip on neural networks, so combined withe such a bot it would be real cool
-
If you have a large environment with low food and start out using eye5, then you're likely to end up going sideways, since a single mutation can easily cause it to happen and a bot moving sideways will scan a much larger area for food. The initial eyes aren't very wide, so moving forward looking through the middle eye will only scan a narrow path.
If you use a wider eye this is less likely to happen, and if you have abundant food then the next step will often be to spin when no food can be seen.
There are also other advantages to strafing, for instance if the conspec breaks it'll help offspring get away from their parents alive.
And ofcourse theres some disadvantages too obviously.
Personaly I think an interesting way to start off an evo bot is with reversed sight and .backshot inc executed every cycle (And a wider eye usualy).
This way offspring get away easy and don't spawn in ones line of fire. (Ofcourse if you want it to evolve tie feeding, this may not be the best way to go, but for shooters I think it's a good base)