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

#include <synthetic.hpp>

Inheritance diagram for syn::langermann5:
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 Langerman-5 function has the following formula:

\[ f(\mathbf{x}) = -\sum^m_{i=1}c_i e^{-\frac{1}{\pi} \sum^D_{j=1}(x_j-a_{ij})^2} \cos\left(\pi\sum^D_{j=1}(x_j-a_{ij})^2\right), \]

where the matrix \(\mathbf{A}\) and the column vector \(\mathbf{c}\) are given by

\[ \begin{align*} \mathbf{A} = [A_{ij}] &= \begin{bmatrix} 9.681 & 0.667 & 4.783 & 9.095 & 3.517 & 9.325 & 6.544 & 0.211 & 5.122 & 2.020 // 9.400 & 2.041 & 3.788 & 7.931 & 2.882 & 2.672 & 3.568 & 1.284 & 7.033 & 7.374 // 8.025 & 9.152 & 5.114 & 7.621 & 4.564 & 4.711 & 2.996 & 6.126 & 0.734 & 4.982 // 2.196 & 0.415 & 5.649 & 6.979 & 9.510 & 9.166 & 6.304 & 6.054 & 9.377 & 1.426 // 8.074 & 8.777 & 3.467 & 1.863 & 6.708 & 6.349 & 4.534 & 0.276 & 7.633 & 1.5 \end{bmatrix} \\ \mathbf{c} = c_i &= \begin{bmatrix} 0.806 \\ 0.517 \\ 1.5 \\ 0.908 \\ 0.9 \end{bmatrix} \end{align*} \]

subject to \(0 \le x_i \le 10\) for \(i \in [0, D-1]\) with \(m = 5\). The global mimimum is at \(f(\mathbf{x}^*) = -1.4\).

Todo:
find location of global minimum.

Member Function Documentation

◆ evaluate()

double syn::langermann5::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: