Bots and Simulations > Interesting behaviour bots

Alga pollinator

<< < (4/5) > >>

jknilinux:
Why thanks peterb.  

The thing is I can't get away from .sexrepro turning into .repro after long-term evolution. We could use DNA scripts, if they worked, to limit bots to only using .sexrepro, but they don't. Then we could use mutation protection for .sexrepro, but that doesn't protect against an insertion/point mutation somewhere else to make the bot use .repro. We could use only deletion and reverse mutations, but that's way too limiting. Maybe we could get away with it by having very high population diversity to start with, and because they all use .sexrepro, they'll still be able to evolve through sexrepro only... That's one option, but evolution will not be able to do much with that.

The other option is to allow them to evolve .repro, but somehow .repro will have to be selected against so the algae can't get too far with it. Any ideas?

peterb:
You know what, your ideas got me wondering....

I was thinking the folowing, what if a virus forced a sexrepro, in such a way..
That it gives any species the option for sexrepro, vegies and other animals..
Basicly even sexrepro in nature was invented once too, so thats not that strange.
Since its a form of replication a good change it think it will stay to exist. (depends on factors of virus spreading).
Since only the best mutations stay alive this might be a positive presure on DB evolution.

So a virus not killing the species, but maybe as a last resort infect another species with DNA pairs of its host who allow sexrepro.
These days in bioligy have noticed that sideways DNA mutations do happen (for example from a muscito to a human or plant).
It might not do much in the beginning, but the virus could only exist and multiply if it hosts also includes his DNA.
Maybe the plants reproduction method also uses only this virus


The virus not as an atacking mechanism as it is generaly used, but as a vehicle who exchanges DNA between species.
In origin the DNA could be plant based as origin.
But in the end even the plants might get updates trough DNA exchange.
Maybe the virus should only fire once or twice, maybe not even based on *.nrg level, but rather a few times based on a large cycle; like :  
cond
*.botage 1500 mod 1498 >
start
...

Well better do that in a non Cond form in form like a single gene bot.. but above is more easy to explain
it might be more complex since infected bots should shoot this gene also to other bots (eye5) so they get forced into sexrepro too.
..


ohyour question ***>> wel basicly most algey use *.nrg as a conditional selector for .repro;
by not using it the chance is lower that it will  ever happen based on that.
Its a factor of chance too,  even if .repro starts to exist or .mrepro; it still (since its random DNA) not be optimal tuned.

dough I have not done any viruses yet.

jknilinux:
Funny you should mention that, I made an algae that shoots viruses that make it's host use .sexrepro a few days ago... I'm including it here:

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']'love potion
'By: jknilinux
'It infects bots with a virus that makes them learn how to use .sexrepro

cond
*.robage 0 =
start
7 989 store
stop

cond
*.vtimer 0 =
start
3 .mkvirus store
stop

cond
7 *989 !=
start
0 .repro store
*.fertilized 0 >
*.nrg 20000 > and
33 .sexrepro store
not
*.refeye *.myeye =
*.refxpos *.refypos angle .setaim store
*.refvelup 30 add .up store
*.refveldx .dx store
-8 .shoot store
*.thisgene .mkvirus store
50 .vshoot store
not
-6 .shoot store
stop

cond
*.eye5 0 >
*.refeye *.myeye !=
start
50 .vshoot store
stop

cond
*.eye5 0 =
*.refeye *.myeye = or
start
314 rnd .aimdx store
stop

cond
*.fertilized 0 >
start
33 .sexrepro store
stop
end

Also, although the chance is low that there will be a working .repro instruction, after a few million cycles it will happen, and since .repro is so much more efficient than .sexrepro (because you don't have to wait for fertilization), they will probably quickly replace the existing .sexrepro veggies. The reason why real life plants and animals use sexrepro is because it allows them to evolve to new situations much more quickly. However, in DB, the environment is so featureless and has the same physics everywhere, so it has no benefit here.

peterb:

--- Quote from: jknilinux ---Funny you should mention that, I made an algae that shoots viruses that make it's host use .sexrepro a few days ago... Here it is:
--- End quote ---

Ok I'll gonna try it

I tried it myself to with my now favorite algey depresivia (as it uses a *.pain; it became depresivia)
added this gene, dough it isnt that optimal (I dont wanted it to dominate but now its maybe still to weak I think) :

cond
start
*.thisgene .mkvirus store
*.botage 70 mod 68 sub sgn 1 sub sgn 1 add *.fertilized mult sgn 30 mult .sexrepro
*.eye5 50 floor 50 sub sgn refage 10 mod 8 floor 8 sub sgn -8 mult .shoot
*.botage 70 mod 68 sub sgn 20 mult .aimdx store
stop

dough its not that optimal, I modified ABnew3.txt (a single gene bot) so it could get infected.. so far it runs but the bot is still on the winning hand, nad I dont have an infected population yet

peterb:
well I tried your algey and also my algey with the single bot gene (and another single bot gene which I will include also)
The first single gene was a good finder / killer
while the second one is a poor older version who uses tie connect.

I had set it up in a small pond mode with  moon gravity, over a while you see the algey learn the trick of their predators.
Intresting, algea using tie and gowing up to catch light.. untill it crashed...
Sadly the programs seams to hang / crash often now (it never did that), this only started since the virus experiments.
(in  a way funny DEP also agrees its  a virus  doesnt allow code execution in data parts, thats DEP)



I'm not sure why that is, I also got warnings about DEP; I know what that is, but strange I wonder if the program is good handling the increase of DNA length (caused by virusses) I think the program doesnt correctly handle array memore reservations in case of virus infections.

If not then a virus should have some code or so that it wouldnt multiply to often inside a bot.
 (that would be hard to tackle)... Dough maybe its simple to solve.
increase a mem area by 1 each cycle
then each 7 cycles check if the virus has increased 7 (mod function) if the valeu is not ok then delete al virus genes. (easy since they all would use the same killgene code)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version