Kernel Tuning Toolkit 2.3
 
Loading...
Searching...
No Matches
McmcSearcher.h
Go to the documentation of this file.
1
4#pragma once
5
6#include <cstddef>
7#include <map>
8#include <random>
9#include <set>
10
12#include <KttPlatform.h>
13
14namespace ktt
15{
16
20class KTT_API McmcSearcher : public Searcher
21{
22public:
28
34 [[deprecated("Use constructor which accepts kernel configuration.")]] McmcSearcher(const std::vector<double>& start);
35
36 void OnInitialize() override;
37 void OnReset() override;
38
39 bool CalculateNextConfiguration(const KernelResult& previousResult) override;
41
42private:
43 uint64_t m_Index;
44 size_t m_VisitedStatesCount;
45 size_t m_OriginState;
46 size_t m_CurrentState;
47 size_t m_Boot;
48 double m_BestTime;
49
50 KernelConfiguration m_Start;
51 std::map<size_t, double> m_ExecutionTimes;
52
53 std::default_random_engine m_Generator;
54 std::uniform_int_distribution<size_t> m_IntDistribution;
55 std::uniform_real_distribution<double> m_ProbabilityDistribution;
56
57 inline static size_t m_MaximumDifferences = 2;
58 inline static size_t m_BootIterations = 10;
59 inline static double m_EscapeProbability = 0.02;
60};
61
62} // namespace ktt
Definition KernelConfiguration.h:19
Definition KernelResult.h:21
Definition McmcSearcher.h:21
McmcSearcher(const KernelConfiguration &start={})
KernelConfiguration GetCurrentConfiguration() const override
bool CalculateNextConfiguration(const KernelResult &previousResult) override
void OnReset() override
McmcSearcher(const std::vector< double > &start)
void OnInitialize() override
Definition Searcher.h:23
Definition KttPlatform.h:41