Package org.opt4j.operator.crossover
Class CrossoverPermutationOnePoint
java.lang.Object
org.opt4j.operator.crossover.CrossoverPermutationOnePoint
- All Implemented Interfaces:
Operator<PermutationGenotype<?>>,Crossover<PermutationGenotype<?>>,CrossoverPermutation
- Direct Known Subclasses:
CrossoverPermutationDefault
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.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCrossoverPermutationOnePoint(Rand random, boolean rotation) Constructs a newCrossoverPermutationOnePoint. -
Method Summary
Modifier and TypeMethodDescriptioncrossover(PermutationGenotype<?> p1, PermutationGenotype<?> p2) Performs a crossover for twoGenotypeparents.
-
Field Details
-
random
-
rotation
protected final boolean rotation
-
-
Constructor Details
-
CrossoverPermutationOnePoint
Constructs a newCrossoverPermutationOnePoint.- Parameters:
random- the random number generatorrotation- use rotation
-
-
Method Details
-
crossover
Description copied from interface:CrossoverPerforms a crossover for twoGenotypeparents. The resulting pair ofGenotypeoffspring is returned.- Specified by:
crossoverin interfaceCrossover<PermutationGenotype<?>>- Parameters:
p1- The first parent genotype for the crossoverp2- The second parents genotype for the crossover- Returns:
- The resulting pair of offspring genotypes
-