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
DTLZ153—70.01.0
DTLZ2103—120.01.0
DTLZ3103—120.01.0
DTLZ4103100.0120.01.0
DTLZ5105—140.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(\theta_1)\cos(\theta_2)\cdots \cos(\theta_{m-1}),\\ f_2(x) &= (1+g(x))\cos(\theta_1)\cos(\theta_2)\cdots \cos(\theta_{m-2})\sin(\theta_{m-1}),\\ &\ \vdots\\ f_{m-1}(x) &= (1+g(x))\cos(\theta_1)\sin(\theta_2),\\ f_m(x) &= (1+g(x))\sin(\theta_1). \end{aligned}\]

where

\[\theta_1 = \frac{\pi x_1}{2}, \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.\]

DTLZ5 angle convention

The technical report [38] and book chapter [6] combine an angular definition of $\theta_j$ with the normalized form $\cos(\pi\theta_j/2)$, mixing two angle conventions. This package follows the reference implementation distributed by the authors: $\theta_j$ denotes the angle itself, and the objectives use $\cos(\theta_j)$ and $\sin(\theta_j)$.

Usage

julia> using MultiObjectiveProblems

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

MultiObjectiveProblems.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.

source
MultiObjectiveProblems.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.

source
MultiObjectiveProblems.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.

source
MultiObjectiveProblems.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.

source
MultiObjectiveProblems.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.

source