benchmarkfcns.multiobjective.dtlz1

benchmarkfcns.multiobjective.dtlz1(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 DTLZ1 multi-objective benchmark function. SCORES = multiobjective.dtlz1(X, num_objectives) computes the value of the DTLZ1 function at point X. multiobjective.dtlz1 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: Linear hyperplane (sum f_i = 0.5)

  • Number of dimensions: n (usually k + num_objectives - 1, k=5)

  • Recommended domain: [0, 1]^n

  • Convexity: linear hyperplane

  • Modality: multimodal

For more information, please visit: benchmarkfcns.info/doc/dtlz1fcn

Mathematical Definition

\[\begin{split}f_i(\textbf{x}) = 0.5 (1 + g(\textbf{x}_M)) \left( \prod_{j=1}^{M-i} x_j \right) (1 - x_{M-i+1}) \quad \text{for } i = 1, \dots, M \\\end{split}\]

g(textbf{x}_M) = 100 left( k + sum_{x_j in textbf{x}_M} left( (x_j - 0.5)^2 - cos(20 pi (x_j - 0.5)) right) right) \ text{where } textbf{x}_M = [x_{n-k+1}, dots, x_n] text{ and } k = n - M + 1 text{, and } (1 - x_{M-i+1}) text{ is omitted for } i=1.

Visualization

No visualization available for this function.