Mathematical Definition

\[f(\textbf{x}) = x_1 + d\left(\sum_{i=2}^{n}x_i^2\right)^\alpha\]

In this formula, \(d\) and \(\alpha\) are constants and are usually set to \(d = 1, \alpha=0.5\).

Plots

For \(d=2, \alpha=0.1\), the plots are:

Ridge Function

Ridge Function

Ridge Function

For \(d=2, \alpha=2\), the plots are:

Ridge Function

Ridge Function

Ridge Function

Two contours of the function are presented below: For \(d=2, \alpha=0.1\), the function contour is:

Ridge Function

For \(d=2, \alpha=2\), the function contour is:

Ridge Function

Description and Features

  • The function is not convex.
  • The function is defined on n-dimensional space.
  • The function is non-separable.
  • The function is differentiable.

Input Domain

The function can be defined on any input domain. It is evaluated on $x_i \in [-5, 5]$ for $i=1, 2$.

Global Minima

The global minimum of the function depends on the hypercube it is defined on. On the hypercube \([-\gamma, \gamma]^n\), $f(\textbf{x}^{\ast})= -\gamma$ located at $\mathbf{x^\ast}=(-\gamma, 0, …, 0)$.

Implementation

Python

For Python, the function is implemented in the benchmarkfcns package, which can be installed from command line with pip install benchmarkfcns.

from benchmarkfcns import ridge

print(ridge([[0, 0, 0],
              [1, 1, 1]]))

MATLAB

An implementation of the Ridge Function with MATLAB is provided below.

% Computes the value of the Ridge benchmark function.
% SCORES = RIDGEFCN(X) computes the value of the Ridge function at point X.
% RIDGEFCN accepts a matrix of size M-by-N and returns a vetor SCORES of 
% size M-by-1 in which each row contains the function value for the 
% corresponding row of X. 
% SCORES = RIDGEFCN(X, D) specifies contribution coefficient of the sphere 
% component of the function.
% SCORES = RIDGEFCN(X, D, APLPHA) specifies power of the sphere component of 
% the function.
% 
% Author: Mazhar Ansari Ardeh
% Please forward any comments or bug reports to mazhar.ansari.ardeh at
% Google's e-mail service or feel free to kindly modify the repository.
function scores = ridgefcn(x, d, alpha)

    if nargin < 3 
        alpha = 0.5;
    end
    if nargin < 2
        d = 1;
    end
        
    x1 = x(:, 1);
    scores = x1 + d * (sum(x(:, 2:end).^2, 2) .^ alpha);
end

The function can be represented in Latex as follows:

f(\textbf{x}) = x_1 + d\left(\sum_{i=2}^{n}x_i^2\right)^\alpha

Acknowledgement:

References:

  • Beyer HG., Finck S. (2012) HappyCat – A Simple Function Class Where Well-Known Direct Search Algorithms Do Fail. In: Coello C.A.C., Cutello V., Deb K., Forrest S., Nicosia G., Pavone M. (eds) Parallel Problem Solving from Nature - PPSN XII. PPSN 2012. Lecture Notes in Computer Science, vol 7491. Springer, Berlin, Heidelberg, https://doi.org/10.1007/978-3-642-32937-1_37
  • Oyman, A.I.: Convergence Behavior of Evolution Strategies on Ridge Functions. Ph.D. Thesis, University of Dortmund, Department of Computer Science (1999)