public class UFTournamentSelector<G extends Gene<?,G>,C extends Comparable<? super C>> extends Object implements Selector<G,C>
The selection of unique fitnesses lifts the selection bias towards over-represented fitnesses by reducing multiple solutions sharing the same fitness to a single point in the objective space. It is therefore no longer required to assign a crowding distance of zero to individual of equal fitness as the selection operator correctly enforces diversity preservation by picking unique points in the objective space.
Reference: Félix-Antoine Fortin and Marc Parizeau. 2013. Revisiting the NSGA-II crowding-distance computation. In Proceedings of the 15th annual conference on Genetic and evolutionary computation (GECCO '13), Christian Blum (Ed.). ACM, New York, NY, USA, 623-630. DOI= 10.1145/2463372.2463456
Constructor and Description |
---|
UFTournamentSelector(Comparator<? super C> dominance,
ElementComparator<? super C> comparator,
ElementDistance<? super C> distance,
ToIntFunction<? super C> dimension)
Creates a new
UFTournamentSelector with the functions needed for
handling the multi-objective result type C . |
Modifier and Type | Method and Description |
---|---|
static <G extends Gene<?,G>,T,V extends Vec<T>> |
ofVec()
Return a new selector for the given result type
V . |
ISeq<Phenotype<G,C>> |
select(Seq<Phenotype<G,C>> population,
int count,
Optimize opt) |
public UFTournamentSelector(Comparator<? super C> dominance, ElementComparator<? super C> comparator, ElementDistance<? super C> distance, ToIntFunction<? super C> dimension)
UFTournamentSelector
with the functions needed for
handling the multi-objective result type C
. For the Vec
classes, a selector is created like in the following example:
new UFTournamentSelector<>(
Vec<T>::dominance,
Vec<T>::compare,
Vec<T>::distance,
Vec<T>::length
);
dominance
- the pareto dominance comparatorcomparator
- the vector element comparatordistance
- the vector element distancedimension
- the dimensionality of vector type C
ofVec()
public static <G extends Gene<?,G>,T,V extends Vec<T>> UFTournamentSelector<G,V> ofVec()
V
. This method is
a shortcut for
new UFTournamentSelector<>(
Vec<T>::dominance,
Vec<T>::compare,
Vec<T>::distance,
Vec<T>::length
);
G
- the gene typeT
- the array type, e.g. double[]
V
- the multi object result type vectorV
© 2007-2018 Franz Wilhelmstötter (2018-10-28 17:23)