Subsections

8.3.2 Crossover

Crossover is the merging of phenotypes of two individuals to form the genotype of a new individual. In the following four crossover operators are defined. The first three, namely one point, two point, and random crossover, are analogous to the operators for discrete variables, whereas the last one, point in the middle crossover, is only relevant to continuous variables.


8.3.2.1 One Point Crossover

The one point crossover operator takes two vectors $ (a_1,\ldots,a_n)$ and $ (b_1,\ldots,b_n)$ and yields two vectors

$\displaystyle (a_1,\ldots,a_k,b_{k+1},\ldots,b_n)$   and    
$\displaystyle (b_1,\ldots,b_k,a_{k+1},\ldots,a_n),$    

where $ 1\le k\le n-1$ and $ k$ is randomly chosen. This means that both vectors are split at the same position and assembled with swapped second parts.

8.3.2.2 Two Point Crossover

The two point crossover operator takes two vectors $ (a_1,\ldots,a_n)$ and $ (b_1,\ldots,b_n)$ and yields two vectors

$\displaystyle (a_1,\ldots,a_i,b_{i+1},\ldots,b_j,a_{j+1},\ldots,a_n)$   and    
$\displaystyle (b_1,\ldots,b_i,a_{i+1},\ldots,a_j,b_{j+1},\ldots,b_n),$    

where $ 1 \le i < j \le n-1$ and $ i$ and $ j$ are randomly chosen. This means that both vectors are split at the same two positions and assembled with swapped middle parts.

8.3.2.3 Random Crossover

The random crossover operator takes two vectors as input and yields two vectors of the same length as output. Each $ k$-th component of the first result vector is randomly chosen (with probability $ 1/2$) from the $ k$-th components of the input vectors. The second result vector consists of the other components not chosen for the first result vector. In a slightly different definition the result is only one vector of the two vectors of the previous definition.


8.3.2.4 Point in the Middle Crossover

This random crossover operator takes two vectors $ a$ and $ b$ as input and yields an output vector $ c$. For each component a real random number $ r_k$ from the interval $ [0,1]$ is chosen. Then the result vector has the components $ c_k := (1-r_k) a_k + r_k b_k$.

Clemens Heitzinger 2003-05-08