Code center > Suggestions

Mutation protection opinion

(1/4) > >>

shvarz:
Sorry, I've been away awhile and just now noticed this topic. I also apologize for not carefully reading all the proposals and the original DB3 topic. And I also apologize for posting in a separate thread - for some reason I'm not allowed to comment in the original one.

I voted for "another option" because I agree with Cyberduke - it is not clear what this option is trying to achieve. He proposed two different possibilities: 1) for us to make some DNA unmutable; 2) for bots to evolve protection of their DNA. I think these are vastly different goals and require vastly different approaches.

1) For us to make some DNA "protected" from mutation - this is for our convenience sake. Bots should suffer no penalty for that and should not even know that such protection exists. So clean metadata is the best approach here.

2) For bots to evolve protection of specific DNA regions. Seems like people are thinking that bots should be able to protect certain areas of their genome but not others. This is NOT how real DNA replicates. There may be some fancy exceptions, but in general organisms have a generic mechanism for DNA replication and mutation rate is the general feature of the organism. So, I'm completely against this idea!

3) For bots to evolve general rates of mutations. This already exists in the code - mutation rates can mutate and change. I think it would be fair to charge a little extra for lower mutation rates.

jknilinux:
shvarz-

If you're against the idea of bots evolving mutation protection, then don't check that box in your mutation settings tab.
Personally, I'm for it, and I'm sure there are others.

Also, IMO, the mutation protection instruction provides the best flexibility and is most evolution-friendly. How many times have you seen a bot evolve to use cond...start...stop? And what about inline conditions? One's meta, the other isn't, and one's rarely used by evolution, the other isn't.

shvarz:
After following the development of this program for the last 6 years or so, I've come to the conclusion that a well-thought-out feature does not really need a tick-mark. We have plenty of those in options now, and most of them just confuse the hell out of new users. That's all they do.

I still have not heard a good reason for this "protection from mutations". Why do we need it? Give me one most important reason.

P.S: Maybe I'm missing something, but I thought that metadata or metatags are comments seen by us and by the program, but not by bots. In that light I'm confused by your last paragraph.

P.P.S: And, as mentioned in the other thread, the whole discussion is moot if we don't have a programmer to implement it. Eric is away doing some other fun things, and we don't have anyone else at the time.

jknilinux:
Reason 1: There is mutation protection in nature- in fact, almost all mutations in nature cause a mutation in relatively unimportant genes that lead to, for example, formation of an extra limb, as opposed to missing important metabolism pathways.

Reason 2: It prevents bots from devolving their most important genes, which is what turns them into big berthas etc...

Reason 3: It facilitates the evolution of interesting behavior bots. For example, an antbot will not usually keep it's antbot-behavior intact after a while of evolution. Making the ant-behavior genes non-mutatable will allow the antbots to evolve and keep those genes.

Reason 4: Making it part of the DNA will allow the bot to evolve protection for it's most important genes, just like IRL evolution.

Also, IMO, DB should always provide flexibility and features over simplicity and instant entertainment. DB has a very specific niche in games, mainly for people already familiar with CS or Biology.

P.S By meta, I was referring to non-instruction code. So cond sort of counts as metadata, right? By the way, can mutations insert cond statements? I just realized I was never actually told this, and maybe that last paragraph was wrong.

P.P.S You're right, that's why that discussion died off.

shvarz:

--- Quote ---Reason 1: There is mutation protection in nature- in fact, almost all mutations in nature cause a mutation in relatively unimportant genes that lead to, for example, formation of an extra limb, as opposed to missing important metabolism pathways.
--- End quote ---

I assume that this is the main reason, because you put it first. What can I tell you - it's just wrong. There is no mutation protection in nature, at least not in the way you are picturing it. DNA polymerase has no idea what DNA it is copying - it makes mutations everywhere with equal probability. If effect of the mutation happens to be very severe, then the organism just dies (maybe even at embryonic stage) and we don't see it. In this sense, DB already has mutation protection, as most of mutations that you see in evo-sims are mild mutations, not drastically crippling the bot.


--- Quote ---Also, IMO, DB should always provide flexibility and features over simplicity and instant entertainment. DB has a very specific niche in games, mainly for people already familiar with CS or Biology.
--- End quote ---

I'm all for features, but at some point it just becomes a mess. In fact, it's already a causing a mess in IM - when I ran my sim in IM mode most of the bots that came in from internet died almost immediately, because conditions in different sims are so drastically different. What I'm saying is that there is a fine balance between usability and functionality. Saying "just add a tick-mark" does not automatically solve things.

cond, start stop etc all can be created through mutations and they can be moved around and deleted by mutations, so these are not meta-commands.

Navigation

[0] Message Index

[#] Next page

Go to full version