Class UFTournamentSelector<G extends Gene<?,G>,C extends Comparable<? super C>>
- java.lang.Object
-
- io.jenetics.ext.moea.UFTournamentSelector<G,C>
-
- All Implemented Interfaces:
Selector<G,C>
public class UFTournamentSelector<G extends Gene<?,G>,C extends Comparable<? super C>> extends Object implements Selector<G,C>
Unique fitness based tournament selection.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
- Since:
- 4.1
- Version:
- 4.1
-
-
Constructor Summary
Constructors Constructor Description UFTournamentSelector(Comparator<? super C> dominance, ElementComparator<? super C> comparator, ElementDistance<? super C> distance, ToIntFunction<? super C> dimension)
Creates a newUFTournamentSelector
with the functions needed for handling the multi-objective result typeC
.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <G extends Gene<?,G>,T,V extends Vec<T>>
UFTournamentSelector<G,V>ofVec()
Return a new selector for the given result typeV
.ISeq<Phenotype<G,C>>
select(Seq<Phenotype<G,C>> population, int count, Optimize opt)
-
-
-
Constructor Detail
-
UFTournamentSelector
public UFTournamentSelector(Comparator<? super C> dominance, ElementComparator<? super C> comparator, ElementDistance<? super C> distance, ToIntFunction<? super C> dimension)
Creates a newUFTournamentSelector
with the functions needed for handling the multi-objective result typeC
. For theVec
classes, a selector is created like in the following example:new UFTournamentSelector<>( Vec<T>::dominance, Vec<T>::compare, Vec<T>::distance, Vec<T>::length );
- Parameters:
dominance
- the pareto dominance comparatorcomparator
- the vector element comparatordistance
- the vector element distancedimension
- the dimensionality of vector typeC
- See Also:
ofVec()
-
-
Method Detail
-
select
public ISeq<Phenotype<G,C>> select(Seq<Phenotype<G,C>> population, int count, Optimize opt)
-
ofVec
public static <G extends Gene<?,G>,T,V extends Vec<T>> UFTournamentSelector<G,V> ofVec()
Return a new selector for the given result typeV
. This method is a shortcut fornew UFTournamentSelector<>( Vec<T>::dominance, Vec<T>::compare, Vec<T>::distance, Vec<T>::length );
- Type Parameters:
G
- the gene typeT
- the array type, e.g.double[]
V
- the multi object result type vector- Returns:
- a new selector for the given result type
V
-
-