- Since:
- 4.1
- Version:
- 4.1
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> double[]crowdingDistance(BaseSeq<? extends Vec<T>> set) The crowding distance value of a solution provides an estimate of the density of solutions surrounding that solution.static <T> double[]crowdingDistance(BaseSeq<? extends T> set, ElementComparator<? super T> comparator, ElementDistance<? super T> distance, ToIntFunction<? super T> dimension) The crowding distance value of a solution provides an estimate of the density of solutions surrounding that solution.static intdominance(double[] u, double[] v) Calculates the Pareto Dominance of the two vectors u and v.static intdominance(int[] u, int[] v) Calculates the Pareto Dominance of the two vectors u and v.static intdominance(long[] u, long[] v) Calculates the Pareto Dominance of the two vectors u and v.static <C extends Comparable<? super C>>
intdominance(C[] u, C[] v) Calculates the Pareto Dominance of the two vectors u and v.static <T> intdominance(T[] u, T[] v, Comparator<? super T> comparator) Calculates the Pareto Dominance of the two vectors u and v.static <V> intdominance(V u, V v, int dimensions, ElementComparator<? super V> comparator) Calculates the Pareto Dominance of the two vectors u and v.Return the elements, from the given inputset, which are part of the pareto front.static <T> ISeq<T> front(BaseSeq<? extends T> set, Comparator<? super T> dominance) Return the elements, from the given inputset, which are part of the pareto front.static <T> int[]Calculates the non-domination rank of the given inputset, using the natural order of the elements as dominance measure.static <T> int[]rank(BaseSeq<? extends T> set, Comparator<? super T> dominance) Calculates the non-domination rank of the given inputset, using the givendominancecomparator.
-
Method Details
-
crowdingDistance
The crowding distance value of a solution provides an estimate of the density of solutions surrounding that solution. The crowding distance value of a particular solution is the average distance of its two neighboring solutions.- Type Parameters:
T- the vector type- Parameters:
set- the point set used for calculating the crowding distance- Returns:
- the crowded distances of the
setpoints - Throws:
NullPointerException- if the inputsetisnullIllegalArgumentException- ifset.get(0).length() < 2- See Also:
- API Note:
- Calculating the crowding distance has a time complexity of
O(d*n*log(n)), wheredis the number of dimensions andnthesetsize.
-
crowdingDistance
public static <T> double[] crowdingDistance(BaseSeq<? extends T> set, ElementComparator<? super T> comparator, ElementDistance<? super T> distance, ToIntFunction<? super T> dimension) The crowding distance value of a solution provides an estimate of the density of solutions surrounding that solution. The crowding distance value of a particular solution is the average distance of its two neighboring solutions.- Type Parameters:
T- the vector type- Parameters:
set- the point set used for calculating the crowding distancecomparator- the comparator which defines the (total) order of the vector elements ofTdistance- the distance of two vector elementsdimension- the dimension of vector typeT- Returns:
- the crowded distances of the
setpoints - Throws:
NullPointerException- if one of the arguments isnull- See Also:
- API Note:
- Calculating the crowding distance has a time complexity of
O(d*n*log(n)), wheredis the number of dimensions andnthesetsize.
-
rank
Calculates the non-domination rank of the given inputset, using the natural order of the elements as dominance measure.- Type Parameters:
T- the element type- Parameters:
set- the input set- Returns:
- the non-domination rank of the given input
set - API Note:
- Calculating the rank has a time complexity of
O(n^2, wherenthesetsize.Reference: Kalyanmoy Deb, Associate Member, IEEE, Amrit Pratap, Sameer Agarwal, and T. Meyarivan. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II, IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, VOL. 6, NO. 2, APRIL 2002.
-
rank
Calculates the non-domination rank of the given inputset, using the givendominancecomparator.- Type Parameters:
T- the element type- Parameters:
set- the input setdominance- the dominance comparator used- Returns:
- the non-domination rank of the given input
set - API Note:
- Calculating the rank has a time and space complexity of
O(n^2, wherenthesetsize.Reference: Kalyanmoy Deb, Associate Member, IEEE, Amrit Pratap, Sameer Agarwal, and T. Meyarivan. A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II, IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, VOL. 6, NO. 2, APRIL 2002.
-
front
Return the elements, from the given inputset, which are part of the pareto front. TheComparableinterface defines the dominance measure of the elements, used for calculating the pareto front.Reference: E. Zitzler and L. Thiele. Multiobjective Evolutionary Algorithms: A Comparative Case Study and the Strength Pareto Approach, IEEE Transactions on Evolutionary Computation, vol. 3, no. 4, pp. 257-271, 1999.
- Type Parameters:
T- the element type- Parameters:
set- the input set- Returns:
- the elements which are part of the pareto set
- Throws:
NullPointerException- if one of the arguments isnull
-
front
Return the elements, from the given inputset, which are part of the pareto front.Reference: E. Zitzler and L. Thiele. Multiobjective Evolutionary Algorithms: A Comparative Case Study and the Strength Pareto Approach, IEEE Transactions on Evolutionary Computation, vol. 3, no. 4, pp. 257-271, 1999.
- Type Parameters:
T- the element type- Parameters:
set- the input setdominance- the dominance comparator used- Returns:
- the elements which are part of the pareto set
- Throws:
NullPointerException- if one of the arguments isnull
-
dominance
Calculates the Pareto Dominance of the two vectors u and v.- Type Parameters:
C- the element type of vector u and v- Parameters:
u- the first vectorv- the second vector- Returns:
1if u ≻ v,-1if v ≻ u and0otherwise- Throws:
NullPointerException- if one of the arguments isnullIllegalArgumentException- ifu.length != v.length- See Also:
-
dominance
Calculates the Pareto Dominance of the two vectors u and v.- Type Parameters:
T- the element type of vector u and v- Parameters:
u- the first vectorv- the second vectorcomparator- the element comparator which is used for calculating the dominance- Returns:
1if u ≻ v,-1if v ≻ u and0otherwise- Throws:
NullPointerException- if one of the arguments isnullIllegalArgumentException- ifu.length != v.length- See Also:
-
dominance
Calculates the Pareto Dominance of the two vectors u and v.- Parameters:
u- the first vectorv- the second vector- Returns:
1if u ≻ v,-1if v ≻ u and0otherwise- Throws:
NullPointerException- if one of the arguments isnullIllegalArgumentException- ifu.length != v.length- See Also:
-
dominance
Calculates the Pareto Dominance of the two vectors u and v.- Parameters:
u- the first vectorv- the second vector- Returns:
1if u ≻ v,-1if v ≻ u and0otherwise- Throws:
NullPointerException- if one of the arguments isnullIllegalArgumentException- ifu.length != v.length- See Also:
-
dominance
Calculates the Pareto Dominance of the two vectors u and v.- Parameters:
u- the first vectorv- the second vector- Returns:
1if u ≻ v,-1if v ≻ u and0otherwise- Throws:
NullPointerException- if one of the arguments isnullIllegalArgumentException- ifu.length != v.length- See Also:
-
dominance
Calculates the Pareto Dominance of the two vectors u and v.- Type Parameters:
V- the vector type- Parameters:
u- the first vectorv- the second vectordimensions- the number of vector elementscomparator- the comparator used for comparing the vector elements- Returns:
1if u ≻ v,-1if v ≻ u and0otherwise- Throws:
NullPointerException- if one of the arguments isnull- Since:
- 5.2
-