Deb–Thiele–Laumanns–Zitzler (DTLZ)
This family comprises DTLZ1 through DTLZ5. These test problems are described in Chapter 6, “Scalable Test Problems for Evolutionary Multiobjective Optimization,” pages 105–145 of Evolutionary Multiobjective Optimization: Theoretical Advances and Applications [6].
Overview
For all five constructors, k >= 1, nobj >= 2, and nvar = k + nobj - 1. The public keyword is nobj by package convention; the mathematical formulation below retains the usual m, with m = nobj. Here, k is the number of trailing variables x_m, ..., x_n used by g(x); equivalently, k = nvar - m + 1. The first m - 1 variables determine the objective trade-off, whereas these k variables determine g(x). Thus, k changes the number of decision variables without changing the number of objectives. DTLZ4 additionally requires alpha > 0. The default dimensions and componentwise bounds are shown below.
| Problem | k | nobj | alpha | nvar | Lower bound | Upper bound |
|---|---|---|---|---|---|---|
DTLZ1 | 5 | 3 | — | 7 | 0.0 | 1.0 |
DTLZ2 | 10 | 3 | — | 12 | 0.0 | 1.0 |
DTLZ3 | 10 | 3 | — | 12 | 0.0 | 1.0 |
DTLZ4 | 10 | 3 | 100.0 | 12 | 0.0 | 1.0 |
DTLZ5 | 10 | 5 | — | 14 | 0.0 | 1.0 |
Analytical Jacobians are registered for all five constructors. Hessians are not registered. The catalog metadata classifies every objective in DTLZ1 through DTLZ5 as not strictly convex (:not_strictly_convex). This is distinct from nothing, which indicates that strict-convexity information is not available for a problem.
Mathematical formulations
The formulas below describe the objective functions implemented by the constructors. For each problem, let $F:\mathbb{R}^n \to \mathbb{R}^m$ be defined by $F(x)=(f_1(x),\ldots,f_m(x))$, where $n = k + m - 1$.
DTLZ1
The objectives are
\[\begin{aligned} f_1(x) &= \frac{1}{2}(1+g(x))x_1x_2\cdots x_{m-1},\\ f_2(x) &= \frac{1}{2}(1+g(x))x_1x_2\cdots x_{m-2}(1-x_{m-1}),\\ &\ \vdots\\ f_{m-1}(x) &= \frac{1}{2}(1+g(x))x_1(1-x_2),\\ f_m(x) &= \frac{1}{2}(1+g(x))(1-x_1). \end{aligned}\]
where
\[g(x) = 100\left[k + \sum_{r=m}^{n} \left((x_r-0.5)^2-\cos\left(20\pi(x_r-0.5)\right)\right)\right].\]
DTLZ2
The objectives are
\[\begin{aligned} f_1(x) &= (1+g(x))\cos\left(\frac{\pi x_1}{2}\right) \cos\left(\frac{\pi x_2}{2}\right)\cdots \cos\left(\frac{\pi x_{m-1}}{2}\right),\\ f_2(x) &= (1+g(x))\cos\left(\frac{\pi x_1}{2}\right) \cos\left(\frac{\pi x_2}{2}\right)\cdots \cos\left(\frac{\pi x_{m-2}}{2}\right) \sin\left(\frac{\pi x_{m-1}}{2}\right),\\ &\ \vdots\\ f_{m-1}(x) &= (1+g(x))\cos\left(\frac{\pi x_1}{2}\right) \sin\left(\frac{\pi x_2}{2}\right),\\ f_m(x) &= (1+g(x))\sin\left(\frac{\pi x_1}{2}\right). \end{aligned}\]
where
\[g(x) = \sum_{r=m}^{n}(x_r-0.5)^2.\]
DTLZ3
The objectives are
\[\begin{aligned} f_1(x) &= (1+g(x))\cos\left(\frac{\pi x_1}{2}\right) \cos\left(\frac{\pi x_2}{2}\right)\cdots \cos\left(\frac{\pi x_{m-1}}{2}\right),\\ f_2(x) &= (1+g(x))\cos\left(\frac{\pi x_1}{2}\right) \cos\left(\frac{\pi x_2}{2}\right)\cdots \cos\left(\frac{\pi x_{m-2}}{2}\right) \sin\left(\frac{\pi x_{m-1}}{2}\right),\\ &\ \vdots\\ f_{m-1}(x) &= (1+g(x))\cos\left(\frac{\pi x_1}{2}\right) \sin\left(\frac{\pi x_2}{2}\right),\\ f_m(x) &= (1+g(x))\sin\left(\frac{\pi x_1}{2}\right). \end{aligned}\]
where
\[g(x) = 100\left[k + \sum_{r=m}^{n} \left((x_r-0.5)^2-\cos\left(20\pi(x_r-0.5)\right)\right)\right].\]
DTLZ4
The objectives are
\[\begin{aligned} f_1(x) &= (1+g(x))\cos\left(\frac{\pi x_1^\alpha}{2}\right) \cos\left(\frac{\pi x_2^\alpha}{2}\right)\cdots \cos\left(\frac{\pi x_{m-1}^\alpha}{2}\right),\\ f_2(x) &= (1+g(x))\cos\left(\frac{\pi x_1^\alpha}{2}\right) \cos\left(\frac{\pi x_2^\alpha}{2}\right)\cdots \cos\left(\frac{\pi x_{m-2}^\alpha}{2}\right) \sin\left(\frac{\pi x_{m-1}^\alpha}{2}\right),\\ &\ \vdots\\ f_{m-1}(x) &= (1+g(x))\cos\left(\frac{\pi x_1^\alpha}{2}\right) \sin\left(\frac{\pi x_2^\alpha}{2}\right),\\ f_m(x) &= (1+g(x))\sin\left(\frac{\pi x_1^\alpha}{2}\right). \end{aligned}\]
where
\[g(x) = \sum_{r=m}^{n}(x_r-0.5)^2.\]
DTLZ5
The objectives are
\[\begin{aligned} f_1(x) &= (1+g(x))\cos\left(\frac{\pi\theta_1}{2}\right) \cos\left(\frac{\pi\theta_2}{2}\right)\cdots \cos\left(\frac{\pi\theta_{m-1}}{2}\right),\\ f_2(x) &= (1+g(x))\cos\left(\frac{\pi\theta_1}{2}\right) \cos\left(\frac{\pi\theta_2}{2}\right)\cdots \cos\left(\frac{\pi\theta_{m-2}}{2}\right) \sin\left(\frac{\pi\theta_{m-1}}{2}\right),\\ &\ \vdots\\ f_{m-1}(x) &= (1+g(x))\cos\left(\frac{\pi\theta_1}{2}\right) \sin\left(\frac{\pi\theta_2}{2}\right),\\ f_m(x) &= (1+g(x))\sin\left(\frac{\pi\theta_1}{2}\right). \end{aligned}\]
where
\[\theta_1 = x_1, \qquad \theta_j = \frac{\pi}{4(1+g(x))}\left(1+2g(x)x_j\right), \quad j=2,\ldots,m-1,\]
and
\[g(x) = \sum_{r=m}^{n}(x_r-0.5)^2.\]
Usage
julia> using MOProblems
julia> using Random
julia> prob = DTLZ2();
julia> lower, upper = recommended_bounds(prob);
julia> rng = MersenneTwister(1234);
julia> α = rand(rng, prob.nvar);
julia> x = lower .+ α .* (upper .- lower);
julia> values = eval_f(prob, x);
julia> J = eval_jacobian(prob, x);
julia> (length(values), size(J))
(3, (3, 12))Constructor reference
MOProblems.DTLZ1 — Function
DTLZ1(; k::Int = 5, nobj::Int = 3)Construct the DTLZ1 problem with nvar = k + nobj - 1 (default: 7).
k counts the trailing variables in the auxiliary function g. Requires k >= 1 and nobj >= 2. Each variable is bounded in [0, 1]. An analytical Jacobian is registered; objective Hessians are not registered.
MOProblems.DTLZ2 — Function
DTLZ2(; k::Int = 10, nobj::Int = 3)Construct the DTLZ2 problem with nvar = k + nobj - 1 (default: 12).
k counts the trailing variables in the auxiliary function g. Requires k >= 1 and nobj >= 2. Each variable is bounded in [0, 1]. An analytical Jacobian is registered; objective Hessians are not registered.
MOProblems.DTLZ3 — Function
DTLZ3(; k::Int = 10, nobj::Int = 3)Construct the DTLZ3 problem with nvar = k + nobj - 1 (default: 12).
k counts the trailing variables in the auxiliary function g. Requires k >= 1 and nobj >= 2. Each variable is bounded in [0, 1]. An analytical Jacobian is registered; objective Hessians are not registered.
MOProblems.DTLZ4 — Function
DTLZ4(; k::Int = 10, nobj::Int = 3, alpha::Real = 100.0)Construct the DTLZ4 problem with nvar = k + nobj - 1 (default: 12).
k counts the trailing variables in the auxiliary function g. Requires k >= 1 and nobj >= 2, with angular exponent alpha > 0. Each variable is bounded in [0, 1]. An analytical Jacobian is registered; objective Hessians are not registered.
MOProblems.DTLZ5 — Function
DTLZ5(; k::Int = 10, nobj::Int = 5)Construct the DTLZ5 problem with nvar = k + nobj - 1 (default: 14).
k counts the trailing variables in the auxiliary function g. Requires k >= 1 and nobj >= 2. Each variable is bounded in [0, 1]. An analytical Jacobian is registered; objective Hessians are not registered.