Code center > Suggestions

Sexual Reproduction Focus Group

<< < (7/11) > >>

Griz:
This is what I have been trying to say all along Elite ...
keep it simple. Do the basics. But let the bots ...
and their relationship with the enviornment evlove.
Let's go for evolution, not intellegent design!!!
And yes, sexual reproduction works, [at least in our world] ...
it's a good thing. I have no problem at all with that.
We do want to incorporate sexual reproduction.
What I object to is that folks think it is a 'choice' that organisms
make that is based upon something other than survival of the fittest.
The peacocks tail, and other such 'seemingly' nonutilitarian frills ...
continues to exist because it demonstrates that an organism has
prospered in the face of evolutionary pressure ...
that it can afford such luxuries. 'Look at me!"
No animal could afford such luxuries that serve no utilitarian
pupose unless it had indeed become proficient at survival ...
had evolved to become a healthy and viable organism.
It is something that worked. Period.
 
This same thing underlies why humans are unconsciously attracted  
to other humans, to what they find 'beautiful' and attractive in another.
It isn't so much a 'choice' as it is the organisim recognizing the
potential mate is healthy and strong.
If you want to call that 'choice' ... ok.  
But it is subconscious, not a conscious 'rational' choice.
These traits and attractions exist and continue to exist only because
they continue to work.
And it is something that has evloved ...
not something designed in from the beginning.

Numsgil:
First, none of you are getting the way sexrepro was programmed right, and so your conclusions are flawed.  This is classic sexrepro in a nutshell:

0.  Sex is performed between two bots.  The first bot is the one that initiated the sexual reproduction.  The next bot is the bot that's next in the reproduction array.  Who's next in the reproduction array?  The last bot that the initiating bot saw in eye5.  If this other bot is not sexually reproducing, sexrepro shouldn't occur.

1.  Both bots' centers must be within 2 robsizes of each other.  ie: they basically have to be within 1 robot length of touching.

2.  Both bots DO NOT have to be sexreproing at the same time.  sexrepro isn't cleared every cycle.  It's only cleared if the bot successfully sexrepros.  Thus an unwary bot could find itself forced to reproduce and contribute all of its energy to an offspring.  This could be used as a weapon.

3.  Properties are determined by how much each parent contributed during sex.  It handles poorly things like species lineage, generation, robot color, and other properties that would probably make more sense by remembering both parents.  This basically means that any person trying to figure out what's going on in their sexrepro sim is going to be very confused.

4.  The parents' DNA is shuffled every other gene.  That means 1st gene comes from mom, second from dad, third from mom, fourth from dad, etc.  Any leftover DNA (one parent has more genes than another) is either slapped on the end of the child or not (depending on a 50/50).

5.  Ties are formed between mom and child and dad and child.

The problem with the original sexrepro:

1.  Selection of mates is too limited.  Sexual reproduction needs to be a mostly consensual.  You need to be sure exactly who you're mating with.

2.  The code was a little sloppy, resulting in it not being maintained, and hence buggy.

3.  The code was gene-centric.  Post 2.4, the only gene centric DNA commands relate to viruses.  The gene structure is just too impossibly complex to do this anymore in a meaningful way.  Also simply lining up genes and picking one from either one DNA or the other won't work effectively when you begin to consider large insertions, deletions, and reversals (mutation types that do not cause catastrophic failure in real organisms).  If a bot is missing gene 2 you would hope that genes 3, 4, and 5 would still cross over effectively.  You hope that gene 2 might even be replaced by a sexual encounter.  This isn't possible if you just mindlessly shuffle the 1st genes followed by the second genes, etc.

4.  Fails to model any but the macroscopic version of sex.  By which I mean a mother and a father copulating to produce a new unique organism. As opposed to microscopic sex that involves two organisms fusing, their haploid DNA becoming diploid.  Both should evidently be very different.
----------------------------------------------------
The following is no longer necessarily fact, but is my own personal opinion:

Crossing Over:
The best solution is to line up the DNA based on similar sequences instead of similar positions.  You then "twist" the strands in a few random places to shuffle it a bit.  Very simple swapping.

This is not complicated.  It is in fact ingeniously simple when you consider the number of programatic hurdles to overcome.  Any complication people percieve is entirely in their minds.  It is in no way more complicated than "swap every other gene", or something similar.

