Code center > Suggestions

Recombination mechanism

<< < (4/7) > >>

shvarz:
Nums:

Here is what you are missing: Both parental genotype and the genotype with insertion are viable genotypes, tested by natural selection.  The genotype with insertion is more fit than parent's genotype.  We don't know what the fitness is for genotypes with insertion and additional mutations (they don't have to be lethal, I just gave it as an example, but they are very likely to be less fit).  The goal of sexual reproduction is to allow spread of the beneficial mutation in the population, so that it could get combined with another beneficial mutation.  At this point you want to reproduce the mutated region of DNA faithfully, you don't want to introduce additional mutations.  

Carlo:  I am all for shortcuts as long as programmers actually want to spend their time on it.  Does not look like Nums is too excited about doing double-work, though  <_<   It is a valid substitute for now and it will fix sexrepro to some degree.  As Nums pointed out, it has its weaknesses too - it is still gene oriented.  Also, it is not fool-proof for genomes that got significantly diverged during parallel evolution.  The UID system has its ups and downs too.  The major down is that it makes it more difficult to look at DNA with all those numbers getting in the way.  Here are the pluses:
1. Recombination
2. Backwards-compatible (all previous DNA's can still be used).
3. Allows alignment of genotypes to look for evolution patterns. Have you seen my file tracking evolution of Dom ternia?  I had to do all that alignment manually - major pain in the ass.
4. Can be optional - turn it off and the program removes all UIDs and keeps using the old notation.  UID system is really only useful for evolution sims, everyone else can still use the old system.
5. It automatically prevents cross-breeding between different species (even if they have exactly the same DNA).  Yet it still allows occasional breeding between organisms that evolved from common ancestor.

Numsgil:
If you can find a link on how real organisms line up their chromosomes (I looked but didn't find anything), that would rock!  I know it's some sort of polymerase, I just don't know how it works.

Ulciscor:
I have read this repeatedly tring to understand it all but I'm starting to think I can't lol.

I get you need to swap only similar genes for offspring not to be messed up. But my first thought was that similar genes would share activation conditions only. Does it matter what the body of the gene contains? Two genes with the same activation conditions will probably not be the same but will probably do the same sort of thing. So can't you just compare the conditions for genes?

Carlo:

--- Quote ---Does not look like Nums is too excited about doing double-work, though dry.gif It is a valid substitute for now and it will fix sexrepro to some degree.
--- End quote ---
I can assure you is a rapid work. By contrast, all other proposals seems much more difficult to realize, still are rather undefined, and involve much rework of the code in the rest of the program.


--- Quote ---As Nums pointed out, it has its weaknesses too - it is still gene oriented.
--- End quote ---
You can even split the coupled genes inside them, if you want, instead of chosing one or  another.


--- Quote ---Also, it is not fool-proof for genomes that got significantly diverged during parallel evolution.
--- End quote ---
This is correct, because individuals which have diverged too much should not interbreed. That's speciation.

On the other hand, your system

--- Quote ---5. It automatically prevents cross-breeding between different species (even if they have exactly the same DNA). Yet it still allows occasional breeding between organisms that evolved from common ancestor.
--- End quote ---
Which is a blatant violation of one of the principles of DB, that is, that species name is just a comfortable label and has no meaning inside the simulation.

As for the pluses of your system, probably there is something that you should know: that is, that there are standard and well known routines to calculate the common parts and similarities between to texts. And they are relatively fast. So, UID in principle is useless. Programmers commonly use text editors which are able to highlight the differences between two source codes. There are many bioinformatic tools that calculate the differences between two or many textfiles or genefiles.

For example:
gendistance: this is free:
http://monod.uwaterloo.ca/downloads/gencompress/
calculates the distance matrices between a number of textfiles. Then you can build a phylogenetic tree. I used it once for DarwinBots (in conjunction with phylip I think). (oops.. now that I remember... I even made a tool to automatically build archives to pass to gendistance... )
And here you can find a wide list of free tools for comparing text files:
http://www.thefreecountry.com/programming/...omparison.shtml

Carlo:
By the way, this is an example of a phylogenetic tree generated with the data from an internet shared simulation (about one year and a half ago, maybe). Each leaf of the tree is a robot (all of the same species), the numbers stand for generation and mutations number. The tree is unrooted (every leaf can be taken as root). The starting data were the pure and simple dnas of the robots.

--- Code: ---                                        +---------------------1  
                           +------------8                     +1c-145-95
                           !            !  
                           !            +---------------------1c-119-77
                 +--------15  
                 !         !                     +-----------1c-154-102
                 !         !   +-----------------4  
                 !         !   !                 +-----------1c-156-103
                 !         +--13  
      +---------20             !             +----------------1c-164-107
      !          !             +-------------7  
      !          !                           +----------------1c-168-120
      !          !  
      !          !               +---------------------------1c-189-118
      !          +--------------11  
      !                          +---------------------------1c-198-139
  +--24  
  !   !                                               +---------1c-225-155
  !   !                +------------------------------2  
  !   !          +----19                              +---------1c-229-156
  !   !          !     !  
  !   !  +------21     +---------------------------------------1c-233-162
  !   !  !       !  
  !   !  !       !                                   +---------1c-235-150
  !   +-23       +-----------------------------------3  
  !      !                                           +---------1c-235-156
  !      !  
  !      !                 +-----------------------------------1c-236-156
  !      +----------------16  
  !                        +-----------------------------------1c-238-165
-26  
  !                             +-----------------------------1c-201-138
  !                   +--------12  
  !                   !         +-----------------------------1c-218-154
  !         +--------18  
  !         !         !                          +------------1c-211-142
  !         !         +--------------------------5  
  !         !                                    +------------1c-212-148
  !   +----22  
  !   !     !                 +------------------------------1c-242-172
  !   !     !           +----14  
  !   !     !           !     !                +-------------1c-245-176
  !   !     !           !     +----------------6  
  !   !     +----------17                      +-------------1c-254-185
  +--25                 !  
      !                 !         +--------------------------1c-257-178
      !                 +--------10  
      !                           +--------------------------1c-265-189
      !  
      !                            +--------------------------1c-265-192
      +----------------------------9  
                                   +--------------------------1c-266-180
--- End code ---

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version