Code center > Suggestions
Sexual Reproduction
Greven:
Okay Num posted just as I wrote my post. But commeting Nums idea, I like it much more than my own. The only problem I (think I) see is it will be a bit arbitary hash function. Maybe we could incoporate somekind for parser that parses the codules and translate it into a hash function and then let the codules go through the hash function, so the hash function is basical evolving alone the samelines as the codules them selves?
--- Quote ---Picking the patch of DNA that's longest isn't exactly biologically equivelant. In biology, it's the gene that's pushing harder: ie: copying more proteins than the other recessive gene, that's produced.
I don't think it's a bad idea necessarily, but I'm not sure I want to be selecting for genome length. Problems with viruses comes to mind.
--- End quote ---
I can see it my self, it is arbitary.
Numsgil:
I'm not against letting the hash evolve with the bots. We could define the hash function as a codule itself. Say, location -1 or something like that, and we could have polyploid hash functions (though that sounds like an awful mess to me, I might suggest we stick strictly to haploid for hash functions)
It would have to follow some specific rules that are a little different from the rest of the DNA. Maybe put the genome its hashing on the stack (first type, first value, second type, second value, etc.)
Greven:
It could be nice. Then an arbitary design decision is moved back to the program and evolution. Hm... we could also have an option to bypass this so we could have a hardcoded hash function, if people dont what to use these, or for debugging etc.
Numsgil:
We'll probably need to come up with a default function anyway since old bots obviously aren't comming with their own hash function
Welwordion:
Ok I have to speak a word of power, introducing randomness into the bots Dna execution is a really bad bad BAD idea.
As it is, we often are not even able to understand what evolved code does because of all the junk that does nothing making the whole thing unpredictable is a serious desgn question that should not be made so lightly.
Also, do not try to mimick the physical mechansim of real life so closely , darwin bots is a world of its own and its needs its own solution.
Regarding diploidity, of course it has many functions (exspecially securing the diversity of the genepoool to some degree)but basically its the easiest way to mix genes without changing the total number of genes. You can not split and remix a haploid Dna set with another that easily in real life right?
Also diploid chromosomes are running parallel I think , this can be done because it just changes the amount of proteins etc that are made, but if we execute a gene twice and inc a memory location twice instead of one time, this can totally screw up something, which is why we have the problem of deciding externally which genes would be dominant ,executed etc.(Well its not that great aproblem, but still to point out the differences)
Well, I have tought a little bit of the general idea of sexual reproduction and the whole concept is I think to pass on genes that have useful mutations independant from the other genes, which then are tested by evolution for their usefullness.
That said we look for solution that do not produce a large number of "bad gene" childs so I think we should either stick on a scale of complete genes being shuffled or try not to exchange Dna, but rather to exchange
Mutations which are different.( this might still need some checkup of "compatibility" before reproduction, but maybe the bots would just decide that themselves?)
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version