59 PredictiveTuning(
double relativeOptimum,
unsigned int maxTuningIterationsWithoutTest,
60 unsigned int testsUntilFirstPrediction, ExtrapolationMethodOption extrapolationMethodOption,
61 const std::string &outputSuffix =
"");
67 bool reset(
size_t iteration,
size_t tuningPhase, std::vector<Configuration> &configQueue,
86 const std::vector<Configuration> &configurations,
94 long linePrediction(
size_t iteration,
size_t tuningPhase,
const Configuration &configuration,
95 const std::vector<Evidence> &evidenceVec);
100 long linearRegression(
size_t iteration,
size_t tuningPhase,
const Configuration &configuration,
101 const std::vector<Evidence> &evidenceVec);
106 long newtonPolynomial(
size_t iteration,
size_t tuningPhase,
const Configuration &configuration,
107 const std::vector<Evidence> &evidenceVec);
112 long lastResult(
size_t tuningPhase,
const Configuration &configuration,
const std::vector<Evidence> &evidenceVec);
117 constexpr static long _predictionErrorValue{std::numeric_limits<long>::max()};
122 constexpr static long _predictionOverflowValue{std::numeric_limits<long>::max() - 1};
127 constexpr static long _predictionUnderflowValue{1l};
138 std::unordered_map<Configuration, std::vector<double>, ConfigHash> _predictionFunctionParameters{};
142 std::set<Configuration> _tooLongNotTestedSearchSpace{};
146 double _relativeOptimumRange{1.2};
150 unsigned int _maxTuningPhasesWithoutTest{100};
155 ExtrapolationMethodOption _extrapolationMethod{ExtrapolationMethodOption::linearRegression};
161 unsigned int _minNumberOfEvidence{3};
163 PredictionLogger _predictionLogger;
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
In every tuning phase, this strategy makes a prediction about the run time for every configuration.
Definition: PredictiveTuning.h:43
bool optimizeSuggestions(std::vector< Configuration > &configQueue, const EvidenceCollection &evidenceCollection) override
Optimizes the queue of configurations to process.
Definition: PredictiveTuning.cpp:351
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: PredictiveTuning.cpp:428
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: PredictiveTuning.cpp:357
std::unordered_map< Configuration, long, ConfigHash > PredictionsType
Shorthand for the type used to store predictions in.
Definition: PredictiveTuning.h:49
TuningStrategyOption getOptionType() const override
Get this object's associated TuningStrategyOption type.
Definition: PredictiveTuning.cpp:434
PredictiveTuning::PredictionsType calculatePredictions(size_t iteration, size_t tuningPhase, const std::vector< Configuration > &configurations, const autopas::EvidenceCollection &evidenceCollection)
For all given configuration use the chosen extrapolation method to calculate a prediction based on th...
Definition: PredictiveTuning.cpp:43
void addEvidence(const Configuration &configuration, const Evidence &evidence) override
Notifies the strategy about empirically collected information for the given configuration.
Definition: PredictiveTuning.cpp:420
Interface for tuning strategies for the auto tuner.
Definition: TuningStrategyInterface.h:23
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32