Scheduler
actionValuesRecord.h
Go to the documentation of this file.
1 
10 #ifndef ACTION_VALUES_RECORD_H
11 #define ACTION_VALUES_RECORD_H
12 
13 #include <cmath>
14 #include <cstddef>
15 #include <memory>
16 #include <vector>
17 
18 #include <mdp/stateSpace.h>
19 #include <mdp/actionSpace.h>
21 
22 namespace Mdp
23 {
24 
25 class MdpConfiguration;
26 
28 {
29 public:
30  ActionValuesRecord(std::shared_ptr<MdpConfiguration> conf, size_t stateSize, size_t actionSize);
31  void init();
32  void recordActionValues(ActionValuesFunction *actionValues, state_t state, action_t action);
33  void end();
34 private:
35  void recordAllActionValues(ActionValuesFunction *actionValues);
36  void recordLastActionValue(double value, state_t state, action_t action);
37  std::vector<int> getListOfActionsToRecordFromFile();
38  void writeChunkToDisk(state_t s, action_t a);
39  void writeAllChunksToDisk();
40  /*order: state, actions, chunk*/
41  std::vector<std::vector<std::vector<std::pair<double, double>>>> avChunk;
42  std::shared_ptr<MdpConfiguration> conf;
43  std::vector<int> statesToRecord;
44  size_t chunkSize;
45  size_t S;
46  size_t A;
47  bool enableRecordingOfActionValues{false};
48  bool recordOnlyLastAction{false};
49  void recordLastDataPoint();
50  std::vector<std::vector<double>> lastValueRecorded;
51 };
52 
53 
54 }
55 #endif
void recordActionValues(ActionValuesFunction *actionValues, state_t state, action_t action)
size_t action_t
Definition: action_impl.h:18
Definition: action.h:18
size_t state_t
Definition: state.h:19
ActionValuesRecord(std::shared_ptr< MdpConfiguration > conf, size_t stateSize, size_t actionSize)