Crossover methods


After two parents have been selected by the selection method, crossover takes place. Crossover is an operator that mates the two parents (chromosomes) to produce two offsprings. The two newborn chromosomes may be better then their parents and the evolution process may continue. The crossover in carried out according to the crossover probability.

Here are the crossover methods implemented by optiGA:

One point
A random crossover point is selected. The first part of the first parents is hooked up with the second part of the second parent to make the first offspring. The second offspring is build from the first part of the second parent and the second part of the first parent (the crossover point is noted by the | sign):

Parent #1: 011101|0101
Parent #2: 100111|0111

Offspring #1: 011101|0111
Offspring #2: 100111|0101
Implemented for binary genes only!

Two points
The two points crossover operator differs from the one point crossover in the fact that two crossover points are selected randomly:

Parent #1: 011|101|0101
Parent #2: 100|111|0111

Offspring #1: 011|101|0111
Offspring #2: 100|111|0101
Implemented for binary genes only!
In the uniform crossover each bit/gene is selected randomly, either from the first parent or from the second one:

Parent #1: 0111010101
Parent #2: 1001110111

Offspring #1: 0111010111
Offspring #2: 1001110101

This crossover operator is a kind of linear combination of the two parents that uses the following equations for each gene:

Offspring #1 = parent1 - b * (parent1 - parent2)
Offspring #2 = parent2 + b * (parent1 - parent2)
Were b is a random value between 0 and 1.
Implemented for real and integers genes only!

User defined
The user defined crossover method is the most powerful one. With this method the user may code his own crossover operator, so the sky is the limit.