Grail (C++)  1.1.1
A multi-platform, modular, universal engine for embedding advanced AI in games.
UniqueTreeDataset.hh
1 #ifndef GRAIL_UNIQUE_TREE_DATASET_H
2 #define GRAIL_UNIQUE_TREE_DATASET_H
3 
4 #include <initializer_list>
5 #include <memory>
6 #include <unordered_set>
7 #include "../ISimulatedGameAction.hh"
8 #include "../DecisionTree/DTConsiderationType.hh"
9 
10 namespace grail
11 {
12  namespace simulation
13  {
14  class TreeDataSample;
15  class ISimulatedGameAction;
16  class Dataset;
17 
19  {
20  public:
21  virtual ~UniqueTreeDataset();
22 
24  void Add(std::unique_ptr<TreeDataSample> sample);
25 
27  void Add(std::vector<float>& data, const ISimulatedGameAction* action);
28 
30  std::unique_ptr<Dataset> ConvertToDataset(
31  const std::initializer_list<DTConsiderationType>& considerationTypes);
32 
34  std::unique_ptr<Dataset> ConvertToDataset(const std::vector<DTConsiderationType>& considerationTypes);
35 
38  std::unique_ptr<Dataset> ConvertToDataset(DTConsiderationType considerationType, int count);
39  private:
40  std::unordered_set<std::unique_ptr<TreeDataSample>, HashForOfflineLearning, EqualsForOfflineLearning>
41  samples;
42  };
43  }
44 }
45 
46 #endif //GRAIL_UNIQUE_TREE_DATASET_H
grail::simulation::ISimulatedGameAction
Base class for all actions in SimulatedGame. Derive from it for your actions.
Definition: ISimulatedGameAction.hh:39
grail::simulation::UniqueTreeDataset
Definition: UniqueTreeDataset.hh:18
grail::simulation::EqualsForOfflineLearning
Helper that provides a EqualsForLearning() method. Used with ISimulatedGameAction only by OfflineLear...
Definition: ISimulatedGameAction.hh:24
grail::simulation::UniqueTreeDataset::ConvertToDataset
std::unique_ptr< Dataset > ConvertToDataset(const std::initializer_list< DTConsiderationType > &considerationTypes)
Converts to a flat dataset - with the chosen decision - that is suitable for constructing the Decisio...
Definition: UniqueTreeDataset.cpp:27
grail::simulation::UniqueTreeDataset::Add
void Add(std::unique_ptr< TreeDataSample > sample)
Adds a new sample.
Definition: UniqueTreeDataset.cpp:9
grail::simulation::HashForOfflineLearning
Helper that provides a HashForLearning() method. Used with ISimulatedGameAction only by OfflineLearni...
Definition: ISimulatedGameAction.hh:14