32 static constexpr size_t hp_sample_size = 500;
34 static constexpr size_t hp_size = 25;
69 const std::string &outputSuffix =
"");
137 [[nodiscard]] std::vector<GaussianModelTypes::VectorAcquisition>
sampleAcquisition(
139 const std::vector<GaussianModelTypes::VectorContinuous> &continuousSamples)
const;
148 const std::vector<GaussianModelTypes::VectorContinuous> &continuousSamples)
const;
165 const std::vector<GaussianModelTypes::VectorContinuous> &continuousSamples)
const;
177 const std::vector<GaussianModelTypes::VectorContinuous> &continuousSamples)
const;
215 [[nodiscard]] std::tuple<std::vector<double>, std::vector<double>, std::vector<double>> precalculateDistributions(
225 [[nodiscard]] std::vector<double> precalculateAcquisitions(AcquisitionFunctionOption af,
226 const std::vector<double> &means,
227 const std::vector<double> &vars)
const;
246 const std::vector<double> &vars,
const std::vector<double> &stddevs)
const;
251 std::vector<int> _dimRestriction;
255 const size_t _continuousDims;
260 std::vector<GaussianProcess> _clusters;
265 std::vector<GaussianModelTypes::VectorDiscrete> _discreteVectorMap;
275 double _evidenceMinValue;
279 double _evidenceMaxValue;
299 std::unique_ptr<GaussianClusterLogger> _logger;
Model to predicts the output of a blackbox function f(x) for given input x.
Definition: GaussianCluster.h:30
void setDimensions(const std::vector< int > &newValue)
Change the number of cluster in all dimension.
Definition: GaussianCluster.cpp:30
std::vector< GaussianModelTypes::VectorPairDiscreteContinuous > sampleOrderedByAcquisition(AcquisitionFunctionOption af, const GaussianModelTypes::NeighbourFunction &neighbourFun, const std::vector< GaussianModelTypes::VectorContinuous > &continuousSamples) const
Generate all possible combinations of discrete tuples and continuous tuples in samples and order them...
Definition: GaussianCluster.cpp:205
const GaussianProcess & getCluster(size_t index1D) const
Get the underlying GaussianProcess of a cluster.
Definition: GaussianCluster.cpp:35
void setVectorToStringFun(const GaussianModelTypes::VectorToStringFun &fun)
Change the used function to convert from vector to string.
Definition: GaussianCluster.cpp:184
static std::string defaultVecToString(const GaussianModelTypes::VectorPairDiscreteContinuous &vec)
Default function used to convert vectors to readable strings.
Definition: GaussianCluster.cpp:229
void logDebugGraph(const GaussianModelTypes::NeighbourFunction &neighbourFun, const std::vector< GaussianModelTypes::VectorContinuous > &continuousSamples) const
Generate all possible combinations of discrete tuples and continuous tuples in samples and calculate ...
Definition: GaussianCluster.cpp:166
std::vector< GaussianModelTypes::VectorAcquisition > sampleAcquisition(AcquisitionFunctionOption af, const GaussianModelTypes::NeighbourFunction &neighbourFun, const std::vector< GaussianModelTypes::VectorContinuous > &continuousSamples) const
Generate all possible combinations of discrete tuples and continuous tuples in samples and calculate ...
Definition: GaussianCluster.cpp:116
GaussianModelTypes::VectorPairDiscreteContinuous getEvidenceMax() const
Get the evidence with the highest output value.
Definition: GaussianCluster.cpp:108
void clear()
Discard all evidence.
Definition: GaussianCluster.cpp:39
WeightFunction
Different weight functions between clusters.
Definition: GaussianCluster.h:40
@ evidenceMatchingProbabilityGM
geometric mean of probability densitiy over all evidence in neighbouring cluster if provided to the t...
Definition: GaussianCluster.h:45
@ wasserstein2
Wasserstein-2 distance of normal distributions of cluster given a continuous cluster.
Definition: GaussianCluster.h:54
@ evidenceMatchingScaledProbabilityGM
geometric mean of scaled probability densitiy over all evidence in neighbouring cluster if provided t...
Definition: GaussianCluster.h:50
void addEvidence(const GaussianModelTypes::VectorDiscrete &inputDiscrete, const GaussianModelTypes::VectorContinuous &inputContinuous, double output)
Provide a input-output pair as evidence.
Definition: GaussianCluster.cpp:48
const std::vector< int > & getDimensions() const
Get the number of clusters in each dimension.
Definition: GaussianCluster.cpp:28
size_t numEvidence() const
Get the number of evidence provided.
Definition: GaussianCluster.cpp:46
GaussianModelTypes::VectorAcquisition sampleAcquisitionMax(AcquisitionFunctionOption af, const GaussianModelTypes::NeighbourFunction &neighbourFun, const std::vector< GaussianModelTypes::VectorContinuous > &continuousSamples) const
Generate all possible combinations of discrete tuples and continuous tuples in samples and returns th...
Definition: GaussianCluster.cpp:188
Gaussian process is a stochastical model.
Definition: GaussianProcess.h:30
Class for random algorithms.
Definition: Random.h:22
std::pair< std::pair< VectorDiscrete, VectorContinuous >, double > VectorAcquisition
store pairs of vectors and corresponding acquisition
Definition: GaussianModelTypes.h:30
Eigen::VectorXd VectorContinuous
Type of a continuous tuple.
Definition: GaussianModelTypes.h:25
Eigen::VectorXi VectorDiscrete
Type of a discrete tuple.
Definition: GaussianModelTypes.h:21
std::vector< std::vector< std::tuple< size_t, double, double > > > NeighboursWeights
for each vector store a vector of all neighbours, their corresponding prior weight and final weight
Definition: GaussianModelTypes.h:40
std::function< std::string(const VectorPairDiscreteContinuous &)> VectorToStringFun
function to convert a vector to a string.
Definition: GaussianModelTypes.h:50
std::pair< VectorDiscrete, VectorContinuous > VectorPairDiscreteContinuous
Vector described by a discrete and a continuous part.
Definition: GaussianModelTypes.h:45
std::function< std::vector< std::pair< VectorDiscrete, double > >(VectorDiscrete)> NeighbourFunction
function that generate all neighbouring vectors of given vector with weights
Definition: GaussianModelTypes.h:35
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32