Package Bio :: Package GA :: Package Crossover :: Module GeneralPoint
[hide private]
[frames] | no frames]

Module GeneralPoint

source code

Generalized N-Point Crossover.

For even values of N, perform N point crossover (select N/2 points each in the two genomes, and alternate)

For odd values of N, perform symmetric N+1 point crossover (select N/2 points for both genomes)

N-Point introduction (my notation):

| genome 1:    A-----B-----C-----D-----E-----F-----G
| genome 2:    a=====b=====c=====d=====e=====f=====g
|
| 2-point, symmetric (points=1):
|              A-----B-----C- 1 -D-----E-----F-----G
|              a=====b=====c= 2 =d=====e=====f=====g
| returns: (ABCdefg, abcDEFG)
|
| 2-point, asymmetric (points=2):
|              A-----B- 1 -C-----D-----E-----F-----G
|              a=====b=====c=====d=====e= 2 =f=====g
| returns: (ABfg, abcdeCDEFG)

and for the drastic (n can be arbitrary to the length of the genome!):

| 12-point, symmetric (points=11):
|              A- 1 -B- 2 -C- 3 -D- 4 -E- 5 -F- 6 -G
|              a= 7 =b= 8 =c= 9 =d= 10 e= 11 f= 12 g
| returns: (AbCdEfG, aBcDeFg)
| (note that points=12 will yield the same result, but 11
|  may be somewhat faster)
Classes [hide private]
  GeneralPointCrossover
Perform n-point crossover between genomes at some defined rates.
  TwoCrossover
Helper class for Two Point crossovers.
  InterleaveCrossover
Demonstration class for Interleaving crossover.
Variables [hide private]
  __package__ = 'Bio.GA.Crossover'