Socha–Kisiel-Dorohinicki (SK)

This family is represented by the SK1 and SK2 constructors. Socha and Kisiel-Dorohinicki used both problems as test cases in "Agent-based evolutionary multiobjective optimisation" [29]. Huband et al. later cataloged them under the SK1 and SK2 names in Table XVI [9].

Optimization convention

Both problems are stated as maximization problems: Huband et al. list every objective of SK1 and SK2 with a Max. qualifier [9]. MOProblems.jl follows its minimization convention by implementing the negative of each source objective. This preserves the Pareto-optimal decision set, while reflecting the Pareto front through the origin. Values in the source maximization convention are obtained as -eval_f(prob, x).

Corrected SK1 formulation

Huband et al. identify the second objective of SK1 as containing a typographical error in [29] and give the corrected formulation in Table XVI [9]. SK1 implements the corrected version. SK2 requires no such correction.

Overview

Both problems have fixed dimensions and are unconstrained.

ProblemnvarnobjRegistered boundsRecommended working box
SK112None$[-100,100]$
SK242None$[-10,10]^4$

An analytical Jacobian is registered for both problems. Hessians are not registered. The catalog metadata classifies both objectives of SK1 as not strictly convex (:not_strictly_convex); for SK2 it classifies $f_1$ as strictly convex (:strictly_convex) and $f_2$ as not strictly convex (:not_strictly_convex).

Mathematical formulations

The formulas below describe the minimization objectives implemented by the constructors, that is, the negatives of the corrected source objectives.

SK1

Let $F:\mathbb{R}\to\mathbb{R}^2$ be the implemented minimization vector $F(x)=(f_1(x),f_2(x))$, where $x = (x_1)$. Its components are the quartic polynomials

\[\begin{aligned} f_1(x) &= x_1^4 + 3x_1^3 - 10x_1^2 - 10x_1 - 10,\\ f_2(x) &= 0.5\,x_1^4 - 2x_1^3 - 10x_1^2 + 10x_1 - 5. \end{aligned}\]

SK2

Let $F:\mathbb{R}^4\to\mathbb{R}^2$ be the implemented minimization vector $F(x)=(f_1(x),f_2(x))$, where $x = (x_1,x_2,x_3,x_4)$. Its components are

\[\begin{aligned} f_1(x) &= (x_1-2)^2 + (x_2+3)^2 + (x_3-5)^2 + (x_4-4)^2 - 5,\\ f_2(x) &= -\frac{\sin(x_1)+\sin(x_2)+\sin(x_3)+\sin(x_4)} {1 + \dfrac{x_1^2+x_2^2+x_3^2+x_4^2}{100}}. \end{aligned}\]

Usage

julia> using MOProblems

julia> using Random

julia> prob = SK1();

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> source_values = -values;  # values in the source maximization convention

julia> J = eval_jacobian(prob, x);

julia> prob2 = SK2();

julia> lower2, upper2 = recommended_bounds(prob2);

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

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

julia> values2 = eval_f(prob2, y);

julia> J2 = eval_jacobian(prob2, y);

julia> (length(values), size(J), length(source_values), length(values2), size(J2))
(2, (2, 1), 2, 2, (2, 4))

Constructor reference

MOProblems.SK1Function
SK1()

Construct the fixed one-variable, two-objective SK1 problem.

Socha and Kisiel-Dorohinicki formulate the problem as a maximization; this constructor minimizes the negated objectives, using the corrected second objective cataloged by Huband et al. The problem has no explicit variable bounds; [-100, 100] is the box recommended by the package developers, not a bound of the problem. An analytical Jacobian is registered; objective Hessians are not registered.

source
MOProblems.SK2Function
SK2()

Construct the fixed four-variable, two-objective SK2 problem.

Socha and Kisiel-Dorohinicki formulate the problem as a maximization; this constructor minimizes the negated objectives. The problem has no explicit variable bounds; [-10, 10]^4 is the box recommended by the package developers, not a bound of the problem. An analytical Jacobian is registered; objective Hessians are not registered.

source