12#include <unordered_set>
32 constexpr static size_t maxAttempts = 10;
36 constexpr static double secondsPerMicroseconds = 1. / 1000000.;
45 constexpr static double sigma = 0.01;
50 constexpr static double iterationScalePerMaxEvidence = 5.;
57 constexpr static double suggestedMaxDistance = 7.;
76 const InteractionTypeOption &interactionType,
77 const std::set<ContainerOption> &allowedContainerOptions = ContainerOption::getAllOptions(),
79 const std::set<TraversalOption> &allowedTraversalOptions = TraversalOption::getAllOptions(),
80 const std::set<LoadEstimatorOption> &allowedLoadEstimatorOptions = LoadEstimatorOption::getAllOptions(),
81 const std::set<DataLayoutOption> &allowedDataLayoutOptions = DataLayoutOption::getAllOptions(),
82 const std::set<Newton3Option> &allowedNewton3Options = Newton3Option::getAllOptions(),
size_t maxEvidence = 10,
83 AcquisitionFunctionOption predAcqFunction = AcquisitionFunctionOption::upperConfidenceBound,
84 const std::string &outputSuffix =
"",
size_t predNumLHSamples = 50,
unsigned long seed = std::random_device()());
92 bool reset(
size_t iteration,
size_t tuningPhase, std::vector<Configuration> &configQueue,
117 std::vector<autopas::GaussianModelTypes::VectorPairDiscreteContinuous> sampleAcquisitions(
118 size_t n, AcquisitionFunctionOption af);
124 void updateOptions();
126 const InteractionTypeOption _interactionType;
128 std::set<ContainerOption> _containerOptionsSet;
129 std::vector<FeatureVector::ContainerTraversalEstimatorOption> _containerTraversalEstimatorOptions;
130 std::vector<DataLayoutOption> _dataLayoutOptions;
131 std::vector<Newton3Option> _newton3Options;
132 std::unique_ptr<NumberSet<double>> _cellSizeFactors;
138 std::vector<GaussianModelTypes::VectorPairDiscreteContinuous> _currentAcquisitions;
142 std::unordered_set<FeatureVector, ConfigHash> _invalidConfigs;
158 const size_t _maxEvidence;
162 const AcquisitionFunctionOption _predAcqFunction;
166 const size_t _predNumLHSamples;
170 bool _firstTuningPhase;
174 size_t _currentIteration;
178 const double _iterationScale;
182 size_t _currentNumEvidence;
186 long _currentOptimalTime;
Assume that the stochastic distribution of the execution time while fixing discrete variables corresp...
Definition: BayesianClusterSearch.h:28
TuningStrategyOption getOptionType() const override
Get this object's associated TuningStrategyOption type.
Definition: BayesianClusterSearch.cpp:204
bool reset(size_t iteration, size_t tuningPhase, std::vector< Configuration > &configQueue, const autopas::EvidenceCollection &evidenceCollection) override
Reset all internal parameters to the beginning of a new tuning phase.
Definition: BayesianClusterSearch.cpp:96
void rejectConfiguration(const Configuration &configuration, bool indefinitely) override
Notify the strategy about a configuration that is (currently) invalid and thus can potentially be dro...
Definition: BayesianClusterSearch.cpp:200
bool optimizeSuggestions(std::vector< Configuration > &configQueue, const EvidenceCollection &evidenceCollection) override
Optimizes the queue of configurations to process.
Definition: BayesianClusterSearch.cpp:138
bool needsSmoothedHomogeneityAndMaxDensity() const override
Indicate whether the strategy needs smoothed values of homogeneity and max density.
Definition: BayesianClusterSearch.h:106
void addEvidence(const Configuration &configuration, const Evidence &evidence) override
Notifies the strategy about empirically collected information for the given configuration.
Definition: BayesianClusterSearch.cpp:78
bool searchSpaceIsEmpty() const
Indicate if the search space is empty.
Definition: BayesianClusterSearch.cpp:123
Class containing multiple options that form an algorithm configuration for the pairwise iteration.
Definition: Configuration.h:24
Class to manage all evidence.
Definition: EvidenceCollection.h:21
Helper class that associates a measurement with the iteration when it was taken.
Definition: Evidence.h:15
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 representation of a Configuration.
Definition: FeatureVector.h:21
Model to predicts the output of a blackbox function f(x) for given input x.
Definition: GaussianCluster.h:30
Class describing an interval.
Definition: NumberInterval.h:15
Virtual class describing a finite or infinite set of numbers.
Definition: NumberSet.h:22
Class for random algorithms.
Definition: Random.h:22
Interface for tuning strategies for the auto tuner.
Definition: TuningStrategyInterface.h:23
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