26 enum class DiscreteIndices { containerTraversalEstimator, dataLayout, newton3, TOTALNUMBER };
31 enum class ContinuousIndices { cellSizeFactor, TOTALNUMBER };
49 using DiscreteDimensionType = std::array<int, tunableDiscreteDims>;
54 using ContinuousDimensionType = std::array<double, tunableContinuousDims>;
71 const std::vector<FeatureVector::ContainerTraversalEstimatorOption> &containerTraversalEstimatorOptions,
72 const std::vector<DataLayoutOption> &dataLayoutOptions,
const std::vector<Newton3Option> &newton3Options,
73 const NumberSet<double> &cellSizeFactors,
const InteractionTypeOption &interactionType);
85 const std::vector<FeatureVector::ContainerTraversalEstimatorOption> &containerTraversalEstimatorOptions,
86 const std::vector<DataLayoutOption> &dataLayoutOptions,
const std::vector<Newton3Option> &newton3Options,
124 double iteration)
const;
141 const Eigen::VectorXi &target);
150 const Eigen::VectorXi &target);
179 [[nodiscard]] std::pair<DiscreteDimensionType, ContinuousDimensionType> convertToTunable(
189 [[nodiscard]]
FeatureVector convertFromTunable(
const DiscreteDimensionType &discreteValues,
190 const ContinuousDimensionType &continuousValues)
const;
198 template <
typename T>
199 static size_t getIndex(
const std::vector<T> &list,
const T &value) {
200 for (
size_t i = 0; i < list.size(); ++i) {
201 if (list[i] == value)
return i;
208 std::vector<FeatureVector::ContainerTraversalEstimatorOption> _containerTraversalEstimatorOptions{};
209 std::vector<DataLayoutOption> _dataLayoutOptions{};
210 std::vector<Newton3Option> _newton3Options{};
211 InteractionTypeOption _interactionType;
215 std::array<int, tunableDiscreteDims> _discreteRestrictions{};
225 size_t _oneHotDims{0};
Encoder to convert FeatureVector from and to Eigen::Vector.
Definition: FeatureVectorEncoder.h:22
static constexpr size_t tunableContinuousDims
Number of tunable continuous dimensions.
Definition: FeatureVectorEncoder.h:42
FeatureVector oneHotDecode(const Eigen::VectorXd &vec)
Decode one-hot-encoded VectorXd to FeatureVector.
Definition: FeatureVectorEncoder.cpp:68
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.
Definition: FeatureVectorEncoder.cpp:21
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...
Definition: FeatureVectorEncoder.cpp:240
Eigen::VectorXd oneHotEncode(const FeatureVector &vec) const
Encode FeatureVector to Eigen::VectorXd using one-hot-encoding.
Definition: FeatureVectorEncoder.cpp:47
std::pair< Eigen::VectorXi, Eigen::VectorXd > convertToCluster(const FeatureVector &vec, double iteration) const
Convert Feature vector to cluster representation for GaussianCluster.
Definition: FeatureVectorEncoder.cpp:110
std::vector< std::pair< Eigen::VectorXi, double > > clusterNeighboursManhattan1Container(const Eigen::VectorXi &target)
Get cluster-encoded neighbours of given target.
Definition: FeatureVectorEncoder.cpp:168
size_t getOneHotDims() const
Get the dimensions of a one-hot encoded vector.
Definition: FeatureVectorEncoder.cpp:40
FeatureVector convertFromCluster(const std::pair< Eigen::VectorXi, Eigen::VectorXd > &vec)
Inverse of convertToCluster.
Definition: FeatureVectorEncoder.cpp:125
std::vector< std::pair< Eigen::VectorXi, double > > clusterNeighboursManhattan1(const Eigen::VectorXi &target)
Get cluster-encoded neighbours of given target with fixed weight.
Definition: FeatureVectorEncoder.cpp:142
static constexpr size_t tunableDiscreteDims
Number of tunable discrete dimensions.
Definition: FeatureVectorEncoder.h:37
const std::array< int, tunableDiscreteDims > & getDiscreteRestrictions() const
Get the number of allowed options of each discrete dimension.
Definition: FeatureVectorEncoder.cpp:43
FeatureVectorEncoder()
Default Constructor.
std::vector< FeatureVector > lhsSampleFeatures(size_t n, Random &rng) const
Create n latin-hypercube-samples from given featureSpace.
Definition: FeatureVectorEncoder.cpp:207
FeatureVector representation of a Configuration.
Definition: FeatureVector.h:21
Virtual class describing a finite or infinite set of numbers.
Definition: NumberSet.h:22
Class for random algorithms.
Definition: Random.h:22
static void exception(const Exception e)
Handle an exception derived by std::exception.
Definition: ExceptionHandler.h:63
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32