Jin–Olhofer–Sendhoff (JOS)

This family exposes the first and fourth test functions from "Dynamic Weighted Aggregation for Evolutionary Multi-Objective Optimization: Why Does It Work and How?" by Jin, Olhofer, and Sendhoff [15].

Naming convention

The source denotes its five test functions by $F_1,\ldots,F_5$ rather than assigning JOS names. MOProblems.jl uses JOS1 and JOS4 so that the numeric suffix preserves the function number in the source, following the author-initial/source-order convention described by Fliege, Drummond, and Svaiter [10].

Huband et al. retain these same two formulations but assign them the catalog-local names JOS1 and JOS2 [9]. Consequently, JOS4 in MOProblems.jl is the problem called JOS2 in that review. The source's $F_2$, $F_3$, and $F_5$ formulations are available from MOProblems.jl as ZDT1, ZDT2, and ZDT3, respectively [19].

Overview

Both constructors have n variables and two objectives. JOS1 requires n >= 1, whereas JOS4 requires n >= 2. The default dimension of 50 matches the dimension used for the JOS1a and JOS4a experiment instances reported by Fliege, Drummond, and Svaiter [10]. Both constructors retain the componentwise domain $[0,1]^n$ specified for the source test functions [15]. Fliege, Drummond, and Svaiter deliberately used alternative box bounds in order to investigate the effects of different starting points in their numerical experiments [10]. Those experimental boxes are not part of the constructors defined here.

ProblemDefault nvarnobjLower boundUpper bound
JOS15020.01.0
JOS45020.01.0

Both problems have componentwise bounds $[0,1]^n$. Neither problem has general equality or inequality constraints.

Analytical Jacobians are registered for both constructors. Hessians are not registered. The catalog metadata classifies both JOS1 objectives as strictly convex (:strictly_convex) and both JOS4 objectives as not strictly convex (:not_strictly_convex).

JOS4 Jacobian at the lower boundary

Both JOS4 objective values are defined at $x_1=0$. The derivative of $f_2$ with respect to $x_1$ is singular there because it contains $\left(x_1/g(x)\right)^{-3/4}$. Consequently, eval_jacobian(prob, x) and Jacobian row 2 throw a DomainError when $x_1=0$. The first Jacobian row remains available there through eval_jacobian_row(prob, x, 1).

No positive tolerance is imposed: positive values of $x_1$ are evaluated by the analytical formula, subject to the range and precision of the input floating-point type.

Mathematical formulations

The formulas below describe the objective functions implemented by the constructors.

JOS1

Let $F:[0,1]^n\to\mathbb{R}^2$ be defined by $F(x)=(f_1(x),f_2(x))$. The objectives are

\[\begin{aligned} f_1(x) &= \frac{1}{n}\sum_{i=1}^{n}x_i^2,\\ f_2(x) &= \frac{1}{n}\sum_{i=1}^{n}(x_i-2)^2. \end{aligned}\]

JOS4

Let $F:[0,1]^n\to\mathbb{R}^2$ be defined by $F(x)=(f_1(x),f_2(x))$. The objectives are

\[\begin{aligned} f_1(x) &= x_1,\\ f_2(x) &= g(x)\left[1-\left(\frac{x_1}{g(x)}\right)^{1/4} -\left(\frac{x_1}{g(x)}\right)^4\right], \end{aligned}\]

where

\[g(x)=1+\frac{9}{n-1}\sum_{i=2}^{n}x_i.\]

Usage

using MOProblems

prob = JOS4(n = 50)
x = fill(0.5, prob.nvar)

values = eval_f(prob, x)
J = eval_jacobian(prob, x)

Constructor reference

MOProblems.JOS1Function
JOS1(n::Int = 50)

Construct the variable-dimension, two-objective JOS1 problem.

n is the number of variables and must be positive. Its default value is 50. The variables are bounded in [0, 1]^n. An analytical Jacobian is registered; objective Hessians are not registered.

source
MOProblems.JOS4Function
JOS4(n::Int = 50)

Construct the variable-dimension, two-objective JOS4 problem.

n is the number of variables, must be at least 2, and defaults to 50. The variables are bounded in [0, 1]^n. An analytical Jacobian is registered; objective Hessians are not registered. Both objective values are defined at x[1] == 0, but the second Jacobian row is not; evaluating that row there throws a DomainError. The first Jacobian row remains available at that boundary.

source