benchmarkfcns.corana¶
- benchmarkfcns.corana(arg0: Annotated[numpy.typing.NDArray[numpy.float64], '[m, n]', 'flags.c_contiguous']) Annotated[numpy.typing.NDArray[numpy.float64], '[m, 1]']¶
Computes the value of the Corana benchmark function. SCORES = corana(X) computes the value of the Corana function at point X. corana accepts a matrix of size M-by-N and returns a vector SCORES of size M-by-1 in which each row contains the function value for the corresponding row of X. Properties:
Global minimum: 0
Location of global minimum: (0, 0, …, 0)
Number of dimensions: n
Recommended domain: [-500, 500]^n
Number of local minima: massive
Number of global minima: 1
Convexity: non-convex
Separability: separable
Modality: multimodal
Differentiability: non-differentiable (staircase landscape)
Mathematical Definition
\[\begin{split}f(\mathbf{x}) = \sum_{i=1}^{n} \begin{cases} 0.15 \cdot (z_i - 0.05 \cdot \text{sgn}(z_i))^2 \cdot d_i & \text{if } |x_i - z_i| < 0.05 \\ d_i \cdot x_i^2 & \text{otherwise} \end{cases} \\\end{split}\]
text{where } z_i = 0.2 cdot lfloor |x_i / 0.2| + 0.49 rfloor cdot text{sgn}(x_i)
Visualization