There is a reason the mechanisms of sex have been maintained so well over the course of eukaryotic evolution.

Mechanics of Sex:
Sex needs to be 95% consenual.  By which I mean RAPE has a place evolutionarily speaking, but it should be a little difficult.  The current system models this reasonably well since sexrepro isn't cleared, but I think clearing it every cycle would be better.

Both bots should be tied to each other.  Shots are simply not personal enough.  Mating needs to be topologically close, both in time and space.  (both bots consent at the same cycle within a set distance boundary, preferablly in indirect or direct physical contact).

Sex should have at least two basic possible results:
1.  Both bots fuse, the resulting bots' DNA is an amalgamate of both parent bots.  Preferably this would be diploid, and thus keep both parent's DNA intact (so an intact seperation would be possible), but this is probably just wishful thinking.  This models the sort of sex we see in funguses and things like sperm and eggs.

2.  (Either one or both) bots produce a new unique child with an amalgamate of the two parent's DNA.

Other possibilities should be obvious (multiple parents, for instance), even if not practical to implement or based in reality.  But the two above would need to be both included for me to call it reasonable effort.

Carlo:

--- Quote ---0.  Sex is performed between two bots.  The first bot is the one that initiated the sexual reproduction.  The next bot is the bot that's next in the reproduction array.  Who's next in the reproduction array?  The last bot that the initiating bot saw in eye5.  If this other bot is not sexually reproducing, sexrepro shouldn't occur.
1.  Both bots' centers must be within 2 robsizes of each other.  ie: they basically have to be within 1 robot length of touching.
--- End quote ---
This makes sense. Not only they have to physically near, they also have to be watching each other. Romantic, isn't it? This allows a bot to know exactly who is he mating with, even if there are other bots around.


--- Quote ---2.  Both bots DO NOT have to be sexreproing at the same time.  sexrepro isn't cleared every cycle.  It's only cleared if the bot successfully sexrepros.  Thus an unwary bot could find itself forced to reproduce and contribute all of its energy to an offspring.  This could be used as a weapon.
--- End quote ---
This give bots more control. If they want, they CAN clear sexrepro at every cycle. It's a matter of choice.


--- Quote ---3.  Properties are determined by how much each parent contributed during sex.  It handles poorly things like species lineage, generation, robot color, and other properties that would probably make more sense by remembering both parents.  This basically means that any person trying to figure out what's going on in their sexrepro sim is going to be very confused.
--- End quote ---
This isn't a problem of the simulation in itself, but of its framework. Simply, DarwinBots wasn't designed to keep track of two parents per reproduction. Same for generation, the very concept can't apply to a sexual reproduction. Robot colors can be mixed, or inherited randomly, but hey, who cares? Anyway, minor problems here.


--- Quote ---4.  The parents' DNA is shuffled every other gene.  That means 1st gene comes from mom, second from dad, third from mom, fourth from dad, etc.  Any leftover DNA (one parent has more genes than another) is either slapped on the end of the child or not (depending on a 50/50)
--- End quote ---
.
This is the worst thing in sexrepro. It works as long as there aren't gene duplications or deletions, otherwise it is likely to shuffle off the genome some important gene shared by both robots. It should be substitued by an algorithm lining up similar genes in groups and then taking approximately half of the copies per group.

The problem with the original sexrepro:


--- Quote ---1.  Selection of mates is too limited.  Sexual reproduction needs to be a mostly consensual.  You need to be sure exactly who you're mating with.
--- End quote ---
You can, if you take care of your .sexrepro. And the lesson is: if you give it around to everybody, you can't blame society for being a teen mother.



--- Quote ---3.  The code was gene-centric.  Post 2.4, the only gene centric DNA commands relate to viruses.  The gene structure is just too impossibly complex to do this anymore in a meaningful way.  Also simply lining up genes and picking one from either one DNA or the other won't work effectively when you begin to consider large insertions, deletions, and reversals (mutation types that do not cause catastrophic failure in real organisms).  If a bot is missing gene 2 you would hope that genes 3, 4, and 5 would still cross over effectively.  You hope that gene 2 might even be replaced by a sexual encounter.  This isn't possible if you just mindlessly shuffle the 1st genes followed by the second genes, etc.
--- End quote ---
Well, the whole DarwinBots was gene-centric when I added sexrepro, and (to be honest) I don't even know what the actual dnas look like (or could look like). If genes aren't well separated anymore, then things get more complex. But the basic point should be the same: grouping similar sequences and then choosing randomly which to use in the new dna.


