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.
| Problem | Dimension behavior | Configurable parameters | Default nvar | Default nobj | Lower bound | Upper bound |
|---|---|---|---|---|---|---|
ZLT1 | Independent | nobj >= 2, nvar >= nobj | 100 | 2 | -1000 | 1000 |
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).
[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.ZLT1 — Function
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.