Code center > Suggestions
Sexual Reproduction
Elite:
OK, here's my idea
Uses the .sexrepro sysvar (albeit very overhauled)
The process:
Phase 1) A bot stores a number in sexrepro. If there is another bot (bot 2) in front of bot 1 then continue. If not then do nothing
Phase 2) The program brings up bot 1 and bot 2's DNA and compares them, looking for areas of DNA that are common to both bots. If the bots share 70% (or some other threshold) of their DNA in common then procede to stage 3, otherwise stop the process
Phase 3) A special tie (sex tie) appears between bot 1 and 2
Phase 4) The program 'shuffles' the DNA of the two bots. Where the DNA of the two bots differs the program mixes the two bots together:
bot 1
10 .up store
bot 2
20 .tie store
baby:
20 .up store
... or another combination of the parent bots
Phase 5) When the program has the DNA of the progeny, it creates a baby bot between the two parent bots, in the middle of the sex tie, which becomes two birth ties, tying both parents to the offspring. Another option is that only one bot has to 'carry' the baby (mabe the one that fired the sex tie in the first place?)
Thw whole process may take many cycles
Problem is this method does not allow for different sexes or chromasomes, although the ideas of chromasomes and sexual reproduction fit well with codules.
Comments?
Anyone got any other ideas?
Numsgil:
The only issue is that it depends what scale you're imaging the bots are on.
Microscopic sexual reproducers actually fuse two haploid individuals into one single cell.
Macroscopic critters do this too, but since each parent has billions of other cells it's basically like a new individual is formed independant of the two parents.
I have a thread somewhere on here where I talked about this, let me see if I can find it.
Elite:
OK, how about, rather than having a new bot formed by sexual reproduction just fuse the two bots connected by the sex tie (but slowly), this also removes the hassle with the forming of the new bot
Is it possible make a routine that checks through the DNA for common patches and can give a % difference of DNA?
How about merging chromosomes, codules and sexual reproduction together
I have the beginings of an idea
How about having special 'sex codules'. There are various different types (ie. a female sex codule and a male sex codule), but you can use these to differentiate between male + female bots. They are then used like the X and Y chromasomes, and for coding mating routines.
You neen't be limited to two sexes, but it will be more impractical.
Then you use some kind of tags for DNA that link the two DNAs together so the program can shuffle them
Welwordion:
Hm checking the whole Dna might be to much work for the programm, although it might be preferable.
Alternatively it might just check for the number of genes and if they are equal it chooses between genes with the same number.
another posibility would be, mixing only the genes that are over 80% identical
Numsgil:
I think the user should get to decide what sort of scale he's imagining his bots are. Macroscopic Sexual Reproduction / Microscopic Sexual Reproduction.
If it's macro, do like what you first suggested. If it's micro, fuse the two bots.
I agree that codules and chromosomes should be able to be merged. If we could design some system that decide which of two nearly identical codules is "dominant", we could rig up something that would make diploidity possible, which is something of a personal desire I'm not sure others share (though I don't think others are against it either).
As to matching, I think shvarz and I were discussing it a while ago, let me see if I can dig up threads.
Okay, I'm a dismal failure, I can't seem to find it.
I think we were basically thinking we could simulate how real organisms perform cross-overs. You find small chucks of similar DNA and "zip" them up. Whenever there's a problem, you just stop zipping, or something like that.
Let me look again...
Navigation
[0] Message Index
[#] Next page
Go to full version