Module: GeneralPoint | Bio/GA/Crossover/GeneralPoint.py | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
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)
|