next up previous

4.2.3 Population Recombination     continued...

A slightly more complex operator, first proposed by Cavicchio [8], is two point crossover in which two crossover points are randomly selected and the substrings between (and including) those positions are exchanged. If necessary, strings are treated as continuous rings. Thus, if crossover between points 6 (selected first) and 2 is proposed for strings

1 0 0 1 1 1 0 1

and

1 1 1 1 0 0 0 0,

the resulting offspring are

1 1 0 1 1 0 0 0

and

1 0 1 1 0 1 0 1.

Whereas, if crossover is between points 2 (selected first) and 6, the offspring are

1 1 1 1 0 0 0 1

and

1 0 0 1 1 1 0 0.

The even-handedness of two point crossover is appealing. There is no intuitive reason why right-hand bits should be exchanged more frequently than left-hand ones, unless the string represents the binary coding of a single integer or continuous variable, in which case, of course, the significance of individual bits decreases from left to right.