Schütze–Laumanns–Coello Coello–Dellnitz–Talbi (SLCDT)

This family comprises SLCDT1 and SLCDT2, from the numerical results of Schütze, Laumanns, Coello Coello, Dellnitz, and Talbi [30].

Overview

Both constructors have fixed dimensions and registered componentwise variable bounds. SLCDT1 takes perturbation coefficient λ, which selects the bounds; SLCDT2 takes no parameters.

ProblemλnvarnobjLower boundUpper bound
SLCDT1022-0.50.5
SLCDT1any other value (default 0.85)22-1.51.5
SLCDT2103-1.01.0

The two rows for SLCDT1 reproduce the two settings used in the source, which pairs $\lambda=0$ with the domain $[-0.5,0.5]^2$ and $\lambda=0.85$ with $[-1.5,1.5]^2$.

Analytical Jacobians are registered for both constructors. Hessians are not registered. The catalog metadata classifies every objective of SLCDT1 and SLCDT2 as not strictly convex (:not_strictly_convex).

Mathematical formulations

SLCDT1

Let $F:\mathbb{R}^2 \to \mathbb{R}^2$ be defined by $F(x,y)=(f_1(x,y,\lambda),f_2(x,y,\lambda))$. The objectives are

\[\begin{aligned} f_1(x,y,\lambda) &= \frac{1}{2}\left(\sqrt{1+(x+y)^2}+\sqrt{1+(x-y)^2}+x-y\right) + \lambda\,e^{-(x-y)^2},\\ f_2(x,y,\lambda) &= \frac{1}{2}\left(\sqrt{1+(x+y)^2}+\sqrt{1+(x-y)^2}-x+y\right) + \lambda\,e^{-(x-y)^2}. \end{aligned}\]

SLCDT2

Let $F:\mathbb{R}^{10} \to \mathbb{R}^3$ be defined by $F(x)=(f_1(x),f_2(x),f_3(x))$. The objectives are

\[f_i(x) = \sum_{\substack{j=1\\ j\neq i}}^{10}\left(x_j-a_j^i\right)^2 + \left(x_i-a_i^i\right)^4, \qquad i = 1,2,3,\]

where

\[\begin{aligned} a^1 &= (1,1,1,1,\ldots),\\ a^2 &= (-1,-1,-1,-1,\ldots),\\ a^3 &= (1,-1,1,-1,\ldots), \end{aligned}\]

and $a^1,a^2,a^3 \in \mathbb{R}^{10}$.

Usage

julia> using MOProblems

julia> using Random

julia> prob1 = SLCDT1();

julia> lower1, upper1 = recommended_bounds(prob1);

julia> rng = MersenneTwister(1234);

julia> α1 = rand(rng, prob1.nvar);

julia> x1 = lower1 .+ α1 .* (upper1 .- lower1);

julia> values1 = eval_f(prob1, x1);

julia> J1 = eval_jacobian(prob1, x1);

julia> prob1b = SLCDT1(lambda = 0.0);

julia> prob2 = SLCDT2();

julia> lower2, upper2 = recommended_bounds(prob2);

julia> α2 = rand(rng, prob2.nvar);

julia> x2 = lower2 .+ α2 .* (upper2 .- lower2);

julia> values2 = eval_f(prob2, x2);

julia> J2 = eval_jacobian(prob2, x2);

julia> (length(values1), size(J1), length(values2), size(J2))
(2, (2, 2), 3, (3, 10))

Constructor reference

MOProblems.SLCDT1Function
SLCDT1(; lambda::Real = 0.85)

Construct the fixed two-variable, two-objective SLCDT1 problem, with perturbation coefficient lambda.

The variables are bounded in [-0.5, 0.5]^2 when lambda == 0, and in [-1.5, 1.5]^2 for every other value of lambda (including the default). An analytical Jacobian is registered; objective Hessians are not registered.

source
MOProblems.SLCDT2Function
SLCDT2()

Construct the fixed ten-variable, three-objective SLCDT2 problem.

The variables are bounded in [-1, 1]^10. An analytical Jacobian is registered; objective Hessians are not registered.

source