Author Topic: Sexual Reproduction  (Read 12457 times)

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Sexual Reproduction
« Reply #30 on: April 20, 2006, 04:47:12 PM »
Quote
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.

This can be easily avoided using existing DNA rules.  The second gene can check what is already stored in the location it wants to modify and adjust for that.  So in your example the second gene would subtract the value stored in .aimsx from the value it thinks needs to be stored and store that.  

Say gene 1 stored 10 in .aimsx  and gene 2 thinks that the value should be 30.  It goes

30 *.aimsx  sub .aimsx store

this will subtract 10 from 30 and write 20 into aimsx bringing the value to the necessary 30.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Welwordion

  • Bot Destroyer
  • ***
  • Posts: 325
    • View Profile
Sexual Reproduction
« Reply #31 on: April 20, 2006, 06:06:50 PM »
Just add the values and half them, that would be easier fo numbers that relate to quantity only the reading of memory locations stays problematic. (up +aimdx= sx <--- rather strange)

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sexual Reproduction
« Reply #32 on: April 20, 2006, 08:03:49 PM »
What if there are then three values being stored there.  Or eight?  Or a million?

shvarz - My point #2 still holds then even if 1 and 3 can be worked around within the DNA.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sexual Reproduction
« Reply #33 on: April 21, 2006, 12:31:58 PM »
Thought about it in terms of implementation and see another issue:
 
 If you are just having store be additive, I'm assuming you're executing both codules in a diploid pair, right?
 
 How do you decide which one gets to go first and which one gets to go last.  The one that goes last has the potential to overwrite any that come before (*.up - 10 add .up store), effectively making it somewhat "dominant".  We run into the same problem as before.
 
 Again, I think additive store is an interesting idea, I just don't think it solves the problem of dominant/recessive.
« Last Edit: April 21, 2006, 12:32:27 PM by Numsgil »

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Sexual Reproduction
« Reply #34 on: April 21, 2006, 12:42:24 PM »
I can't say I understand the #2 completely.  I just re-read it and I still don't get it.  Are you saying that ideally you would want "dominancy" to apply specifically to a gene?  As in "to a certain string of DNA commands"?  That does not make much sense.  Dominancy is a term applied to the phenotipic outcome of gene expression.  The term relates to phenotype, not to genotype.

And it does not have to relate to two copies of the same gene located on two paired chromosomes.  In fact you can have several genes on the same chromosome and one of them would be dominant.  Or you can have two completely different genes and one of them would have a dominant effect over the other.

Say you have a chain of reactions A->B->C with enzymes AB and BC performing the two reactions and expressed from two different genes.  Deletion or mutation in the gene AB (stopping the reaction A->B) will have dominant effect on this process over anything that might happen in gene BC.  S

So dominancy should work on stores, which is the analog of phenotype in DB.

There is one example where things go the way you envision them.  Human females have two X chromosomes, but only one of them is active.  The other one is completely inhibited.  I'm not sure how it is decided which one is inhibited.  I think they "duke it out" early in development and then it stays that way for the rest of the person's life.  There the dominancy indeed works on "above the gene" level.  But it is more of an exception than the rule.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sexual Reproduction
« Reply #35 on: April 21, 2006, 12:48:05 PM »
Bots' DNA is somewhat phenotype in nature, which is what I'm getting at.  There isn't as strong a segregation between phenotype and genotype in Darwinbots as there is in real life.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Sexual Reproduction
« Reply #36 on: April 21, 2006, 12:54:38 PM »
Only as far as senses go.  The reaction to stimuli is storing values into memory location and there the phenotype is clearly separated from genotype.  Or am I missing something?
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sexual Reproduction
« Reply #37 on: April 21, 2006, 01:05:27 PM »
Bot DNA is inherantly linear, with memory locations directly effecting the bot's behavior.

Real DNA is inherantly parallel, with all sorts of processes going on at once.  Proteins made in the DNA also stick around even after the transcription of that protein has stopped.

Real phenotypes are a result of all those proteins and their dosages interacting.

Bot phenotypes are the result of the values in memory at the end of a cycle.  There are no long term effects and the last store has far more power than the first store in deciding the action of the bot (even with additive stores).

I'm just not sure you can parallel the Bots' DNA and real DNA and use a solution that relies on parallelity that developed on a parallel DNA strand (real life).

Also, I'm not sure if you saw this post, I think I wrote it while you were replying.  Clicky.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Sexual Reproduction
« Reply #38 on: April 21, 2006, 01:24:59 PM »
Quote
There are no long term effects and the last store has far more power than the first store in deciding the action of the bot

That's a good point, but I don't think this blurs the line between phenotype and genotype.  It only makes the phenotype to change so much faster.

Quote
Bot DNA is inherantly linear, with memory locations directly effecting the bot's behavior.

Yes, and right now any gene that goes last is by definition dominant.  The additive store would be a step in the right direction then, because by default the genes are going to cooperate, not compete.  Only with the trickery they will become dominant and only those that go last.  I don't see it as a big problem, after all if bots choose to do this, then there is a need for the gene to grab all the power and that's OK.  Because of that we don't have "decide which one gets to go first and which one gets to go last."  By default it would not matter.

I want to point out that the additive store is already available through the same trickery.  So you could argue that if bots need it, then they can evolve it.  Yet I think that making the additive store to be default is the step in the right direction.

Quote
I'm just not sure you can parallel the Bots' DNA and real DNA and use a solution that relies on parallelity that developed on a parallel DNA strand (real life).

With this I agree completely.  We need to make a list of what we think the goals of introducing a more detailed rules for "dominance" are and then go from there and pick the most sensible solution for those goals.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sexual Reproduction
« Reply #39 on: April 21, 2006, 01:38:15 PM »
That's probably a good idea.  My goal with introducing dominance and multi-ploidy is to allow large stretches of potentially functional DNA to remain in the population without being expressed.

A major drawback to most ALife sexual reproduction, in my eyes, is the use of haploid genomes only.  Creatures 3 is a good example of this.  It serves its purpose, but reverses the order of several actions.

In real life DNA during meiosis crosses over with itself inside the parent.  In ALife haploid sexual reproduction, the two parents' DNA crosses over against each other.

Assuming that it doesn't matter (which is obviously the decision made by many alife designers, and while I don't agree it's obviously good enough for most purposes) I think in DB the answer would be to use the current haploid DNA strand, perform the cross overs, and give each sex partner one of the two new DNA strand to decide what to do with it (should I make this into a baby or not).

Of course, doing this means that you can only simulate macroscopic sex.  Fusing two cells becomes a little more difficult, since you must pick one of the two new strands to use for the genome.  I guess you could just choose randomly.

The main advantage of diploidness I see is that it makes sexual reproduction in DB closely analogous to real life.  We wouldn't be throwing the baby out with the bathwater, so to speak.
« Last Edit: April 21, 2006, 01:39:58 PM by Numsgil »

Offline Endy

  • Bot Overlord
  • ****
  • Posts: 852
    • View Profile
Sexual Reproduction
« Reply #40 on: April 24, 2006, 05:36:29 PM »
I was thinking maybe allow the bots to select which genes from amongst the two dnas to express. It'd have to be limited to the birthing cycle to limit continual use.

We could also have it where the dnas are mixed but limited in size to the size of largest genome of the two bots. This way we wouldn't have the continual gene addition that plagues bots using viruses to spread genes.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Sexual Reproduction
« Reply #41 on: April 24, 2006, 05:44:28 PM »
But how do the bots know which of the two to express?  What sort of differentiation can we give the DNAs from the bots' perspective.