Rosenbrock
Mathematical Definition
Latex
f(x, y)=\sum_{i=1}^{n}[b (x_{i+1} - x_i^2)^ 2 + (a - x_i)^2]
Description and Features
Dimensions: d
The Rosenbrock function, also referred to as the Valley or Banana function, is a popular test problem for gradient-based optimization algorithms. It is shown in the plot above in its two-dimensional form.
The function is unimodal, and the global minimum lies in a narrow, parabolic valley. However, even though this valley is easy to find, convergence to the minimum is difficult (Picheny et al., 2012).
- The function is continuous.
- The function is convex.
- The function is defined on n-dimensional space.
- The function is multimodal.
- The function is differentiable.
- The function is non-separable.
Input Domain
The function is usually evaluated on the hypercube $x_i \in [-5, 10]$, for all $i=1, …, d$, although it may be restricted to the hypercube $x_i \in [-2.048, 2.048]$, for all $i=1, …, d$.
Global Minima
The function has one global minimum $f(\textbf{x}^{\ast})=0$ at $\textbf{x}^{\ast} = (1, …, 1)$.
Implementation
Python Code
def function(x):
x = np.array(x)
return np.sum([((1. - x[i]) ** 2)
+ (100 * (x[i + 1] - x[i] ** 2) ** 2)
for i in range(len(x) - 1)])
Solutions
References:
- http://benchmarkfcns.xyz/benchmarkfcns/rosenbrockfcn.html
- http://www.sfu.ca/~ssurjano/rosen.html
- https://en.wikipedia.org/wiki/Test_functions_for_optimization
- Momin Jamil and Xin-She Yang, A literature survey of benchmark functions for global optimization problems, Int. Journal of Mathematical Modelling and Numerical Optimisation}, Vol. 4, No. 2, pp. 150–194 (2013), arXiv:1308.4008