Code center > Suggestions

Mutation protection opinion

<< < (3/4) > >>

Peter:
Well, yes overall shvarz is right. Ofcource there are exeptions to the rule, as with your hypermutations link.

jknilinux, the most links you gave are about the changing of the ''overall'' mutation rates. Without pointing anywhere to the specific mutation rates. But go on and find some good links, this stuff could be interesting.

We already have overall mutation rates. Insert and deletions mutation rates can both change dramatically in a bot live.

shvarz:
1:

--- Quote ---Anyway, here's an example off the top of my head: amino acids can be coded for in way more ways than necessary. In some cases, the amino acid will be coded for by DNA made from mostly As & Ts, while in other cases, the amino acid can be coded for using mostly Gs and Cs. Guanine and cytosine have 3 hydrogen bonds connecting them, while Adenine and thymine only have two. This makes G-C base pairs less susceptible to mutations and, sure enough, bacteria that dry out regularly and need to halt their metabolism have a far larger amount of Guanine and Cytosine in their DNA, to protect it from mutations, than their less hardy cousins.
--- End quote ---

First, the protective effect of such mechanisms is pretty small and is designed for very specific conditions. Second, we already have a similar mechanism in place. There are different mutation rates for different kinds of mutations. These rates can be mutated and, therefore, bots can evolve to protect their DNA.


3:
But how are they inserted?

There are insertion mutations that insert random stuff in random places.

jknilinux:
1: another link: http://www.robots.net/article/2694.html

Also, there may not be many mechanisms to protect against DNA mutations, but there are definitely mechanisms to fix the damage from mutations before it is even noticed in the cell.

3:
Yeah, I know, I meant
a: is "cond" inserted randomly, then "start" during the next cycle, etc?
b: are "cond", "start", and "stop" inserted all randomly in 3 different places, in 1 cycle?
c: is it just inserted as a blob, "cond start stop", randomly?

Numsgil:

--- Quote from: jknilinux ---1: another link: http://www.robots.net/article/2694.html
--- End quote ---

Keep in mind you're talking about stuff that's cutting edge.  It hasn't been verified and accepted by the scientific community at large.  The central dogma to evolutionary theory is still that adaptations from mutations are random and non deterministic.


--- Quote ---Also, there may not be many mechanisms to protect against DNA mutations, but there are definitely mechanisms to fix the damage from mutations before it is even noticed in the cell.
--- End quote ---

For our purposes in Darwinbots, it's assumed that those repair mechanisms are factored in to the final mutation rate.


--- Quote ---3:
Yeah, I know, I meant
a: is "cond" inserted randomly, then "start" during the next cycle, etc?
b: are "cond", "start", and "stop" inserted all randomly in 3 different places, in 1 cycle?
c: is it just inserted as a blob, "cond start stop", randomly?
--- End quote ---

The stuff inserted is entirely random, and done one at a time.  That's on purpose. The program used to do things like you describe: insert whole genes into the genome.  But I changed it because I consider that to be cheating.  Right now, it's possible for 29 conds to get inserted before any starts are.  In fact it's probably more likely in a zero bot because when a point mutation changes something, it changes either the value or the type.  A value of 0 and a flow command type is a cond bp, so a 0 in the genome has to evolve in to a cond before it can evolve in to a start.

The cond start stop order isn't mandated in the code.  cond basically clears the cond stack, start and else AND the cond stack together, and turn on/off store statements based on the value, and stop clears the current state so store statements won't happen anymore.  They can appear in any order.  For the purposes of determining genes, a gene is basically all the code after and inside a cond statement, until the next cond or stop statement.

jknilinux:
Thanks for the clarification, numsgil.

So, getting back to how easily evolution can use metadata- it sounds like it would be pretty difficult for ex-nihilo bots to use cond-start-stop efficiently if you can randomly insert 29 conds before you finally get 1 start. Having mutation protection be the same way, as in being metadata, should also be difficult for evolution to use, which is why I was against the metadata method. If bots use cond-start-stop just as well as any other instruction, then I'm okay with implementing mutation protection as metadata.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version