public final class Pareto extends Object
Modifier and Type | Method and Description |
---|---|
static <T> double[] |
crowdingDistance(Seq<? 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 <T> double[] |
crowdingDistance(Seq<? extends Vec<T>> set)
The crowding distance value of a solution provides an estimate of the
density of solutions surrounding that solution.
|
static <C extends Comparable<? super C>> |
dominance(C[] u,
C[] v)
Calculates the
Pareto Dominance of the two vectors u and v.
|
static int |
dominance(double[] u,
double[] v)
Calculates the
Pareto Dominance of the two vectors u and v.
|
static int |
dominance(int[] u,
int[] v)
Calculates the
Pareto Dominance of the two vectors u and v.
|
static int |
dominance(long[] u,
long[] v)
Calculates the
Pareto Dominance of the two vectors u and v.
|
static <T> int |
dominance(T[] u,
T[] v,
Comparator<? super T> comparator)
Calculates the
Pareto Dominance of the two vectors u and v.
|
static <T> ISeq<T> |
front(Seq<? extends T> set,
Comparator<? super T> dominance)
Return the elements, from the given input
set , which are part of
the pareto front. |
static <T> ISeq<Vec<T>> |
front(Seq<? extends Vec<T>> set)
Return the elements, from the given input
set , which are part of
the pareto front. |
static <T> int[] |
rank(Seq<? extends T> set,
Comparator<? super T> dominance)
Calculates the non-domination rank of the given input
set ,
using the given dominance comparator. |
static <T> int[] |
rank(Seq<? extends Vec<T>> set)
Calculates the non-domination rank of the given input
set ,
using the natural order of the elements as dominance
measure. |
public static <T> double[] crowdingDistance(Seq<? extends Vec<T>> set)
T
- the vector typeset
- the point set used for calculating the crowding distanceset
pointsNullPointerException
- if the input set
is null
IllegalArgumentException
- if set.get(0).length() < 2
crowdingDistance(Seq, ElementComparator, ElementDistance, ToIntFunction)
O(d*n*log(n))
, where d
is the number of dimensions and
n
the set
size.public static <T> double[] crowdingDistance(Seq<? extends T> set, ElementComparator<? super T> comparator, ElementDistance<? super T> distance, ToIntFunction<? super T> dimension)
T
- the vector typeset
- the point set used for calculating the crowding distancecomparator
- the comparator which defines the (total) order of the
vector elements of T
distance
- the distance of two vector elementsdimension
- the dimension of vector type T
set
pointsNullPointerException
- if one of the arguments is null
crowdingDistance(Seq)
O(d*n*log(n))
, where d
is the number of dimensions and
n
the set
size.public static <T> int[] rank(Seq<? extends Vec<T>> set)
set
,
using the natural order of the elements as dominance
measure.T
- the element typeset
- the input setset
O(n^2
, where
n
the set
size.
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.
public static <T> int[] rank(Seq<? extends T> set, Comparator<? super T> dominance)
set
,
using the given dominance
comparator.T
- the element typeset
- the input setdominance
- the dominance comparator usedset
O(n^2
, where
n
the set
size.
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.
public static <T> ISeq<Vec<T>> front(Seq<? extends Vec<T>> set)
set
, which are part of
the pareto front. The Comparable
interface 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.
T
- the element typeset
- the input setNullPointerException
- if one of the arguments is null
public static <T> ISeq<T> front(Seq<? extends T> set, Comparator<? super T> dominance)
set
, 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.
T
- the element typeset
- the input setdominance
- the dominance comparator usedNullPointerException
- if one of the arguments is null
public static <C extends Comparable<? super C>> int dominance(C[] u, C[] v)
C
- the element type of vector u and vu
- the first vectorv
- the second vector1
if u ≻ v, -1
if v ≻
u and 0
otherwiseNullPointerException
- if one of the arguments is null
IllegalArgumentException
- if u.length != v.length
Vec.dominance(Comparable[], Comparable[])
public static <T> int dominance(T[] u, T[] v, Comparator<? super T> comparator)
T
- the element type of vector u and vu
- the first vectorv
- the second vectorcomparator
- the element comparator which is used for calculating
the dominance1
if u ≻ v, -1
if v ≻
u and 0
otherwiseNullPointerException
- if one of the arguments is null
IllegalArgumentException
- if u.length != v.length
Vec.dominance(Object[], Object[], Comparator)
public static int dominance(int[] u, int[] v)
u
- the first vectorv
- the second vector1
if u ≻ v, -1
if v ≻
u and 0
otherwiseNullPointerException
- if one of the arguments is null
IllegalArgumentException
- if u.length != v.length
Vec.dominance(int[], int[])
public static int dominance(long[] u, long[] v)
u
- the first vectorv
- the second vector1
if u ≻ v, -1
if v ≻
u and 0
otherwiseNullPointerException
- if one of the arguments is null
IllegalArgumentException
- if u.length != v.length
Vec.dominance(long[], long[])
public static int dominance(double[] u, double[] v)
u
- the first vectorv
- the second vector1
if u ≻ v, -1
if v ≻
u and 0
otherwiseNullPointerException
- if one of the arguments is null
IllegalArgumentException
- if u.length != v.length
Vec.dominance(double[], double[])
© 2007-2018 Franz Wilhelmstötter (2018-05-31 12:39)