-
Notifications
You must be signed in to change notification settings - Fork 0
Rosenbrock
Description [view source]
The Rosenbrock function is a widely used benchmark for testing optimization algorithms. It is defined mathematically as:
Where Rosenbrock.ndim) with a default value of 2.
Here is a link to an interactive Desmos version (note: it is scaled for better visibility): https://www.desmos.com/3d/siewparbrw
Rosenbrock().visualize()
Rosenbrock().visualize(plot_bounds=[(-3, 3), (-0.25, 1.25)])
- Non-convexity: The function has a narrow, curved valley containing the global minimum. Finding the valley is trivial, but converging to the global minimum is challenging.
-
Global minimum: The global minimum is
$f(x^{*}=<1,...,1>)=0$ . -
Search space: Typically, it is evaluated over
$[-5, 10]$ for each dimension. - Smoothness: The function is smooth and differentiable, which is advantageous for gradient-based optimization methods.
The Rosenbrock function is often used to test the performance of optimization algorithms, especially in terms of their ability to handle non-convexity and narrow, curved valleys. Algorithms tend to find the valley rather easily, but then progress slowly or fail due to a weak gradient.
Finally, the position of it's global minimum (i.e.,
It was introduced by Howard H. Rosenbrock (short biography) in his 1960 article titled An Automatic Method for finding the Greatest or Least Value of a Function. We make this article available here with the publisher's permission : Rosenbrock (1960).pdf
Another worthwhile reference is simply it's Wikipedia page : https://en.wikipedia.org/wiki/Rosenbrock_function