Ackley function

☆ Save On Wikipedia ↗
Ackley function of two variables
Contour surfaces of Ackley's function in 3D

In mathematical optimization, the Ackley function is a non-convex function used as a performance test problem for optimization algorithms. It was proposed by David Ackley in his 1987 PhD dissertation.[1] The function is commonly used as a minimization function with global minimum value 0 at 0,.., 0 in the form due to Thomas Bäck. While Ackley gives the function as an example of "fine-textured broadly unimodal space" his thesis does not actually use the function as a test.


On an d {\displaystyle d} {\displaystyle d}-dimensional domain it is defined as[2]:

f ( x ) = − a exp ⁡ ( − b 1 d ∑ i = 1 d x i 2 ) {\displaystyle f(\mathbf {x} )=-a\exp \left(-b{\sqrt {{\frac {1}{d}}\sum _{i=1}^{d}x_{i}^{2}}}\right)} {\displaystyle f(\mathbf {x} )=-a\exp \left(-b{\sqrt {{\frac {1}{d}}\sum _{i=1}^{d}x_{i}^{2}}}\right)}

− exp ⁡ ( 1 d ∑ i = 1 d cos ⁡ ( c x i ) ) + a + exp ⁡ ( 1 ) {\displaystyle -\exp \left({\frac {1}{d}}\sum _{i=1}^{d}\cos(cx_{i})\right)+a+\exp(1)} {\displaystyle -\exp \left({\frac {1}{d}}\sum _{i=1}^{d}\cos(cx_{i})\right)+a+\exp(1)}

Recommended variable values are a = 20 {\displaystyle a=20} {\displaystyle a=20}, b = 0.2 {\displaystyle b=0.2} {\displaystyle b=0.2}, and c = 2 π {\displaystyle c=2\pi } {\displaystyle c=2\pi }.

The global minimum is f ( x ∗ ) = 0 {\displaystyle f(\mathbf {x} ^{*})=0} {\displaystyle f(\mathbf {x} ^{*})=0} at x ∗ = 0 {\displaystyle \mathbf {x} ^{*}=\mathbf {0} } {\displaystyle \mathbf {x} ^{*}=\mathbf {0} }.

See also

Notes

  1. Ackley, D. H. (1987) "A connectionist machine for genetic hillclimbing", Kluwer Academic Publishers, Boston MA. p. 13-14
  2. Bingham, Derek (2013). "Ackley Function". Virtual Library of Simulation Experiments: Test Functions and Datasets. Simon Fraser University. Retrieved December 22, 2024.