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 choosing 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
    See Also:
    Crossover techniques (Wikipedia), Crossover (Obitko.com), Uniform crossover