Author Topic: Viruses (Re: Programming task (DNA editor))  (Read 6380 times)

Offline spike43884

  • Bot Overlord
  • ****
  • Posts: 656
    • View Profile
Viruses (Re: Programming task (DNA editor))
« on: April 04, 2015, 08:17:27 AM »
I have some ideas for projects in Sunweaver if you aren't sick of it yet (things like static code analysis to find sections of DNA that don't do anything and remove them when executing the code to make it faster) .  Or if you want something more adventurous I might have some ideas for things in other modules.  At the easier side it's writing tests to expose bugs in things I'm pretty sure have bugs in them, and then trying to fix them.  At the more extreme end it's things like integrating Yeppp! in to the math library and seeing what sort of performance gains that gives.
You can't remove static code. Your going to artificalise it by doing that.
Static code might be there and not be static in a few cycles from a mere little mutation. Think of the 2nd generation of wrinkly pea's and round pea's.
Autism can allow so much joy, and at the same time sadness to be seen. Our world is weird, and full of contradiction everywhere, yet somehow at moments seems to come together, and make near perfect sense.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #1 on: April 04, 2015, 02:30:26 PM »
It's just for performance and to help people analyze bots.  The "real" DNA is kept around for things like reproduction.

Offline spike43884

  • Bot Overlord
  • ****
  • Posts: 656
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #2 on: April 05, 2015, 08:34:45 AM »
It's just for performance and to help people analyze bots.  The "real" DNA is kept around for things like reproduction.

Well considering your identifying the null chunks of code, you could always make it skip those null chunks (but keep them in storage) until a mutation, virus or reproduction event happens.

Also could you make virus's a bit cheaper in DB3?
Autism can allow so much joy, and at the same time sadness to be seen. Our world is weird, and full of contradiction everywhere, yet somehow at moments seems to come together, and make near perfect sense.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #3 on: April 05, 2015, 02:05:24 PM »
Also could you make virus's a bit cheaper in DB3?

Cheaper in what way?

Offline spike43884

  • Bot Overlord
  • ****
  • Posts: 656
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #4 on: April 06, 2015, 06:45:02 AM »
Also could you make virus's a bit cheaper in DB3?

Cheaper in what way?
NRG-wise, but possibly to stop them becoming to powerful make copying slightly slower. Generally virus's aren't to costly to the cell (As they want to really reproduce before the cell is out of energy) but take a bit of time (on a biological time-scale) to actually explode the cell...

Possibly also a limit to the maximum number of viruses your individual bot can contain depending on its body, otherwise it explodes.
Autism can allow so much joy, and at the same time sadness to be seen. Our world is weird, and full of contradiction everywhere, yet somehow at moments seems to come together, and make near perfect sense.

Offline Panda

  • Global Moderator
  • Bot Destroyer
  • *****
  • Posts: 476
  • Computer Science Undergraduate (nerd)
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #5 on: April 06, 2015, 07:31:46 AM »
The DarwinBots2 "virus" wasn't particularly virus like; it was simply a way to transfer a gene using a shot, which inserted the gene into another robot.

The cost of a "virus" (if DB3 using the same idea as in DB2) will probably a community decision, depending on how powerful the concept is.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #6 on: April 06, 2015, 02:03:42 PM »
I'm not really sure how I want to handle viruses in DB3 just yet.  A lot of it I won't know until I have bots in the simulation and I'm happy with how they physically work.  Either something like shots, but more bound to floating around in the fluid, and bots are vulnerable to them when they're pinocytosis-ing, or larger bot-like structures that bots are vulnerable to when they phagocytosis-ing.

Offline Peter

  • Bot God
  • *****
  • Posts: 1177
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #7 on: April 06, 2015, 03:22:48 PM »
I'm not sure if I want viruses. Genes running around can mess up stuff.
Oh my god, who the hell cares.

