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

Encoder to convert FeatureVector from and to Eigen::Vector. More...

#include <FeatureVectorEncoder.h>

Public Member Functions

 FeatureVectorEncoder ()
 Default Constructor.
 
 FeatureVectorEncoder (const std::vector< FeatureVector::ContainerTraversalEstimatorOption > &containerTraversalEstimatorOptions, const std::vector< DataLayoutOption > &dataLayoutOptions, const std::vector< Newton3Option > &newton3Options, const NumberSet< double > &cellSizeFactors, const InteractionTypeOption &interactionType)
 Constructor.
 
void setAllowedOptions (const std::vector< FeatureVector::ContainerTraversalEstimatorOption > &containerTraversalEstimatorOptions, const std::vector< DataLayoutOption > &dataLayoutOptions, const std::vector< Newton3Option > &newton3Options, const NumberSet< double > &cellSizeFactors)
 Set allowed options.
 
size_t getOneHotDims () const
 Get the dimensions of a one-hot encoded vector.
 
const std::array< int, tunableDiscreteDims > & getDiscreteRestrictions () const
 Get the number of allowed options of each discrete dimension.
 
Eigen::VectorXd oneHotEncode (const FeatureVector &vec) const
 Encode FeatureVector to Eigen::VectorXd using one-hot-encoding.
 
FeatureVector oneHotDecode (const Eigen::VectorXd &vec)
 Decode one-hot-encoded VectorXd to FeatureVector.
 
std::pair< Eigen::VectorXi, Eigen::VectorXd > convertToCluster (const FeatureVector &vec, double iteration) const
 Convert Feature vector to cluster representation for GaussianCluster.
 
FeatureVector convertFromCluster (const std::pair< Eigen::VectorXi, Eigen::VectorXd > &vec)
 Inverse of convertToCluster.
 
std::vector< std::pair< Eigen::VectorXi, double > > clusterNeighboursManhattan1 (const Eigen::VectorXi &target)
 Get cluster-encoded neighbours of given target with fixed weight.
 
std::vector< std::pair< Eigen::VectorXi, double > > clusterNeighboursManhattan1Container (const Eigen::VectorXi &target)
 Get cluster-encoded neighbours of given target.
 
std::vector< FeatureVectorlhsSampleFeatures (size_t n, Random &rng) const
 Create n latin-hypercube-samples from given featureSpace.
 
std::vector< Eigen::VectorXd > lhsSampleFeatureCluster (size_t n, Random &rng, double iteration) const
 Create n latin-hypercube-samples from the continuous featureSpace and append a value representing the current iteration to each sample.
 

Static Public Attributes

static constexpr size_t tunableDiscreteDims {static_cast<size_t>(DiscreteIndices::TOTALNUMBER)}
 Number of tunable discrete dimensions.
 
static constexpr size_t tunableContinuousDims {static_cast<size_t>(ContinuousIndices::TOTALNUMBER)}
 Number of tunable continuous dimensions.
 

Detailed Description

Encoder to convert FeatureVector from and to Eigen::Vector.

Constructor & Destructor Documentation

◆ FeatureVectorEncoder()

autopas::FeatureVectorEncoder::FeatureVectorEncoder ( const std::vector< FeatureVector::ContainerTraversalEstimatorOption > &  containerTraversalEstimatorOptions,
const std::vector< DataLayoutOption > &  dataLayoutOptions,
const std::vector< Newton3Option > &  newton3Options,
const NumberSet< double > &  cellSizeFactors,
const InteractionTypeOption &  interactionType 
)

Constructor.

Parameters
containerTraversalEstimatorOptions
dataLayoutOptions
newton3Options
cellSizeFactors
interactionType

Member Function Documentation

◆ clusterNeighboursManhattan1()

std::vector< std::pair< Eigen::VectorXi, double > > autopas::FeatureVectorEncoder::clusterNeighboursManhattan1 ( const Eigen::VectorXi &  target)

