Code center > Suggestions

Sexual Reproduction

<< < (5/9) > >>

Numsgil:
Actually Elite, that's what I had in mind too

So I obviously like it.

Elite:

--- Quote from: Numsgil ---Actually Elite, that's what I had in mind too

So I obviously like it.
--- End quote ---

Great minds think alike huh?  

And I am also thinking that if we chop bots up into many codules it will make it much easier to shuffle the DNA of two bots. Species could be determined by the root DNA compatability with the codules and root DNA (and DNA shuffling routines) of the next bot. This will also make it pretty hard for non-conspecs to have a child

Hey, should we let bots shuffle their own DNA using a special codule that controls sexual reproduction? Maybe this codule could be the X/Y sex-determining one too?

Numsgil:
I was thinking that codules that are paired together that aren't equivelant will fail at their cross-over events.

The result would be if you were to have two chromosomes not at all equal they could act as effective sex genes, since they would never cross over and would be essentially haploid.

Not quite analogous to real biology since real sex chromosomes are more two seperate chromosomes that are haploid instead of a single mismatched diploid chromosome, but the effect is similar.

shvarz:

--- Quote ---As I understand it, there is no correlation between phenotype fitness and dominant/recessive.

Assuming that evolution works primarily on phenotypes, I don't think it matters if a phenotype is dominant or recessive so long as there is a possibility of either.

Taking eye colour as an example, it could, from our human perspective, be the other way around. Blue could be alot of pigment. The phenotypes aren't well tied into the genotype's dominance.

Hence I don't think it matters if the ability to determine dominance/recession is arbitrary, because to phenotypes in nature it already is.
--- End quote ---

Well, but in nature it is the combined effect of both alleles that is being tested.  In your scenario the color of the eye switches randomly from "blue" to "dark".

Also, I don't really like that it works on whole codules.  Single genes would be better.

Numsgil:
Yes, I agree that the all or nothing dominance of whole "chromosomes" seems something of a failing.

That said, it's not without precedance.  Specifically a similar appraoch was used by "Kim, Kim, Lee, Cho and Lee-Kwang" in a paper called "Winner take all strategy for a Diploid Genetic Algorithm.”

I can't find a link to the paper, but the site I gave a while ago above says
--- Quote ---[They] employ a winner-take-all approach to diploid dominance. In their research, each chromosome is evaluated independently, and the fittest chromosome is expressed in the phenotype. Once two parents are selected, they perform crossover first on the two dominant chromosomes to generate one offspring, and then on the recessive chromosomes to generate the second offspring. In addition, they allow for some small probability of “dominance mutation”, I.e. the dominant and recessive chromosome switch places before crossover.
--- End quote ---

While not exactly similar, it does show someone else trying to use a all or nothing dominance/recessive method for a whole chromosome.

The problem is that the DNA for Darwinbots is about as far from biology as you can be and still call it "DNA".  As such, biological solutions are difficult to shoe horn onto the problem.  Bio DNA has several abstraction levels between code and effect that DB does not.  DB's DNA is more like the net effect of all the proteins in an organism instead of the DNA coding for the RNA that gets spliced together to form the proteins.
---------------------
I was thinking about what you suggested, having store simply add instead of replace.  While I think it's an interesting idea, I'm not sure if it addresses the problems of dominance/recessive for three reasons:

1.  Values in Darwinbots for memory locations aren't normalized.  For instance, *.eyeX returns values up to about 100.  *.aim gives values in the range [0, 1256], tielen could potentially go up to 1000, etc, repro takes values in the range [1, 99], delgene takes potentially values from 0 to infinity, though realistically it's probably in the range [1,100].  refxpos and refypos range the whole gamut from [0, 32000].

As a result, it's difficult to assume that bots with larger values are trying "harder".  It becomes somewhat difficult to provide a strictly downard force.  This is sort of a weak reason I'll admit.

2.  It works on stores instead of "genes".  Whereas my idea suffers from applying the dominance/recessive to too high above the gene level, you're idea works below the abstract gene level.  It's just trading one potential problem for another in this regard.

3.  If two genes both say to turn 10 degrees, I think most of us would expect the bot to turn 10 degrees instead of 20.  Several genes that all agree with each other should provide a reinforcement for the behavior instead of amplification.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version