pass::rosenbrock_function Class Reference

#include <rosenbrock_function.hpp>

Inheritance diagram for pass::rosenbrock_function:
Collaboration diagram for pass::rosenbrock_function:

Public Member Functions

 rosenbrock_function (const arma::uword dimension)
 
double evaluate (const arma::vec &agent) const override
 
- Public Member Functions inherited from pass::problem
arma::vec bounds_range () const noexcept
 
arma::uword dimension () const noexcept
 
 problem (const arma::uword dimension, const double lower_bound, const double upper_bound, const std::string &name)
 
 problem (const arma::vec &lower_bounds, const arma::vec &upper_bounds, const std::string &name)
 
double evaluate_normalised (const arma::vec &normalised_agent) const
 
arma::mat normalised_random_agents (const arma::uword count) const
 
arma::mat normalised_hammersley_agents (const arma::uword count) const
 
arma::mat initialise_normalised_agents (const arma::uword count) const
 

Additional Inherited Members

- Public Attributes inherited from pass::problem
const arma::vec lower_bounds
 
const arma::vec upper_bounds
 
const std::string name
 

Detailed Description

The Rosenbrock function, also referred to as the Valley or Banana function, is a popular test problem for gradient-based optimization algorithms. 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). It is named after Howard H. Rosenbrock and was first published 1960 in "An automatic method for finding the greatest or least value of a function. The Computer Journal".

Its optimal parameter = (1, ..., 1) and optimal function value = 0.

\[ f(x_1 \cdots x_n) = \sum_{i=1}^{n-1} (100(x_i^2 - x_{i+1})^2 + (1-x_i)^2) \]

\[ -2.048 \leq x_i \leq 2.048 \]

\[ \text{minimum at }f(1, 1, \cdots, 1) = 0 \]

Constructor & Destructor Documentation

◆ rosenbrock_function()

pass::rosenbrock_function::rosenbrock_function ( const arma::uword  dimension)
explicit

Initialises a rosenbrock function with dimension dimensions, lower bounds of -2.048 and upper bounds of 2.048.

Member Function Documentation

◆ evaluate()

double pass::rosenbrock_function::evaluate ( const arma::vec &  agent) const
overridevirtual

Evaluates this problem at agent, which must match the dimensions of this problem.

Implements pass::problem.


The documentation for this class was generated from the following files: