public class CrossoverExperimentalImpl extends java.lang.Object implements Crossover<HigherOrderMutant>
An enhanced version of crossover operation done by the GeneticAlgorithm
.
The idea was presented by Dr. Fadi Wedyan
Takes two HigherOrderMutant
s and mixes their FirstOrderMutant
s
based on the fitness values of these mutants.
The order of the resulted children is always the same of the parent.
It basically creates the first child using the most fit FOMs and the second child using the least fit FOMs.
If the parents does not have the same order (ex. crossover between a third order and second order mutants), the smaller order will always get the most fit children.
Example: the value inside [] is the fitness of the mutant
HOM_1 : FOM_1_1[0.5] , FOM_1_2[0.75] , FOM_1_3[0.3]
HOM_2 : FOM_2_1[0.4] , FOM_2_2[0.2]
result :
HOM_1 : FOM_1_2[0.75] , FOM_1_1[0.5]
HOM_2 : FOM_2_1[0.4] , FOM_1_3[0.3] , FOM_2_2[0.2]
Constructor and Description |
---|
CrossoverExperimentalImpl() |
Modifier and Type | Method and Description |
---|---|
java.util.List<HigherOrderMutant> |
crossover(HigherOrderMutant firstMutant,
HigherOrderMutant secondMutant) |
public java.util.List<HigherOrderMutant> crossover(HigherOrderMutant firstMutant, HigherOrderMutant secondMutant)
crossover
in interface Crossover<HigherOrderMutant>