benchmarkfcns.lunacekbirastrigin¶
- benchmarkfcns.lunacekbirastrigin(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 Lunacek Bi-Rastrigin benchmark function. SCORES = lunacekbirastrigin(X) computes the value of the Lunacek Bi-Rastrigin function at point X. lunacekbirastrigin accepts a matrix of size M-by-N and returns a vetor 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: (mu0, mu0, …, mu0) where mu0 = 2.5
Number of dimensions: n
Recommended domain: [-5, 5]^n
Modality: multimodal and deceptive (two main basins)
Separability: non-separable
Mathematical Definition
\[\begin{split}\mu_0 = 2.5, \quad s = 1 - \frac{1}{2\sqrt{n+20}-8.2}, \quad \mu_1 = -\sqrt{\frac{\mu_0^2-1}{s}} \\\end{split}\]
f(mathbf{x}) = minleft(sum_{i=1}^n (x_i - mu_0)^2, dn + s sum_{i=1}^n (x_i - mu_1)^2right) + 10 sum_{i=1}^n (1 - cos(2pi(x_i - mu_0)))
Visualization