Code center > Suggestions

.sexrepro reimplemented in 2.43.1

<< < (2/11) > >>

Numsgil:

--- Quote from: EricL ---I fail to see how the crossover command is overly complicated.  In fact it strikes me as the epitomy of simplicity as it eligantly allows the the number and position of crossover points to be subject to and exposed to selection as well as forming the basis of a natural species definition.  That is, the probability that an offspring will be viable (contain a well cooridinated set of operating genes) decreases as the difference between the genomes and the relative positions of the crossover points of the parents increases.  IMHO, this creates an effective but natural barrier to sex between greatly disimilar organisms in that the DNA of their offspring are highly unlikly to code for a well adatped organism.  It also has other side effects such as making virus infected bots less likely to produce viable offspring via sex.
--- End quote ---

Look at real DNA.  There aren't explicit sections in the DNA that tell the strands to cross over during meiosis.  The strands are lined up by outside proteins as best they can be (the more similar the chromosomes, the more sections can get lined up), and "swaps" are made between strands that are lined up together.  In this way any point that has a homologue in the other chromosome is a potential crossing over site: inside a gene, at a gene boundary, or even in the junk DNA.

Other than implementation complexity, I see no reason that we can't use the exact same algorithm nature uses.


--- Quote ---My choice of the terms male and female is perhaps unfortunate and you may be reading more into my use of those terms than is warrented.  My thinking was thus:  for this kind of proximity-based sex (as opposed to egg based or other time-shifted reproduction) I thought it best that the offspring be "birthed" from one or the other of the parents.  The species level information (as we currently use the term) as well as genetic memory, space for the offspring and so on needs to come from only one of the parents, otherwise many things (such as graphs) will break or require significant changes.  I also thought continuing with the birth tie concept was appropriate in this case.  So, I'm using the term female for the parent from which this information comes.  I like my implimentation as I think it encourages some interesting dymanics w.r.t. sexual selection, but I'm open to discussion on what specific mechanism we use for choosing which parent this info should be based upon as well as the nrg/resoruce contribution split between parents.
--- End quote ---

