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
-
Constructor Summary
ConstructorDescriptionCrossoverPermutationOnePoint
(Rand random, boolean rotation) Constructs a newCrossoverPermutationOnePoint
. -
Method Summary
Modifier and TypeMethodDescriptioncrossover
(PermutationGenotype<?> p1, PermutationGenotype<?> p2) Performs a crossover for twoGenotype
parents.
-
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:Crossover
Performs a crossover for twoGenotype
parents. The resulting pair ofGenotype
offspring is returned.- Specified by:
crossover
in 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
-