benchmarkfcns.multiobjective.dtlz5

benchmarkfcns.multiobjective.dtlz5(x: Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]', 'flags.c_contiguous'], num_objectives: SupportsInt | SupportsIndex = 3) Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]']

Computes the value of the DTLZ5 multi-objective benchmark function. SCORES = multiobjective.dtlz5(X, num_objectives) computes the value of the DTLZ5 function at point X. multiobjective.dtlz5 accepts a matrix of size M-by-N and returns a matrix SCORES of size M-by-K where K is the number of objectives. Properties:

  • Global Pareto front: Degenerate (Curve)

  • Number of dimensions: n (usually 10)

  • Recommended domain: [0, 1]^n

  • Modality: unimodal

  • Characteristic: Tests ability to converge to a lower-dimensional Pareto front.

Mathematical Definition

\[\begin{split}g(\mathbf{x}_M) = \sum_{x_i \in \mathbf{x}_M} (x_i - 0.5)^2 \\\end{split}\]

theta_1 = x_1 pi/2 \ theta_i = frac{pi}{4(1+g(mathbf{x}_M))} (1 + 2g(mathbf{x}_M) x_i), quad i=2, dots, M-1 \ f_1(mathbf{x}) = (1 + g(mathbf{x}_M)) cos(theta_1) dots cos(theta_{M-1}) \ vdots \ f_M(mathbf{x}) = (1 + g(mathbf{x}_M)) sin(theta_1)

Visualization

No visualization available for this function.