18 # ifndef __BAYES_OPT__H 19 # define __BAYES_OPT__H 28 int LAPACKE_dposv(
int matrix_layout,
char uplo,
int n,
int nrhs,
double* A,
int LDA,
double* B,
int LDB);
120 double pdf(
double mu,
double sigma);
122 double cdf(
double mu,
double sigma);
124 double grad_pdf(
double mu,
double sigma,
double grad_mu,
double grad_sigma);
std::vector< double > f_prev
void HS_partial_optimization_problem_grad(Matrix_real parameters, void *void_params, Matrix_real &grad)
???????????????
Matrix_real covariance
covariance matrix
long maximal_iterations
maximal count of iterations during the optimization
double num_precision
numerical precision used in the calculations
A class implementing the BayesOpt algorithm as seen in: https://browse.arxiv.org/pdf/1807.02811.pdf.
double HS_partial_optimization_problem(Matrix_real parameters, void *void_params)
???????????????
void HS_partial_optimization_problem_combined(Matrix_real parameters, void *void_params, double *f0, Matrix_real &grad)
???????????????
double expected_improvement(double mu_n, double sigma_n)
double grad_pdf(double mu, double sigma, double grad_mu, double grad_sigma)
double Start_Optimization(Matrix_real &x, int max_iterations_in)
double alpha0
amplitude of the kernel
long maximal_iterations
maximal count of iterations during the optimization
void * meta_data
additional data needed to evaluate the cost function
double mu_0
constant for the mean function
Bayes_Opt(double(*f_pointer)(Matrix_real, void *), void *meta_data_in)
Constructor of the class.
double kernel(Matrix_real x0, Matrix_real x1)
double num_precision
numerical precision used in the calculations
int variable_num
number of independent variables in the problem
void update_covariance(Matrix_real cov_new)
double(* costfnc)(Matrix_real x, void *params)
function pointer to evaluate the cost function and its gradient vector
std::vector< Matrix_real > x_prev
previous parameters
double cdf(double mu, double sigma)
double pdf(double mu, double sigma)
int LAPACKE_dposv(int matrix_layout, char uplo, int n, int nrhs, double *A, int LDA, double *B, int LDB)
~Bayes_Opt()
Destructor of the class.
void calculate_conditional_distribution(Matrix_real x, Matrix_real cov_x, double &mu_n, double &sigma2_n)
static void optimization_problem_combined(Matrix_real x, void *void_instance, double *f0, Matrix_real &grad)
void expected_improvement_combined(double mu_n, double sigma_n, Matrix_real &grad_mu, Matrix_real &grad_sigma, double *f, Matrix_real &grad)
void kernel_combined(Matrix_real x0, Matrix_real x, double &f, Matrix_real &grad, int grad_var, bool self)
int variable_num
number of independent variables in the problem
void * meta_data
additional data needed to evaluate the cost function
void calculate_conditional_distribution_combined(Matrix_real x, Matrix_real cov_x, Matrix_real cov_x_grad, Matrix_real cov_self_grad, double &mu_n, double &sigma2_n, Matrix_real &grad_mu, Matrix_real &grad_sigma)
Class to store data of complex arrays and its properties.
static double optimization_problem(Matrix_real x_Powell, void *void_instance)