No, I totally understood what you meant and agreed with what you're saying.  What I'm suggesting is that we separate the fertilization phase from the gestation phase.  And both bots that participate get "fertilized" (instead of arbitrarily picking one to be the "father" (ie: the parent who does not bear the cost of producing the child) and the other to be the mother (ie: the parent who does bear the child).

Bot bots get a meoisis-ified DNA strand in a buffer.  Either/Neither/Both bots can then initiate the "gestation" phase and create a child with that DNA strand (or default to a simple .repro if there is no strand in the buffer).  This gestation phase can occur 1 cycle, 100 cycles, or 100K cycles after fertilization occurs.  In this way bots control how they want to behave (do I bear a child or just give genetic information to another bot that may or may not use it), and when they want to have the baby (now might not be a good time to produce children, even if it is a good time to mate).

EricL:

--- Quote from: Numsgil ---Look at real DNA.  There aren't explicit sections in the DNA that tell the strands to cross over during meiosis.  The strands are lined up by outside proteins as best they can be (the more similar the chromosomes, the more sections can get lined up), and "swaps" are made between strands that are lined up together.  In this way any point that has a homologue in the other chromosome is a potential crossing over site: inside a gene, at a gene boundary, or even in the junk DNA.

Other than implementation complexity, I see no reason that we can't use the exact same algorithm nature uses.
--- End quote ---
I'm certainly open to this, but it sounds hard to implement and what's more, to implement "correctly".   It works in nature because the crossover machinery evolved along with the organism.  It's "inside" the system and subject to selection and mutation like the rest of the organism.   Selection can fien tune it.   I worry about placing unintended limitations on things by implimenting some hard coded homologue sequence alignment algorithm in the simulator that is not subject to selection.  How long should sequences be before beign considerred homologues?  What about slips?  What is the probability of swapping sequences if homologous and how should the degree of homology impact this?

I came up with the crossover operator as simple way to push as much control over the process into the DNA as possible.   Selection can operate on the frequecy and position of crossover points by operating on the cross base pair.  If you have a suggestion for how to do the same with your alignment scheme, I'm all ears, but I think it's important that as much of the alignment and corssover machinery as possible be "inside" the system and subject to selection.  


--- Quote from: Numsgil ---No, I totally understood what you meant and agreed with what you're saying.  What I'm suggesting is that we separate the fertilization phase from the gestation phase.  And both bots that participate get "fertilized" (instead of arbitrarily picking one to be the "father" (ie: the parent who does not bear the cost of producing the child) and the other to be the mother (ie: the parent who does bear the child).
--- End quote ---
I'm not really fond of using the .sexrepro value to make this determination but I can't really think of anything better at the moment.  It does allow for sexual selection and courtship.  Female bots (I.e. those who primarily use a reproductive strategy of putting more resources into fewer offspring and nuturing them directly I.e. passing on genetic memory through the birth tie and such) can choose to mate with perspective males or not.  They can evaluate the .sexrepro values of perspective mates and decide if the offer is large enough.  Male bots risk something by offerring too much in .sexrepro as a perspective mate might offer a lesser value and make them the female.  There is a prisoners delimma here I think that could lead to some interesting sexual selection dynamics and courtship rituals bewteen perspective mates where they prove their worth through other means before finially placing a value into .sexrepro....

I kind of lean towards using shots for fertilization and time-shifted sex as we already have a mechanism there for storing DNA in the shot.  It's the only place currently where we have a "buffer" to put DNA outside a bot.   Perhaps an egg layign female bot could reproduce asexually in a special "egg" mode where little happens until a sperm shot hits it...

I'm all for adding a gestation period for both sexual and asexual reproduction per the other topic on this.
 

--- Quote from: Numsgil ---Bot bots get a meoisis-ified DNA strand in a buffer.  Either/Neither/Both bots can then initiate the "gestation" phase and create a child with that DNA strand (or default to a simple .repro if there is no strand in the buffer).  This gestation phase can occur 1 cycle, 100 cycles, or 100K cycles after fertilization occurs.  In this way bots control how they want to behave (do I bear a child or just give genetic information to another bot that may or may not use it), and when they want to have the baby (now might not be a good time to produce children, even if it is a good time to mate).
--- End quote ---
I don't think a bot should be able to hang on to a mate's DNA in a buffer indefinantly.  Sperm only lives so long.  I think sexual reproduction should necessitate coordination in both time and space between parents, be that mammal sex as I've coded (where both need to be in the same place and the same time) or reptile/fish sex per egg offspring and sperm shots (where the male has to fertilize the egg and this act kicks off gestitation).

fulizer:
the idea of finding a superior fighter then reproducing with it by forcing it via viruses would be amazing and could cause a acccdentel evolution to go ahead millions of cycles is amasing.
also making spermbot shots would be cool they would swim off looking for something to fertilise.
also (again)using the type genes to make different genders would rule

shvarz:

--- Quote ---I don't think a bot should be able to hang on to a mate's DNA in a buffer indefinantly. Sperm only lives so long.
--- End quote ---

Maybe not indefinitely, but why not for a very long time? In some organisms females do grab a bunch of sperm and store it and then use it later on. For example cockroaches - females can produce several generations with sperm they once obtained from a male.

EricL:
Well, okay.  Gamet lifespan per se isn't really that big issue for me.  What's more important is the set of possible recepticals for DNA.  I'd like to avoid building some special uninspectable buffer in which gamet DNA resides until needed.  I'd rather use the two recepticals we have already: shots and bots.  If a bot wants to carry around gamet DNA from another for possible future use, it should perhaps tie to an egg/gamet cell specailly produced by a mate and carry it around.  Alternativly, we could devise some means for gamet shots to stick to or reside within bots for some period of time until utilized.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version