DTLZ test suite#
-
class dtlz#
DTLZ problem test suite.
This widespread test suite was conceived for multiobjective problems with scalable fitness dimensions and takes its name from its authors Deb, Thiele, Laumanns and Zitzler
All problems in this test suite are box-constrained continuous n-dimensional multi-objective problems, scalable in fitness dimension. The dimension of the decision space is \( k + fdim - 1 \), whereas fdim is the number of objectives and k a parameter. Properties of the decision space and the Pareto-front of each problems are as follows:
DTLZ1:
The optimal pareto front lies on a linear hyperplane \( \sum_{m=1}^M f_m = 0.5 \) .
DTLZ2:
The search space is continuous, unimodal and the problem is not deceptive.
DTLZ3:
The search space is continuous, unimodal and the problem is not deceptive. It is supposed to be harder to converge towards the optimal pareto front than DTLZ2
DTLZ4:
The search space contains a dense area of solutions next to the \( f_M / f_1\) plane.
DTLZ5:
This problem will test an MOEA’s ability to converge to a curve and will also allow an easier way to visually demonstrate (just by plotting f_M with any other objective function) the performance of an MOEA. Since there is a natural bias for solutions close to this Pareto-optimal curve, this problem may be easy for an algorithm to solve. Because of its simplicity its recommended to use a higher number of objectives \( M \in [5, 10]\).
DTLZ6:
A more difficult version of the DTLZ5 problem: the non-linear distance function g makes it harder to convergence against the pareto optimal curve.
DTLZ7:
This problem has disconnected Pareto-optimal regions in the search space.
See: K. Deb, L. Thiele, M. Laumanns, E. Zitzler, Scalable test problems for evolutionary multiobjective optimization
Public Functions
-
dtlz(unsigned prob_id = 1u, vector_double::size_type dim = 5u, vector_double::size_type fdim = 3u, unsigned alpha = 100u)#
Constructor
Will construct a problem of the DTLZ test-suite.
- Parameters
prob_id – problem id
dim – the problem dimension (size of the decision vector)
fdim – number of objectives
alpha – controls density of solutions (used only by DTLZ4)
- Throws
std::invalid_argument – if the prob_id is not in [1 .. 7], if fdim is less than 2 or if fdim or dim_param are larger than an implementation defined value
-
vector_double fitness(const vector_double&) const#
Fitness computation.
Computes the fitness for this UDP
- Parameters
x – the decision vector.
- Returns
the fitness of
x
.
-
inline vector_double::size_type get_nobj() const#
Number of objectives.
It returns the number of objectives.
- Returns
the number of objectives
-
std::pair<vector_double, vector_double> get_bounds() const#
Box-bounds.
It returns the box-bounds for this UDP, [0,1] for each component
- Returns
the lower and upper bounds for each of the decision vector components
-
double p_distance(const pagmo::population&) const#
Distance from the Pareto front (of a population)
Convergence metric for a given population (0 = on the optimal front)
Takes the average across the input population of the p_distance
- Parameters
pop – population to be assigned a pareto distance
- Returns
the p_distance
-
double p_distance(const vector_double&) const#
Distance from the Pareto front.
Convergence metric for a given decision_vector (0 = on the optimal front)
Introduced by Martens and Izzo, this metric is able to measure “a distance” of any point from the pareto front of any ZDT problem analytically without the need to precompute the front.
See: Märtens, Marcus, and Dario Izzo. “The asynchronous island model
and NSGA-II: study of a new migration operator and its performance.” Proceedings of the 15th annual conference on Genetic and evolutionary computation. ACM, 2013.
- Parameters
x – input decision vector
- Returns
the p_distance
-
std::string get_name() const#
Problem name.
- Returns
a string containing the problem name
-
dtlz(unsigned prob_id = 1u, vector_double::size_type dim = 5u, vector_double::size_type fdim = 3u, unsigned alpha = 100u)#