Code center > Suggestions
Virus, DNA hack instead of append
MacadamiaNuts:
Saying in the other thread about slime deprecated by antivirus genes as virus defense, I thought about dropping this idea:
Virus could be inserted anywhere before a cond statement, where they would execute as a normal cond and they would make the next "cond-stop" block to be ignored -as real viruses fool the protein production to produce their own proteins instead. The virus would insert the picked gene with its "cond" turned into "hack". Like:
hack
etc etc =
start
etc etc store
stop
When referring to gene x, hacks and ignored genes would count as one. Using .delgene would both delete the virus and the gene. .mkvirus would pick only the hack, if any. Also, the .delgenes sysvar would be locked to 0 during the hack execution -I actually find that virus "eating" DNA is rather cheap and uninteresting.
To get rid of viruses that went through the slime defense, a bot would run:
x .repair store
which would delete one hack at once from gene x.
Bots could use a sumcheck to detect the hacked genes and repair them, but that means that the virus would be run at least once. Or forever if the virus happened to hack the repair gene.
Also, hand made bots could come with hacks and repairs to modify its own DNA on special events, or to undo mutations. To make this mutation repair last long, I would add a .duplicate sysvar, that would place a copy of the gene above it, as a hack. If the mutation harms somehow the sumcheck, the bot can peel off the mutated hack, then duplicate again the copy of the gene that was inactive.
Numsgil:
You want to be careful about giving DNA the tools to police itself. Inevitably they're either overpowered for a virus to take control of, or you have to treat viruses differently from the rest of the code (like you're proposing).
My ideal would be for a bot to spend nrg on slime to prevent viral infections. Once infected, the DNA would have no way of "cleaning" itself, because inevitably if DNA can clean a virus, then a virus should be able to "clean" the DNA (ie: erase it). I think the best way to look at DNA is as several independent genes that all influence the behavior of the bot. When a bot is infected, the virus acts like any other gene, and has no more or less influence on the bot than any other gene.
I think it's the cleanest conceptual way to treat viruses. The problem when DNA has to clean itself is that the DNA becomes part of the phenotype of the bot. For hand authored DNA, it means obfuscation. Things like the current one-gene monsters. (I have nothing against one gene bots, but the program shouldn't encourage such madness!) For evolving DNA, it means even more headache trying to figure out what a bot's DNA does.
MacadamiaNuts:
Ok. good points, although real life virus are actually RNA instead of DNA so they don't work the same way.
I still would tweak them. Because virus are placed at the end of the code, .delgene gives virtual virus inmunity for bots that check for any appended genes. That's neat if it emerges on an evosim, but not so fun for hand made bots. If the virus was inserted randomly after any 'stop' it would be more expensive to provide full virus inmunity through code.
EricL:
I suggest providing a means for a virus to specify a BP sequence to look for in the target bot after which it gets inserted if a matching sequence is found. The program would choose a single random insertion point from all such sequence segments in the infected genome. This way, you can get viruses that target specific species or genes only, may not themselves be whole genes, only segments and which are capable of infecting single gene bots without adding new genes. Such a model may mor eclosely simualte RNA viruses, allowing for the hijack of soem of the functionality of an existing gene. Bots can mutate their own sequences to defend against such recognizers, like evolving a different protein coat. Nature is full of such battles and arms races at the genome level.
I shoudl point out that the seperation between geneotype and phenotype is not a crisp one, in DB or in nature. An organism's genotype has physical representation, is accessable, manipulatable, corruptable, etc. I personally have no philosophical objection to providing the means for organisms to interact, attack and defend on the DNA sequence battlefront.
I think I also favor the addition of commands which allow for sequence policing and correcting e.g. computing checksums and BP sequence copy and deletion primitives. One can imagine this leading to bots taking reproduction into their own hands (so to speak) by evolving genome copying machinery with error correction.
Peter:
--- Quote from: MacadamiaNuts ---Ok. good points, although real life virus are actually RNA instead of DNA so they don't work the same way.
--- End quote ---
I am pretty sure there are RNA and DNA types of virus, and RNA often using a smart mechanisim that is copying the RNA in the real DNA. The HIV-virus for example uses it.
RNA and DNA virus have alot of things together in the way they actually work, there are just some subtle different's between them.
--- Quote ---When referring to gene x, hacks and ignored genes would count as one. Using .delgene would both delete the virus and the gene. .mkvirus would pick only the hack, if any. Also, the .delgenes sysvar would be locked to 0 during the hack execution -I actually find that virus "eating" DNA is rather cheap and uninteresting.
--- End quote ---
This sounds all together rather complicated, for the fact of there are more difficult defence posibilities needed if I understand it right.
So what's wrong with the virus there exist as of this moment.
Yeah, eating a bot's DNA is cheap. Altrough I am having a bot doing it. Just make the bot an empty hulse shooting virus . It's maybe just a bit too easy destroying a bot with it, also I have'nt seen any bot using DNA-deletion genes that was top of F1, so is it really overpowered.
Navigation
[0] Message Index
[#] Next page
Go to full version