OPTK  0.1.2
Toolkit for global optimisation algorithms
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
syn::regression Class Referenceabstract

#include <synthetic.hpp>

Inheritance diagram for syn::regression:
syn::synthetic optk::benchmark syn::court01 syn::court02 syn::court03 syn::court04 syn::court05 syn::court06 syn::court07 syn::court08 syn::court09 syn::court10 syn::court11 syn::court13 syn::court14 syn::court15 syn::court16 syn::court17 syn::court18 syn::court19 syn::court20 syn::court21 syn::court22 syn::court24 syn::court25 syn::court26 syn::court27 syn::court28

Public Types

enum  dist_type : char { one, dist_type::squared, dist_type::inf }
 

Public Member Functions

 regression (rdims dims, double *e_mat, double *centres, double *coefs, const std::string &n, double fmin, double *minloc)
 
virtual void kernel (double *xs, double *ret)=0
 
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 ()
 

Protected Member Functions

void dist_sq_1 (double *xs, double *ret)
 
void dist_sq_2 (double *xs, double *ret)
 
void dist_sq_inf (double *xs, double *ret)
 
- Protected Member Functions inherited from syn::synthetic
void set_opt_param (inst::set op)
 

Private Attributes

double * m_e_mat
 
double * m_centres
 
double * m_coefs
 
rdims m_dims
 

Additional Inherited Members

- 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

This is the base class for implementing a set of functions devised by Michael McCourt working at SigOpt, (a commercial function optimisation service). The derived functions all fit into the framework of a linear combination of functions, many of which are positive definite kernels.

Member Enumeration Documentation

◆ dist_type

enum syn::regression::dist_type : char
strong
Enumerator
squared 

For calculating the l1 norm

inf 

For calculating the l2 norm For claculating the infinity norm

Constructor & Destructor Documentation

◆ regression()

syn::regression::regression ( rdims  dims,
double *  e_mat,
double *  centres,
double *  coefs,
const std::string &  n,
double  fmin,
double *  minloc 
)

The constructor for the regression-type problems.

Parameters
dimsThe number of dimensions of the problem
e_matTODO document this
centersTODO document this
coefsThe regression coefficients
nThe benchmark name
fminThe known global minimum.
minlocThe position of a/the global minimum

Member Function Documentation

◆ dist_sq_1()

void syn::regression::dist_sq_1 ( double *  xs,
double *  ret 
)
protected

The dist_sq(1) function

Parameters
xsThe input parameters
retA double[dims.coef][dims.prob] array to return values.

◆ dist_sq_2()

void syn::regression::dist_sq_2 ( double *  xs,
double *  ret 
)
protected

The dist_sq(2) function

Parameters
xsThe input parameters
retA double[dims.coef][dims.prob] array to return values.

◆ dist_sq_inf()

void syn::regression::dist_sq_inf ( double *  xs,
double *  ret 
)
protected

The dist_sq(inf) function

Parameters
xsThe input parameters
retA double[dims.coef][dims.prob] array to return values.

◆ evaluate()

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