public class CrossoverPermutationOnePoint extends Object implements CrossoverPermutation
Crossover for the PermutationGenotype.
This operator takes sublist of the first permutation from the beginning to a random cut point and fills the remaining elements from the second permutation.
Given two permutations
1 2 3 4 5 6 7 8 and 8 7 6 5 4 3 2 1.
This results, for instance, in
1 2 3 4 5 8 7 6 or 1 2 8 7 6 5 4 3.
Additionally, a rotation value defines if the initial permutation are
randomly rotated. With the rotation possible results would be
4 5 6 8 7 3 2 1 and 7 8 1 2 4 3 6 5.
| Constructor and Description |
|---|
CrossoverPermutationOnePoint(Rand random,
boolean rotation)
Constructs a new
CrossoverPermutationOnePoint. |
| Modifier and Type | Method and Description |
|---|---|
Pair<PermutationGenotype<?>> |
crossover(PermutationGenotype<?> p1,
PermutationGenotype<?> p2)
Performs a crossover for two
Genotype parents. |
@Inject public CrossoverPermutationOnePoint(Rand random, boolean rotation)
CrossoverPermutationOnePoint.random - the random number generatorrotation - use rotationpublic Pair<PermutationGenotype<?>> crossover(PermutationGenotype<?> p1, PermutationGenotype<?> p2)
CrossoverGenotype parents. The resulting pair
of Genotype offspring is returned.crossover in interface Crossover<PermutationGenotype<?>>p1 - The first parent genotype for the crossoverp2 - The second parents genotype for the crossover