Zitzler–Laumanns–Thiele (ZLT)

This family is represented by the ZLT1 constructor. The problem is the multiobjective generalization of the Sphere Model listed in Table 1 of Zitzler, Laumanns, and Thiele [37], where it is named SPH-m and attributed to Schaffer [42] and to Laumanns, Rudolph, and Schwefel [43]. The ZLT1 name comes from Table XVI of Huband et al. [9], which reproduces the same formulation and parameter domain and identifies the source as the test suite of [37]. The package follows that naming.

Overview

ZLT1(; nvar, nobj) takes the number of variables and objectives as independent parameters, and requires nobj >= 2 and nvar >= nobj; the lower bound on nvar comes from the objectives, which shift one coordinate each and so need at least as many variables as objectives. The defaults nvar = 100 and nobj = 2 reproduce the SPH-2 instance evaluated in [37]. The constructor retains the componentwise domain given in both sources.

ProblemDimension behaviorConfigurable parametersDefault nvarDefault nobjLower boundUpper bound
ZLT1Independentnobj >= 2, nvar >= nobj1002-10001000

ZLT1 has an analytical Jacobian registered; objective Hessians are not registered. The catalog metadata classifies every objective of the default instance as strictly convex (:strictly_convex).

Dimensions used by the sources

[37] fixes nvar = 100 and evaluates the two instances SPH-2 and SPH-3, with nobj = 2 and nobj = 3, respectively. Its mathematical formulation is nonetheless general in the number of objectives. Huband et al. tabulate the objectives in a general indexed form without prescribing a number of variables or objectives, and state that ZLT1 is the only problem of their survey that is scalable objective-wise. The constructor exposes both dimensions accordingly, and defaults to the smaller of the two published instances.

Mathematical formulation

Let $F:\mathbb{R}^n\to\mathbb{R}^m$ be defined by $F(x)=(f_1(x),\ldots,f_m(x))$ for $x\in[-1000,1000]^n$. For independent $m\geq2$ and $n\geq m$, the objectives are

\[f_j(x)=(x_j-1)^2+\sum_{\substack{i=1\\i\neq j}}^{n}x_i^2, \qquad j=1,\ldots,m.\]

Usage

The following example uses the three-objective instance SPH-3 of [37].

julia> using MOProblems

julia> using Random

julia> prob = ZLT1(nvar = 100, nobj = 3);

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, 100))

Constructor reference

MOProblems.ZLT1Function
ZLT1(; nvar::Int = 100, nobj::Int = 2)

Construct the ZLT1 problem with configurable nvar and nobj.

Requires nobj >= 2 and nvar >= nobj. Each variable is bounded in [-1000, 1000]. An analytical Jacobian is registered; objective Hessians are not registered.

source