OPTK  0.1.2
Toolkit for global optimisation algorithms
Public Member Functions | List of all members
syn::deckkers_aarts Class Reference

#include <synthetic.hpp>

Inheritance diagram for syn::deckkers_aarts:
syn::synthetic optk::benchmark

Public Member Functions

double evaluate (inst::set x) override
 
- Public Member Functions inherited from syn::synthetic
 synthetic (const std::string &n, u_int dims, double lb, double ub, double opt)
 
 synthetic (const std::string &n, u_int dims, double opt)
 
 ~synthetic ()
 
sspace::sspace_tget_search_space ()
 
void set_properties (std::vector< properties > p)
 
std::vector< propertiesget_properties ()
 
inst::set get_opt_param ()
 
double get_opt ()
 
void update_opt (double opt)
 
u_int get_dims ()
 
void validate_param_set (inst::set x)
 
- Public Member Functions inherited from optk::benchmark
 benchmark (const std::string &name)
 
std::string get_name ()
 

Additional Inherited Members

- Protected Member Functions inherited from syn::synthetic
void set_opt_param (inst::set op)
 
- Protected Attributes inherited from syn::synthetic
u_int m_dims
 
double m_lb
 
double m_ub
 
double m_opt
 
std::vector< propertiesm_properties
 
inst::set opt_params
 
sspace::sspace_t m_sspace
 
- Protected Attributes inherited from optk::benchmark
std::string m_name
 

Detailed Description

The Deb 1 function has the following formula:

\[ f(\mathbf{x}) = \frac{1}{D}\sum^D_{i=1}\sin^6(5\pi x_i), \]

subject to \(-1 \le x_i \le 1\). There are \(5^Df$ global minima which are evenly spaced. One such minimum is found at \){x}^* = (0.3, , 0.3) \( with value \)f({x}^*) = -1 \(. */ class deb1: public synthetic { public: deb1 (int dims); double evaluate (inst::set x) override; }; /** The Deb 2 function has the following formula: \f[ f(\mathbf{x}) = -\frac{1}{D}\sum^D_{i=1} \sin^6\left(5\pi \big(x_i^{3/4} - 0.05 \big)\right), \f] subject to \)-1 x_i 1 ^Df$ global minima which are evenly spaced. One such minimum is found at \(\mathbf{x}^* = (0.0796993926887, \ldots, 0.0796993926887)\) with value \(f(\mathbf{x}^*) = -1\). */ class deb2: public synthetic { public: deb2 (int dims); double evaluate (inst::set x) override; };

/** The Deckkers-Aarts function has the following formula:

\[ f(\mathbf{x}) = 15^5x_1^2 + x_2^2 - \big(x_1^2 + x_2^2\big)^2 + 10^{-5}\big(x_1^2 + x_2^2\big)^4, \]

subject to \(-20 \le x_i \le 20\). The two global minima are located at \(\mathbf{x}^* (0, \pm15)\), with value \(f(\mathbf{x}^*) = -24777\).

FIXME resolve floating-point arithmetic precision errors in this function's implementation.

Member Function Documentation

◆ evaluate()

double syn::deckkers_aarts::evaluate ( inst::set  x)
overridevirtual

Evaluate the benchmark (i.e. calculate the value of the objective fuinction) on the provided values.

Parameters
xA vector of double-precision values to evaluate the benchmark at.
Todo:
Verify that a vector of doubles does not constrict the range of benchmark functions which may be evaluated (i.e. as opposed to categorical variables such as strings).

Implements optk::benchmark.


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