Author Topic: Alga pollinator  (Read 8858 times)

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Alga pollinator
« Reply #15 on: November 19, 2008, 05:26:08 PM »
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?

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
Alga pollinator
« Reply #16 on: November 19, 2008, 06:01:23 PM »
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.

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Alga pollinator
« Reply #17 on: November 19, 2008, 07:36:58 PM »
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.
« Last Edit: November 19, 2008, 07:43:06 PM by jknilinux »

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
Alga pollinator
« Reply #18 on: November 19, 2008, 07:43:54 PM »
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:

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
« Last Edit: November 19, 2008, 07:49:20 PM by peterb »

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
Alga pollinator
« Reply #19 on: November 19, 2008, 08:44:41 PM »
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)
« Last Edit: November 19, 2008, 08:49:01 PM by peterb »

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Alga pollinator
« Reply #20 on: November 19, 2008, 09:50:13 PM »
You could use the epigenetic based conditions to make species specific genes. Still some chance that the behavior will be copied, but the odds are considerably less.

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Alga pollinator
« Reply #21 on: November 19, 2008, 11:22:28 PM »
Alright, I didn't notice the "virus immune" checkbox... My veggy works now.   

Code: [Select]
'Alga_Pollinator v 2.0
'By: jknilinux
'It infects bots with a virus that makes them pollinate it and spread the virus to other bots.

cond
*.robage 0 =
start
7 989 store
stop

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

cond
7 *989 !=
start
*.thisgene 1 rnd 2 mult -1 add add .delgene store
*.eyef 0 =
10 .up store
not
*.refxpos *.refypos angle .setaim store
*.refvelup 5 add .up store
*.refveldx .dx store
-8 .shoot store
*.thisgene .mkvirus store
50 .vshoot 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 >
*.nrg 5000 >          'Sometimes works better without this
start
33 .sexrepro store
stop
end

You can just run it with good ol' A. Minimalis, but you need to check "virus immune" on this veggy, otherwise the virus will infect it for some reason...

Now, it will infect bots with a virus that deletes their entire genome, and makes them instead pollinate algae. When they pollinate, the veggies will only get the virus code in them, but won't be infected by it, so now we have true pollination!

An interesting side note: once a bot is infected with the virus, it apparently messes up the refeye/myeye conspec system, so if an uninfected a. minimalis sees an infected one, it tries to kill it! Pretty interesting...
« Last Edit: December 22, 2011, 11:54:49 AM by Shasta »

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Alga pollinator
« Reply #22 on: November 20, 2008, 12:12:28 AM »
Actually, never mind. The "virus immune" veggies are still getting infected. Another bug?

Offline peterb

  • Bot Destroyer
  • ***
  • Posts: 148
    • View Profile
Alga pollinator
« Reply #23 on: November 20, 2008, 06:16:03 AM »
Quote from: jknilinux
Actually, never mind. The "virus immune" veggies are still getting infected. Another bug?

Does your system crash too ?
Could you perhaps try it with my bots to verify what causes DB to crash?
If your system keeps running stable then I know a litle bit more as I would like to run it too.

I used in one sim:
your vegy
My vegy
my 2 bots in these post above here.


(what would be intresting to see then is that one bot uses .tie wile the other does not >> what will the algey perfer in pond mode (gravtiy = moon).

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
Alga pollinator
« Reply #24 on: November 20, 2008, 04:01:13 PM »
Yeah, mine crashes all the time just from my one veggy of doom. Reinstalled DB- That helped a little, but not much.. Maybe you could try that. I think there's something going on with the viruses...

-------

EDIT:

Sorry for getting off-topic with these error reports. However, I found that DB works for the most part if you restart it each time before you run a sim. So, maybe that helps peterb.
« Last Edit: November 20, 2008, 09:46:20 PM by jknilinux »