org.apache.commons.math3.genetics

Class UniformCrossover<T>

• Type Parameters:
T - generic type of the AbstractListChromosomes for crossover
All Implemented Interfaces:
CrossoverPolicy

public class UniformCrossover<T>
extends Object
implements CrossoverPolicy
Perform Uniform Crossover [UX] on the specified chromosomes. A fixed mixing ratio is used to combine genes from the first and second parents, e.g. using a ratio of 0.5 would result in approximately 50% of genes coming from each parent. This is typically a poor method of crossover, but empirical evidence suggests that it is more exploratory and results in a larger part of the problem space being searched.

This crossover policy evaluates each gene of the parent chromosomes by chosing a uniform random number p in the range [0, 1]. If p < ratio, the parent genes are swapped. This means with a ratio of 0.7, 30% of the genes from the first parent and 70% from the second parent will be selected for the first offspring (and vice versa for the second offspring).

This policy works only on AbstractListChromosome, and therefore it is parameterized by T. Moreover, the chromosomes must have same lengths.

Since:
3.1
Version:
$Id: UniformCrossover.java 1385297 2012-09-16 16:05:57Z tn$