Code center > Darwinbots Program Source Code

Order of mutation

(1/6) > >>

Botsareus:
Check this idea out (I used it for pusherbots)

a means add stuff

b means clone stuff

c means remove stuff

A string is equal "b1-a2-c2" This string is a new thing in the robots dna thatspecifys the order of mutations.
Lets say the rates request for  3 add , 5 clone , and 10 remove
Therefore: It creates a "mutation opperations list" as follows:

--- Quote ---baaccbaccbccbccbcc
--- End quote ---

Now from left to right of the above it does:

clone . add . add . remove . remove . clone ...

Get it?

Should I add this in when I do over the mutation for DB?
also should I add more "clone code" to Db?

shvarz:
Bots, maybe I am missing your point again, but it seems to me that you want to have more than one mutation in each offspring.  This is not smart, because that would actually lead to less-adapted bots.  I am really tired of repeating this, but here we go again: For any normal evolution, the average number of mutations an off-spring receives must be less than one.

Most of mutations are harmful.  That's just the way it is, you have to accept it.


--- Quote ---Harmful mutations result in organisms less likely to survive, and so these mutations tend to be eliminated from the population (group of organisms in a species). Beneficial mutations also tend to be eliminated by chance, but less often, and tend to be preserved. As these accumulate, the species can gradually adapt to its environment. Neutral mutations are generally eliminated, curiously, but sometimes can spread to the whole population. We then say that the mutation has fixed in the population. The rate of evolution is the rate at which mutations fix in the population. These can be either beneficial or neutral mutations.

If the offspring have on the average one harmful mutation each, then the population will degenerate; this is called "error catastrophe." This puts a bound on how many non-neutral mutations can occur per generation. It cannot be much more than about one per generation, and in fact, it must be significantly less, since most non-neutral mutations are harmful.
--- End quote ---

Numsgil:

--- Quote ---Should I add this in when I do over the mutation for DB?
also should I add more "clone code" to Db?
--- End quote ---
Bots, I would strongly suggest not even touching the mutations code.  Most of your ideas do not seem grounded in reality.  That is, you don't seem to understand how real organisms evolve, where change comes from, and the rate of change.

I would strongly suggest finding a good bio book and reading up.  I think if you go through the mutations code with your current mind set and knowledge level you'll make things worse.

I think the current mutations code is servicable, if not a bit incomplete.  A Chi-Squared type table for converting sysvar to sysvar for like commands and things would be extremely useful, as well as ways to turn on/off or strengthen/weaken the probalities of certain sysvars.

That is, giving more control over mutations to the user, not really changing the ways mutations work.

Botsareus:
Ok Never mind , I wont evolve any good bots for Db, you guys do what ever you want with Db , I am just here because reading and replying to posts is fun...

(Right now I am working on pusher bots anyway)

Under all simulations I have (insane by a biologist point of view as I can see) mutation rates, well I'll see what happens with pusherbots , if it is going to be worth posting , I would post it on my website...

I hate the compile and the execute parts of the dna because every little element is different, its so annoying.
And forget about mutations... forget about mutations (you guys won't like it anyway) ,.. but: I have to include clone for each type of type of data , add remove change , all must be specific and independent of each other , it ends up being us much work as compile only more because you have to add randomizations everywear.

(Funny, I better not tell in college what I am good at, ill just say I know some vb , thats all , I dont want to see no reactions of no proffesors brainwashing them about the evolutions stuff)  Hey I am not  enstein I dont have the modevation he has when he pulls out all his paper work and presents it to the scientific comunity like its gold.
The knowledge I gain from my little computer science experience and my ideas it seems will go with me to the grave, like hell I dont want that to happen but I guess I ran out of choices.

Below: stuff NOT out of real life , its from a combinations of calculations I did in my head right now , and stuff I learned from computer simulations

Maybe if the organisms become completely meat sims when they reproduce (that is, both of the daughter cells die if the mutation is bad) then, of course, it is nice to skip mutations once in a while.(Numsgils translation for the tired:
If mutations cause a lot of death then it is better to skip generations for muations once in a while.

But if you have a situation where the organism is going to reproduce anyway, even if its mutations are bad, then its actually good to have constant mutations.  That is, the faster a mutation can become good or some crazy system will evolve that, by its uniqueness beats the competition, the better. You really need to see how Pusherbots (my project I've mentioned before) works to understand this paragraph (or a poor excuse for a paragraph until Num here fixed it). (Numsgil fixed poor sentence structure.  Remember, sentences have predicates and nomitaves, and they should follow a logical order.)

Finally, when you have a parent that DOES NOT MUTATE WHEN IT GIVES BIRTH, as long as it does not lose a lot of resources, then it doesn't hurt it if the child dies 99% of the time.

Computer code needs a high rate of change for it to produce good results.  In code below:


--- Quote ---turnstop
skip 3 , memory(0) > 3
   memory(1) mod memory(0) , 2
   skip 1 , memory(1) = 0
      turnleft  
   skip 1 , memory(1) = 1
      turnright
memory(0) setmemory memory(0) + 1
skip 1 , memory(0) < 7
   memory(0) setmemory 0
--- End quote ---

If all mutations do is change one number, I.e. 1 to 2 , or 7 to 8 , or 3 to 4, then the code will still be doing the same thing, or perhaps even worse.

But what if new code was produced in the same quantity as above?  I think one of the following results:
* We get complete chaotic code that does nothing good.
* We get code that actualy does somthing new.
New = Competly unbeleivable , how did it realise to do that by itself?
* We get something new that is "actually" better than the precursor.
Hey maybe a computer does not exsist in real life, its all in my head.

Rearticulated by Numsgil for better responses.

Numsgil:

--- Quote ---Ok Never mind , I wont evolve any good bots for Db, you guys do what ever you want with Db , I am just here because reading and replying to posts is fun...
--- End quote ---

First off Bots, stop being passive aggressive.  It's just annoying.

Second, you're missing the big picture!  Yes, if you have mutation rates set astronomically high then you are more likely to find some useful mutations.  It's a simple numbers game.

However!  It becomes harder for the mutation to spread through the rest of the population since it is increasingly likely to break as the new mutant bot reproduces.  Remember that mutations are mostly harmful.  That wonderful new uber mutation will appear and disappear without doing you a bit of good.

Children need to be almost identical to the parent if natural selection is going to work.  Even in sexual reproduction, the child is basically identical to the combination of the parents.

Imagine if your kids mutated alot.  Imagine if a cat gave birth to dogs.  It doesn't matter how good a cat the cat is, or how poor a cat the cat is, the dogs are going to be dogs.

Lower mutation rates assure that if a useful mutation is discovered, the mutated individual has a chance to reproduce and spread the mutation to future generations.  Especially in a complex sim like DB you need to have a strong correlation between parent and daughter cells.

Navigation

[0] Message Index

[#] Next page

Go to full version