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'