-
Notifications
You must be signed in to change notification settings - Fork 0
Ackley
Description [view source]
The Ackley function is a widely used benchmark for testing optimization algorithms due to its rugged landscape with many local minima. It is defined mathematically as:
The default values Ackley.ndim) is 2.
Here is a link to an interactive Desmos version: https://www.desmos.com/3d/jfqx9ev8fz
Ackley().visualize()
- Multimodality: The function has a large number of local minima, making it challenging for optimization algorithms to find the global minimum.
-
Global minimum: The global minimum
$f(x^{*}=<0,...,0>)=0$ . -
Search space: Typically, the function is evaluated over a bounded region, often
$[-32.768, 32.768]$ for each dimension, which is also the default value. - Smoothness: Despite its complexity, the function is smooth and differentiable, which is advantageous for gradient-based optimization methods.
It is interesting to note that the values ± 32.768 don't have any special intrinsic meaning. Instead, it is an artifact of the fixed-point arithmetic that was prevalent on older computers. In such systems, each coordinate could fit in a 16-bit signed integer, allowing efficient representation and computation within this range.
The Ackley function is useful for evaluating the performance of optimization algorithms in terms of their ability to escape local minima and explore the search space. Its highly multimodal landscape presents a significant challenge for many optimization techniques, especially those that rely on local search heuristics. Algorithms that can effectively navigate the rugged terrain of the Ackley function are likely to perform well on a variety of real-world optimization problems.
This function was introduced in David Ackley's PhD dissertation titled A Connectionist Machine for Genetic Hill Climbing in 1987. His personal home page can be found here : https://www.cs.unm.edu/~ackley/.