#include <rosenbrock_function.hpp>
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()
|
explicit |
Initialises a rosenbrock function with dimension
dimensions, lower bounds of -2.048 and upper bounds of 2.048.
Member Function Documentation
◆ evaluate()
|
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:
- /Users/romeo/Desktop/PASS/include/pass_bits/problem/optimisation_benchmark/rosenbrock_function.hpp
- /Users/romeo/Desktop/PASS/src/problem/optimisation_benchmark/rosenbrock_function.cpp