AutoPas  3.0.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
autopas::GaussianCluster Class Reference

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 GaussianProcessgetCluster (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::VectorAcquisitionsampleAcquisition (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::VectorPairDiscreteContinuoussampleOrderedByAcquisition (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.
 

Detailed Description

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.

Member Enumeration Documentation

◆ WeightFunction

Different weight functions between clusters.

Enumerator
evidenceMatchingProbabilityGM 

geometric mean of probability densitiy over all evidence in neighbouring cluster if provided to the target cluster

evidenceMatchingScaledProbabilityGM 

geometric mean of scaled probability densitiy over all evidence in neighbouring cluster if provided to the target cluster Probability densities are scaled such that the maximum is 1.

wasserstein2 

Wasserstein-2 distance of normal distributions of cluster given a continuous cluster.

Constructor & Destructor Documentation

◆ GaussianCluster()

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.

Parameters
dimRestrictionrestrict the i-th dimension to a integer between 0 and dimRestriction[i]-1
continuousDimsadditional unrestricted dimensions
weightFunfunction to calculate weight between clusters
sigmafixed noise
rngRefreference to random number generator
vectorToStringfunction to convert vectors to a readable string
outputSuffixSuffix for all output files produced by this class.

Member Function Documentation

◆ addEvidence() [1/2]

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.

Parameters
inputDiscretex
inputContinuousy
outputf((x,y))

◆ addEvidence() [2/2]

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.

Parameters
input(x,y)
outputf((x,y))

◆ defaultVecToString()

std::string autopas::GaussianCluster::defaultVecToString ( const GaussianModelTypes::VectorPairDiscreteContinuous vec)
static

Default function used to convert vectors to readable strings.

Note
begin() and end() currently not available for Eigen::Vector, so AutoPas ArrayUtils cannot be used.
Parameters
vec
Returns
string with format (a,b,...,n) beginning with discrete values.

◆ getCluster()

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.

Parameters
index1D
Returns

◆ getDimensions()

const std::vector< int > & autopas::GaussianCluster::getDimensions ( ) const

Get the number of clusters in each dimension.

Returns

◆ getEvidenceMax()

autopas::GaussianModelTypes::VectorPairDiscreteContinuous autopas::GaussianCluster::getEvidenceMax ( ) const

Get the evidence with the highest output value.

Returns
input of max

◆ logDebugGraph()

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.

Parameters
neighbourFunfunction which generates neighbours of given discrete tuple
continuousSamplescontinuous tuples

◆ numEvidence()

size_t autopas::GaussianCluster::numEvidence ( ) const

Get the number of evidence provided.

Returns

◆ sampleAcquisition()

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.

Parameters
affunction to optimize
neighbourFunfunction which generates neighbours of given discrete tuple
continuousSamplescontinuous tuples
Returns
all discrete-continuous tuples paired with their corresponding acquisition

◆ sampleAcquisitionMax()

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.

Parameters
affunction to optimize
neighbourFunfunction which generates neighbours with prior weight of given discrete tuple
continuousSamplescontinuous tuples
Returns
pair of vector and corresponding maximum acquistion

◆ sampleOrderedByAcquisition()

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.

Parameters
affunction to optimize
neighbourFunfunction which generates neighbours with prior weight of given discrete tuple
continuousSamplescontinuous tuples
Returns
all discrete-continuous tuples ordered by their corresponding acquisition

◆ setDimensions()

void autopas::GaussianCluster::setDimensions ( const std::vector< int > &  newValue)

Change the number of cluster in all dimension.

This will discard all evidence.

Parameters
newValuenew number of clusters in each dimension

◆ setVectorToStringFun()

void autopas::GaussianCluster::setVectorToStringFun ( const GaussianModelTypes::VectorToStringFun fun)

Change the used function to convert from vector to string.

Parameters
funnew converter

The documentation for this class was generated from the following files: