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.

ProblemknobjalphanvarLower boundUpper bound
DTLZ15370.01.0
DTLZ2103120.01.0
DTLZ3103120.01.0
DTLZ4103100.0120.01.0
DTLZ5105140.01.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.DTLZ1Function
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.

source
MOProblems.DTLZ2Function
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.

source
MOProblems.DTLZ3Function
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.

source
MOProblems.DTLZ4Function
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.

source
MOProblems.DTLZ5Function
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.

source