--- Quote ---4.  Fails to model any but the macroscopic version of sex.  By which I mean a mother and a father copulating to produce a new unique organism. As opposed to microscopic sex that involves two organisms fusing, their haploid DNA becoming diploid.  Both should evidently be very different.
--- End quote ---
That's a different problem. There are many things the actual repro and sexrepro fail to model, being high level commands that just fire an automated process. But until we focus on organisms behaviour and leave out the details, I don't think that there's any need to model low level sexual haploidy and diploidy. Bots are well defined individuals, like sheep or ants, so they aren't expected to fuse, but to mate.

----------------------------------------------------
The following is no longer necessarily fact, but is my own personal opinion:

--- Quote ---Crossing Over:
The best solution is to line up the DNA based on similar sequences instead of similar positions.  You then "twist" the strands in a few random places to shuffle it a bit.  Very simple swapping.

This is not complicated.  It is in fact ingeniously simple when you consider the number of programatic hurdles to overcome.  Any complication people percieve is entirely in their minds.  It is in no way more complicated than "swap every other gene", or something similar.
--- End quote ---
I'd start with this, which fixes the actual working of sexrepro without any major change at high level. Then you can add whatever you want, but before making great plans, I'd just fix what's broken.

Carlo:
Anyway, I'm leavin' for holidays. Will be back in a week or so.
Good bye!

Numsgil:

--- Quote from: Carlo ---This makes sense. Not only they have to physically near, they also have to be watching each other. Romantic, isn't it? This allows a bot to know exactly who is he mating with, even if there are other bots around.
--- End quote ---

Not exactly true, which is part of the peculiarity.

When a bot no longer sees any bot, the .lastopp (the bot it saw last) variable isn't reset.  Let's say that the bot it wanted to mate with managed to die before it could mate.  The other bot will still be pining away for bot #21, whose slot happends to be empty.  Since sexrepro isn't reset, it will keep trying to mate with bot #21.  Eventually, slot #21 will be filled again, and should that new bot be attempting to mate too, and happen to be relatively close, the bot will end up mating with that bot.

Likewise, it's possible that if bot A and B are mating, bot C could look at bot A and mate with it.  Or it could be that they form a threesome, with bot A taking DNA from bot B, who takes DNA from bot C who takes DNA from bot A.  Theres no code to deactivate a parent's sexrepro once another bot decides to mate with it until a child is formed, which means its possible a bot could find itself the parent of 5 or 6 children when it only mated once.

These peculiarities are only what I could see in the actual code.  There might be many others.


--- Quote ---This isn't a problem of the simulation in itself, but of its framework. Simply, DarwinBots wasn't designed to keep track of two parents per reproduction. Same for generation, the very concept can't apply to a sexual reproduction. Robot colors can be mixed, or inherited randomly, but hey, who cares? Anyway, minor problems here.
--- End quote ---

Minor problems yes, but problems that should be addressed, especially if you want to study the ancestry of a bot (which would be important for studying group genetic drift, or something similar).


--- Quote ---Well, the whole DarwinBots was gene-centric when I added sexrepro, and (to be honest) I don't even know what the actual dnas look like (or could look like). If genes aren't well separated anymore, then things get more complex. But the basic point should be the same: grouping similar sequences and then choosing randomly which to use in the new dna.
--- End quote ---

I'm not blaming you, it worked well when you first created it.  It's just outdated anymore.


--- Quote ---That's a different problem. There are many things the actual repro and sexrepro fail to model, being high level commands that just fire an automated process. But until we focus on organisms behaviour and leave out the details, I don't think that there's any need to model low level sexual haploidy and diploidy. Bots are well defined individuals, like sheep or ants, so they aren't expected to fuse, but to mate.
--- End quote ---

Many organisms live half of their life as a haploid individual and the other half as a diploid individual.  Both existances are well defined.  The most everyday example of such an organism is the Fern.  This alternation of generations is fundamental to many life cycles.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version