pass::ackley_function Class Reference

#include <ackley_function.hpp>

Inheritance diagram for pass::ackley_function:
Collaboration diagram for pass::ackley_function:

Public Member Functions

 ackley_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

Ackley’s is a widely used multimodal test function. It is named after David H. Ackley and was first published 1987 in "A Connectionist Machine for Genetic Hillclimbing. Kluwer Academic Publishers".

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

\[ f(x_0 \cdots x_n) = -20 exp(-0.2 \sqrt{\frac{1}{n} \sum_{i=1}^n x_i^2}) - exp(\frac{1}{n} \sum_{i=1}^n cos(2\pi x_i)) + 20 + e \]

\[ -32 \leq x_i \leq 32 \]

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

Constructor & Destructor Documentation

◆ ackley_function()

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

Initialises a ackley function with dimension dimensions, lower bounds of -32.768 and upper bounds of 32.768.

Member Function Documentation

◆ evaluate()

double pass::ackley_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: