BayesOpt
prob_distribution.hpp
Go to the documentation of this file.
1 
4 /*
5 -------------------------------------------------------------------------
6  This file is part of BayesOpt, an efficient C++ library for
7  Bayesian optimization.
8 
9  Copyright (C) 2011-2015 Ruben Martinez-Cantin <rmcantin@unizar.es>
10 
11  BayesOpt is free software: you can redistribute it and/or modify it
12  under the terms of the GNU Affero General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  BayesOpt is distributed in the hope that it will be useful, but
17  WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  GNU Affero General Public License for more details.
20 
21  You should have received a copy of the GNU Affero General Public License
22  along with BayesOpt. If not, see <http://www.gnu.org/licenses/>.
23 ------------------------------------------------------------------------
24 */
25 
26 
27 #ifndef __PROB_DISTRIBUTION_HPP__
28 #define __PROB_DISTRIBUTION_HPP__
29 
30 #include "randgen.hpp"
31 
32 namespace bayesopt
33 {
34 
36  {
37  public:
38  ProbabilityDistribution(randEngine& eng): mtRandom(eng) {};
39  virtual ~ProbabilityDistribution(){};
40 
46  virtual double pdf(double x) = 0;
47 
48 
55  virtual double negativeExpectedImprovement(double min, size_t g) = 0;
56 
63  virtual double lowerConfidenceBound(double beta = 1) = 0;
64 
72  virtual double negativeProbabilityOfImprovement(double yMin,
73  double epsilon) = 0;
74 
82  virtual double sample_query() = 0;
83 
84  virtual double getMean() = 0;
85  virtual double getStd() = 0;
86 
87  protected:
88  randEngine& mtRandom;
89  };
90 
91 } //namespace bayesopt
92 
93 #endif
94 
virtual double negativeProbabilityOfImprovement(double yMin, double epsilon)=0
Probability of improvement algorithm for minimization.
virtual double lowerConfidenceBound(double beta=1)=0
Lower confindence bound.
Namespace of the library interface.
Definition: using.dox:1
virtual double sample_query()=0
Sample outcome acording to the marginal distribution at the query point.
virtual double pdf(double x)=0
Probability density function.
Boost types for random number generation.
virtual double negativeExpectedImprovement(double min, size_t g)=0
Expected Improvement algorithm for minimization.