Model to predicts the output of a blackbox function f(x) for given input x. More...
#include <GaussianCluster.h>
Public Types | |
| enum | WeightFunction { evidenceMatchingProbabilityGM , evidenceMatchingScaledProbabilityGM , wasserstein2 } |
| Different weight functions between clusters. More... | |
Public Member Functions | |
| GaussianCluster (const std::vector< int > &dimRestriction, size_t continuousDims, WeightFunction weightFun, double sigma, Random &rngRef, const GaussianModelTypes::VectorToStringFun &vectorToString=defaultVecToString, const std::string &outputSuffix="") | |
| Constructor. | |
| const std::vector< int > & | getDimensions () const |
| Get the number of clusters in each dimension. | |
| void | setDimensions (const std::vector< int > &newValue) |
| Change the number of cluster in all dimension. | |
| const GaussianProcess & | getCluster (size_t index1D) const |
| Get the underlying GaussianProcess of a cluster. | |
| void | clear () |
| Discard all evidence. | |
| size_t | numEvidence () const |
| Get the number of evidence provided. | |
| void | addEvidence (const GaussianModelTypes::VectorDiscrete &inputDiscrete, const GaussianModelTypes::VectorContinuous &inputContinuous, double output) |
| Provide a input-output pair as evidence. | |
| void | addEvidence (const GaussianModelTypes::VectorPairDiscreteContinuous &input, double output) |
| Provide a input-output pair as evidence. | |
| GaussianModelTypes::VectorPairDiscreteContinuous | getEvidenceMax () const |
| Get the evidence with the highest output value. | |
| 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 their corresponding acquisition. | |
| 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 their weight to each other. | |
| void | setVectorToStringFun (const GaussianModelTypes::VectorToStringFun &fun) |
| Change the used function to convert from vector to string. | |
| 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 the vector with maximum acquisition. | |
| 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 by their acquisition. | |
Static Public Member Functions | |
| static std::string | defaultVecToString (const GaussianModelTypes::VectorPairDiscreteContinuous &vec) |
| Default function used to convert vectors to readable strings. | |
Model to predicts the output of a blackbox function f(x) for given input x.
The model separates discrete and continuous dimensions of x. For each possible discrete tuple a Gaussian process is assigned to estimate f(x) if the tuple is fixed. Some sample input-output pairs (x,f(x)) should be provided as evidence.
Different weight functions between clusters.
| autopas::GaussianCluster::GaussianCluster | ( | const std::vector< int > & | dimRestriction, |
| size_t | continuousDims, | ||
| WeightFunction | weightFun, | ||
| double | sigma, | ||
| Random & | rngRef, | ||
| const GaussianModelTypes::VectorToStringFun & | vectorToString = defaultVecToString, |
||
| const std::string & | outputSuffix = "" |
||
| ) |
Constructor.
| dimRestriction | restrict the i-th dimension to a integer between 0 and dimRestriction[i]-1 |
| continuousDims | additional unrestricted dimensions |
| weightFun | function to calculate weight between clusters |
| sigma | fixed noise |
| rngRef | reference to random number generator |
| vectorToString | function to convert vectors to a readable string |
| outputSuffix | Suffix for all output files produced by this class. |
| void autopas::GaussianCluster::addEvidence | ( | const GaussianModelTypes::VectorDiscrete & | inputDiscrete, |
| const GaussianModelTypes::VectorContinuous & | inputContinuous, | ||
| double | output | ||
| ) |
Provide a input-output pair as evidence.
Each evidence improve the quality of future predictions.
| inputDiscrete | x |
| inputContinuous | y |
| output | f((x,y)) |
| void autopas::GaussianCluster::addEvidence | ( | const GaussianModelTypes::VectorPairDiscreteContinuous & | input, |
| double | output | ||
| ) |
Provide a input-output pair as evidence.
Each evidence improves the quality of future predictions.
| input | (x,y) |
| output | f((x,y)) |
|
static |
Default function used to convert vectors to readable strings.
| vec |
| const autopas::GaussianProcess & autopas::GaussianCluster::getCluster | ( | size_t | index1D | ) | const |
Get the underlying GaussianProcess of a cluster.
This function should only be used for testing purposes.
| index1D |
| const std::vector< int > & autopas::GaussianCluster::getDimensions | ( | ) | const |
Get the number of clusters in each dimension.
| autopas::GaussianModelTypes::VectorPairDiscreteContinuous autopas::GaussianCluster::getEvidenceMax | ( | ) | const |
Get the evidence with the highest output value.
| void autopas::GaussianCluster::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 their weight to each other.
Output graph in AutoPasLog Trace.
| neighbourFun | function which generates neighbours of given discrete tuple |
| continuousSamples | continuous tuples |
| size_t autopas::GaussianCluster::numEvidence | ( | ) | const |
Get the number of evidence provided.
| std::vector< autopas::GaussianModelTypes::VectorAcquisition > autopas::GaussianCluster::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 their corresponding acquisition.
| af | function to optimize |
| neighbourFun | function which generates neighbours of given discrete tuple |
| continuousSamples | continuous tuples |
| autopas::GaussianModelTypes::VectorAcquisition autopas::GaussianCluster::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 the vector with maximum acquisition.
| af | function to optimize |
| neighbourFun | function which generates neighbours with prior weight of given discrete tuple |
| continuousSamples | continuous tuples |
| std::vector< autopas::GaussianModelTypes::VectorPairDiscreteContinuous > autopas::GaussianCluster::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 by their acquisition.
| af | function to optimize |
| neighbourFun | function which generates neighbours with prior weight of given discrete tuple |
| continuousSamples | continuous tuples |
| void autopas::GaussianCluster::setDimensions | ( | const std::vector< int > & | newValue | ) |
Change the number of cluster in all dimension.
This will discard all evidence.
| newValue | new number of clusters in each dimension |
| void autopas::GaussianCluster::setVectorToStringFun | ( | const GaussianModelTypes::VectorToStringFun & | fun | ) |
Change the used function to convert from vector to string.
| fun | new converter |