12#include <unordered_set>
34 constexpr static size_t maxAttempts = 10;
38 constexpr static double secondsPerMicroseconds = 1. / 1000000.;
57 const InteractionTypeOption &interactionType,
58 const std::set<ContainerOption> &allowedContainerOptions = ContainerOption::getAllOptions(),
60 const std::set<TraversalOption> &allowedTraversalOptions = TraversalOption::getAllOptions(),
61 const std::set<LoadEstimatorOption> &allowedLoadEstimatorOptions = LoadEstimatorOption::getAllOptions(),
62 const std::set<DataLayoutOption> &allowedDataLayoutOptions = DataLayoutOption::getAllOptions(),
63 const std::set<Newton3Option> &allowedNewton3Options = Newton3Option::getAllOptions(),
64 const std::set<VectorizationPatternOption> &allowedVecPatternOptions =
65 VectorizationPatternOption::getAllOptions(),
66 size_t maxEvidence = 10,
67 AcquisitionFunctionOption predAcqFunction = AcquisitionFunctionOption::upperConfidenceBound,
68 size_t predNumLHSamples = 1000,
unsigned long seed = std::random_device()());
74 bool reset(
size_t iteration,
size_t tuningPhase, std::vector<Configuration> &configQueue,
97 std::vector<FeatureVector> sampleAcquisitions(
size_t n, AcquisitionFunctionOption af);
99 const InteractionTypeOption _interactionType;
101 std::set<ContainerOption> _containerOptionsSet;
102 std::vector<FeatureVector::ContainerTraversalEstimatorOption> _containerTraversalEstimatorOptions;
103 std::vector<DataLayoutOption> _dataLayoutOptions;
104 std::vector<VectorizationPatternOption> _vecPatternOptions;
105 std::vector<Newton3Option> _newton3Options;
106 std::unique_ptr<NumberSet<double>> _cellSizeFactors;
112 std::unordered_set<FeatureVector, ConfigHash> _invalidConfigs;
117 AcquisitionFunctionOption _predAcqFunction;
118 size_t _predNumLHSamples;
Assume that the stochastic distribution of the execution time corresponds to a Gaussian Process.
Definition: BayesianSearch.h:30
void addEvidence(const Configuration &configuration, const Evidence &evidence) override
Notifies the strategy about empirically collected information for the given configuration.
Definition: BayesianSearch.cpp:153
bool optimizeSuggestions(std::vector< Configuration > &configQueue, const EvidenceCollection &evidenceCollection) override
Optimizes the queue of configurations to process.
Definition: BayesianSearch.cpp:68
TuningStrategyOption getOptionType() const override
Get this object's associated TuningStrategyOption type.
Definition: BayesianSearch.cpp:168
bool searchSpaceIsEmpty() const
Indicate if the search space contains any configurations.
Definition: BayesianSearch.cpp:140
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: BayesianSearch.cpp:160
bool needsDomainSimilarityStatistics() const override
Indicate whether the strategy needs domain similarity statistics.
Definition: BayesianSearch.cpp:166
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: BayesianSearch.cpp:147
Class containing multiple options that form an algorithm configuration for the pairwise iteration.
Definition: Configuration.h:26
Class to manage all evidence.
Definition: EvidenceCollection.h:24
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
Gaussian process is a stochastical model.
Definition: GaussianProcess.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
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:34