Get cluster-encoded neighbours of given target with fixed weight.

Neighbours are all configurations which differ in at most one configuration from target.

Parameters
target
Returns

◆ clusterNeighboursManhattan1Container()

std::vector< std::pair< Eigen::VectorXi, double > > autopas::FeatureVectorEncoder::clusterNeighboursManhattan1Container ( const Eigen::VectorXi &  target)

Get cluster-encoded neighbours of given target.

Neighbours are all configurations which differ in at most one configuration from target. The weight is lowered if container is changed.

Parameters
target
Returns

◆ convertFromCluster()

autopas::FeatureVector autopas::FeatureVectorEncoder::convertFromCluster ( const std::pair< Eigen::VectorXi, Eigen::VectorXd > &  vec)

Inverse of convertToCluster.

Convert cluster representation back to Feature vector while ignoring the iteration.

Parameters
veccluster encoded vector
Returns
decoded vector

◆ convertToCluster()

std::pair< Eigen::VectorXi, Eigen::VectorXd > autopas::FeatureVectorEncoder::convertToCluster ( const FeatureVector vec,
double  iteration 
) const

Convert Feature vector to cluster representation for GaussianCluster.

Discrete values are encoded using their index in given std::vector. Additionally, append current iteration to the continuous tuple.

Parameters
vecvector to encode
iterationcurrent iteration which may be scaled by some factor
Returns
cluster encoded vector

◆ getDiscreteRestrictions()

const std::array< int, autopas::FeatureVectorEncoder::tunableDiscreteDims > & autopas::FeatureVectorEncoder::getDiscreteRestrictions ( ) const

Get the number of allowed options of each discrete dimension.

Returns

◆ getOneHotDims()

size_t autopas::FeatureVectorEncoder::getOneHotDims ( ) const

Get the dimensions of a one-hot encoded vector.

Returns

◆ lhsSampleFeatureCluster()

std::vector< Eigen::VectorXd > autopas::FeatureVectorEncoder::lhsSampleFeatureCluster ( size_t  n,
autopas::Random rng,
double  iteration 
) const

Create n latin-hypercube-samples from the continuous featureSpace and append a value representing the current iteration to each sample.

Parameters
nnumber of samples
rng
iterationCurrent iteration which may be scaled by some factor.
Returns
vector of continuous feature samples

◆ lhsSampleFeatures()

std::vector< autopas::FeatureVector > autopas::FeatureVectorEncoder::lhsSampleFeatures ( size_t  n,
autopas::Random rng 
) const

Create n latin-hypercube-samples from given featureSpace.

Parameters
nnumber of samples
rng
Returns
vector of sample featureVectors

◆ oneHotDecode()

autopas::FeatureVector autopas::FeatureVectorEncoder::oneHotDecode ( const Eigen::VectorXd &  vec)

Decode one-hot-encoded VectorXd to FeatureVector.

Parameters
vecone-hot-encoded vector
Returns
decoded FeatureVector

◆ oneHotEncode()

Eigen::VectorXd autopas::FeatureVectorEncoder::oneHotEncode ( const FeatureVector vec) const

Encode FeatureVector to Eigen::VectorXd using one-hot-encoding.

Parameters
vecvector to encode
Returns
one-hot-encoded vector

◆ setAllowedOptions()

void autopas::FeatureVectorEncoder::setAllowedOptions ( const std::vector< FeatureVector::ContainerTraversalEstimatorOption > &  containerTraversalEstimatorOptions,
const std::vector< DataLayoutOption > &  dataLayoutOptions,
const std::vector< Newton3Option > &  newton3Options,
const NumberSet< double > &  cellSizeFactors 
)

Set allowed options.

All previously encoded vector can not be decoded anymore.

Parameters
containerTraversalEstimatorOptions
dataLayoutOptions
newton3Options
cellSizeFactors

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