Offline Panda

  • Global Moderator
  • Bot Destroyer
  • *****
  • Posts: 476
  • Computer Science Undergraduate (nerd)
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #8 on: April 07, 2015, 01:55:00 PM »
I think viruses were overpowered. Just compiled a quick list with their problems:
  • genes injected (no or little incubation time)
  • artificial protection
  • changes original bots execution
  • little ability for bots to modify or "view" own code (e.g. no checksum for individual genes to identify )

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #9 on: April 07, 2015, 02:04:44 PM »
In terms of how they work in the bot, I think they'd be separate chromosomes.  That is, their code would be isolated from the rest of the genome and the results of all chromosomes' stores would get combined in some way that doesn't favor plurality.  Something like a simple max.  That's the same mechanism that I want to use to do diploid, so we can mimic the lifecycles of some fungi that have haploid and diploid alternating generations.  A diploid cell would have two "brains" controlling it, and dominant/recessive genes work just by how large of numbers they're storing to sysvars.  An infected cell would likewise be controlled by multiple programs, but the programs are largely ignorant of each other and can't directly interfere with each other.

Offline Panda

  • Global Moderator
  • Bot Destroyer
  • *****
  • Posts: 476
  • Computer Science Undergraduate (nerd)
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #10 on: April 07, 2015, 02:12:00 PM »
I like the idea of bots "voting" on stores.

What sort of protection could bots have against viruses, other than a more "artificial" protection?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #11 on: April 07, 2015, 02:36:54 PM »
I like the idea of bots "voting" on stores.

Some sort of majority rule sounds good at first, but it gets in to situations where each DNA strand tries to red queen race the others to have the majority.  Meaning lots and lots of duplicated DNA running.  That's not something that I want to encourage for performance reasons.  So I think the voting structure needs to be something you can't ballot stuff.  Taking the max is the best I've come up with so far.

Quote
What sort of protection could bots have against viruses, other than a more "artificial" protection?

In real cells once you're infected you're infected.  Individual cells don't really have internal defense mechanisms against viruses except suicide.  But viruses generally are not infectious across large ranges of animals, because they can't really force themselves in to a cell.  The cell has to allow them in.  Sort of vampire rules.  There's nothing really similar in DB2 but DB3's fluid model should allow for more interesting things around sending chemical signals and selectively bringing some things in to bots.  Once we have the mechanics of that figured out, viruses which can mimic that should hopefully be easier.

Offline Panda

  • Global Moderator
  • Bot Destroyer
  • *****
  • Posts: 476
  • Computer Science Undergraduate (nerd)
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #12 on: April 07, 2015, 05:31:59 PM »
I like the idea of bots "voting" on stores.

Some sort of majority rule sounds good at first, but it gets in to situations where each DNA strand tries to red queen race the others to have the majority.  Meaning lots and lots of duplicated DNA running.  That's not something that I want to encourage for performance reasons.  So I think the voting structure needs to be something you can't ballot stuff.  Taking the max is the best I've come up with so far.

What do you mean by taking the max? The maximum value to be stored?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #13 on: April 07, 2015, 05:34:17 PM »
Yeah.  So if one chromosome wants to do 10 .up and the other wants to do 100 .up, the 100 .up wins.

This is very roughly how real dominant/recessive genes work.  The dominant gene is doing something, and the recessive gene isn't.  So if you have both, doing something wins.  If you have just recessive, the thing doesn't get done and what you get is the absence of the dominant gene.

Offline Panda

  • Global Moderator
  • Bot Destroyer
  • *****
  • Posts: 476
  • Computer Science Undergraduate (nerd)
    • View Profile
Re: Viruses (Re: Programming task (DNA editor))
« Reply #14 on: April 07, 2015, 06:13:07 PM »
I don't understand how all of the DB3 processes are going to work.

Is there a location where all of the decisions made so far are/the options that there is? I suppose this sort of resource would be really difficult to keep up to date (if it was a wiki page) so I'm just going to read through everything in the forums.