analytical solver#
analytical is a Solver that computes a predefined benchmark function \(f(x)\) for evaluating the performance of search algorithms.
Input parameters#
The function_name parameter in the solver section specifies the function to use.
function_nameFormat: string
Description: Function name. The following functions are available.
quadraticsQuadratic (sphere) function
\[f(\vec{x}) = \sum_{i=1}^N x_i^2\]Global minimum: \(f(\vec{x}^*) = 0\) at \(\forall_i\, x_i^* = 0\).
quarticsQuartic function with two global minima
\[f(\vec{x}) = \left(\frac{1}{N}\sum_{i=1}^N (x_i - 1)^2\right) \left(\frac{1}{N}\sum_{i=1}^N (x_i + 1)^2\right)\]Global minima: \(f(\vec{x}^*) = 0\) at \(\forall_i\, x_i^* = 1\) and \(\forall_i\, x_i^* = -1\).
Saddle point: \(f(\vec{0}) = 1\).
ackley-
\[f(\vec{x}) = 20 + e - 20\exp\!\left[-0.2\sqrt{\frac{1}{N}\sum_{i=1}^N x_i^2}\right] - \exp\!\left[\frac{1}{N}\sum_{i=1}^N\cos(2\pi x_i)\right]\]
Global minimum: \(f(\vec{x}^*) = 0\) at \(\forall_i\, x_i^* = 0\). Has many local minima.
-
alpineAlpine function
\[f(\vec{x}) = \sum_{i=1}^N \left|x_i \sin(x_i) + 0.1\, x_i\right|\]Global minimum: \(f(\vec{x}^*) = 0\) at \(\forall_i\, x_i^* = 0\).
exponentialExponential function
\[f(\vec{x}) = -\exp\!\left(-\frac{1}{2}\sum_{i=1}^N x_i^2\right)\]Global minimum: \(f(\vec{x}^*) = -1\) at \(\forall_i\, x_i^* = 0\).
griewankGriewank-type function
\[f(\vec{x}) = 1 + \frac{1}{4000}\sum_{i=1}^N x_i^2 + \prod_{i=1}^N \cos\!\left(\frac{x_i}{\sqrt{i}}\right)\]Note: the cosine product term is added (not subtracted), so this differs from the standard Griewank function.
himmelblauHimmelblau’s function (\(N = 2\) only)
\[f(x, y) = (x^2 + y - 11)^2 + (x + y^2 - 7)^2\]Four global minima: \(f = 0\) at \((3,\,2)\), \((-2.805118,\,3.131312)\), \((-3.779310,\,-3.283186)\), and \((3.584428,\,-1.848126)\).
michalewicz-
\[f(\vec{x}) = -\sum_{i=1}^N \sin(x_i)\left[\sin\!\left(\frac{i\, x_i^2}{\pi}\right)\right]^{20}\]
The global minimum value and location depend on the dimension. There are \(d!\) local minima. For \(N = 2\), \(f(\vec{x}^*) \approx -1.8013\) at \(\vec{x}^* \approx (2.2051,\,1.5698)\). For \(N = 5\), \(f(\vec{x}^*) \approx -4.6876\). For \(N = 10\), \(f(\vec{x}^*) \approx -9.6602\).
-
qingQing function
\[f(\vec{x}) = \sum_{i=1}^N \left(x_i^2 - i\right)^2\]Global minimum: \(f(\vec{x}^*) = 0\) at \(x_i^* = \pm\sqrt{i}\) for \(i = 1, \ldots, N\).
rastrigin-
\[f(\vec{x}) = 10N + \sum_{i=1}^N \left[x_i^2 - 10\cos(2\pi x_i)\right]\]
Global minimum: \(f(\vec{x}^*) = 0\) at \(\forall_i\, x_i^* = 0\).
-
rosenbrock-
\[f(\vec{x}) = \sum_{i=1}^{N-1} \left[100(x_{i+1} - x_i^2)^2 + (x_i - 1)^2\right]\]
Global minimum: \(f(\vec{x}^*) = 0\) at \(\forall_i\, x_i^* = 1\).
-
schafferSchaffer function (generalized)
\[f(\vec{x}) = \sum_{i=1}^{N-1} \left[0.5 + \frac{\sin^2\!\left(x_i^2 + x_{i+1}^2\right) - 0.5}{\left(1 + 0.001\,(x_i^2 + x_{i+1}^2)\right)^2}\right]\]Global minimum: \(f(\vec{x}^*) = 0\) at \(\forall_i\, x_i^* = 0\).
schwefel-
\[f(\vec{x}) = 418.9829\,N - \sum_{i=1}^N x_i \sin\!\left(\sqrt{|x_i|}\right)\]
Global minimum: \(f(\vec{x}^*) \approx 0\) at \(\forall_i\, x_i^* \approx 420.9687\).
-
linear_regression_testNegative log-likelihood of a linear regression model \(y = at + b\) with Gaussian noise \(\mathcal{N}(0, \sigma^2)\), trained on data \(\{(t_k, y_k)\} = \{(1,1),(2,3),(3,2),(4,4),(5,3),(6,5)\}\). Parameters: \(a = x_1\), \(b = x_2\), \(\log\sigma^2 = x_3\) (\(N = 3\) only).
\[f(a, b, s) = \frac{1}{2}\left[n\,s + e^{-s}\sum_{k=1}^{n}(a\,t_k + b - y_k)^2\right] \quad (s = \log\sigma^2,\; n = 6)\]Global minimum: \(f(\vec{x}^*) \approx 1.005071\) at \(\vec{x}^* \approx (0.628571,\,0.8,\,-0.664976)\).