Scheduler
stateSpace.h
Go to the documentation of this file.
1 
10 #ifndef MDP_STATE_SPACE_H
11 #define MDP_STATE_SPACE_H
12 
13 #include <memory>
14 #include <vector>
15 
16 #include "action_impl.h"
17 #include "state.h"
18 #include "stateSpaceDimension.h"
19 
20 
21 namespace Mdp
22 {
23 
24 typedef std::vector<statePosition_t> StateInternal;
25 
26 class DomainModel;
27 class PriorityState;
28 
30 {
31  friend class StateSpaceBuilder;
32 public:
33  StateSpace(const StateSpace&) = delete;
34  StateSpace& operator=(const StateSpace&) = delete;
35 
36  ~StateSpace();
37  virtual size_t size();
38  virtual state_t getState();
43  virtual void updateCurrentState();
46  virtual double getReward();
49  virtual size_t getNbOfDimensions();
52  virtual std::vector<size_t> *factorize(state_t state);
55  virtual std::vector<size_t> getDimensionSizes();
56 protected:
62  void updateInternalState();
64  /*state space has to be constructed with the builder*/
66  std::vector<StateSpaceDimension *> dimensions,
67  std::vector<PriorityState *> priorityStates);
68  state_t convertState(StateInternal);
69 
70  size_t nbOfStates{0}; /*excluding priority states*/
71  size_t nbOfPriorityStates{0};
72  std::vector<StateSpaceDimension *> dimensions;
73  std::vector<PriorityState *> priorityStates;
74  StateInternal currentState;
75  std::shared_ptr<DomainModel> domainModel{nullptr};
77 
78  StateInternal internalState;
79 
80 };
81 
82 
83 
84 
85 
86 }
87 
88 
89 
90 
91 #endif
std::shared_ptr< DomainModel > domainModel
Definition: stateSpace.h:75
StateInternal internalState
Definition: stateSpace.h:78
virtual std::vector< size_t > * factorize(state_t state)
Definition: stateSpace.cpp:81
std::vector< StateSpaceDimension * > dimensions
Definition: stateSpace.h:72
virtual state_t getState()
Definition: stateSpace.cpp:54
size_t nbOfPriorityStates
Definition: stateSpace.h:71
state_t currentExternalState
Definition: stateSpace.h:76
state_t convertState(StateInternal)
Definition: stateSpace.cpp:132
virtual size_t size()
Definition: stateSpace.cpp:160
Definition: action.h:18
StateSpace & operator=(const StateSpace &)=delete
virtual std::vector< size_t > getDimensionSizes()
Definition: stateSpace.cpp:120
StateInternal currentState
Definition: stateSpace.h:74
size_t nbOfStates
Definition: stateSpace.h:70
void updateInternalState()
Definition: stateSpace.cpp:42
virtual double getReward()
Definition: stateSpace.cpp:166
virtual size_t getNbOfDimensions()
Definition: stateSpace.cpp:75
a single state of the state space
Definition: priorityState.h:31
size_t state_t
Definition: state.h:19
std::vector< PriorityState * > priorityStates
Definition: stateSpace.h:73
virtual void updateCurrentState()
Definition: stateSpace.cpp:59
int getPriorityStateInternal()
Definition: stateSpace.cpp:150
std::vector< statePosition_t > StateInternal
Definition: stateSpace.h:24
builds a domain specific state space