Code center > Darwinbots3

Mutation protection

<< < (4/7) > >>

Numsgil:
Right, doing something like 10 .protect store is what I'm against.  You want that data attached to the actual base pairs instead of floating around in the DNA. (Though I do think using negative numbers in .mrepro to lower mutations during reproduction (higher cost?) would be cool).

Codules are essentially functions, except that they can't recurse (call themselves or anything that called them) and they operate on the stack instead of using arguments.  In their most abstract, they're essentially macros that you can use as custom commands, and are subject to mutation.  They can contain any (or none I suppose) DNA, from multiple genes to a single number, so they would provide a natural way of grouping like base pairs together, and it's on that level I think mutation multipliers should live.  I think Eric believes this is not fine enough control, and differing mutation probabilities are needed even within codules, should they be implemented.

jknilinux:

--- Quote from: Numsgil ---...

But this second methodology breaks down if metadata (by which I mean tags that describe the DNA itself, such as changing the mutation rate for some basepairs or, if we had diploid DNA, changing the dominance/recessiveness of a gene) is itself actually a bead. It might be that after a few splices the tag that identifies a change in mutation rate is now modifying entirely different DNA. Which entirely defeates the purpose if you're a bot author and your goal is to make the reproduction gene, or whatever, non mutable.

...

Codules are essentially functions, except that they can't recurse (call themselves or anything that called them) and they operate on the stack instead of using arguments.  In their most abstract, they're essentially macros that you can use as custom commands, and are subject to mutation.  They can contain any (or none I suppose) DNA, from multiple genes to a single number, so they would provide a natural way of grouping like base pairs together, and it's on that level I think mutation multipliers should live.  I think Eric believes this is not fine enough control, and differing mutation probabilities are needed even within codules, should they be implemented.
--- End quote ---


Well, if I understood your argument against metadata correctly, you think that it would be useless to the coder if the mutation protection is itself mutatable, since it could easily be mutated to protect a different stretch of DNA, etc... However, if the mutation protection instruction could protect itself from mutations by having more than one argument, then this could be easily circumvented. For example:

10 5 5 .protect store

could mean "protect next 10 bps by giving them a 5% mutation rate, and give self a 5% mutation rate." Thus, it protects itself and can therefore be useful for protecting the coder's DNA.

In essence, your codule idea just sounds like

10 5 0 .protect store

Or "protect next 10 bps by giving them a 5% mutation rate, and give self a 0% mutation rate." In which case, the mutation protection is impossible to move or change, just like a codule.

I think this design is more flexible, since it can actually protect DNA in the long run, like you wanted, and it can be moved, added, or deleted through mutation, like what Eric and I wanted. It's all up to the coder.

---

NOTE: I've never written DBcode before, so don't laugh if I'm not allowed to have three arguments for a command. There are ways to circumvent this and use only one argument.

bacillus:
I don't like the idea of changing the rate of mutation too much; if anything, it should be treated like internal slime eg. higher protection lasts for a less period of time, and wears down in relation to the amount of protection offered, and the amount of DNA protected. Maybe have something like X .mkenzyme store and Y .protect store, where Y is the amount of base pairs relative to the position of the current base pair to be protected, so that -10 .protect store will protect the previous 10 bps, while 10 .protect store protects the next 10 bps.

jknilinux:

--- Quote from: bacillus ---I don't like the idea of changing the rate of mutation too much; if anything, it should be treated like internal slime eg. higher protection lasts for a less period of time, and wears down in relation to the amount of protection offered, and the amount of DNA protected.
--- End quote ---

But that's nothing like real-world Biology. An organism doesn't get increased mutation rates after it lives a long time. Photosynthesis doesn't wear down if a tree lives for a thousand years, because an organism's mutation rate is not dependant on time, amount of DNA, or anything else.

---

Numsgil:

By the way, if Metadata wasn't coded for inside the DNA in a real organism, where would it be stored?

Numsgil:
It's either a property of the codon itself, (multiple codons, with different possible mutation probabilities, might code for the same amino acid), or it might be regulated by a regulatory protein which sits on the strand of DNA itself, like a glob of clay stuck on my string of beads analogy.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version