00001 00007 #ifndef Controller_H 00008 #define Controller_H 00009 00010 // Some macros to adapt the Interface 00011 #define ActionDefine int const 00012 #define ObsDefine int const 00013 #define BeliefDefine SharedPointer<BeliefWithState> 00014 00015 #include <vector> 00016 #include "MOMDP.h" 00017 #include "ControllerInterface.h" 00018 00019 namespace momdp 00020 { 00021 class AlphaVectorPolicy; 00022 class SolverParams; 00023 00024 class Controller: public ControllerInterface 00025 { 00026 private: 00027 SharedPointer<MOMDP> problem; 00028 SharedPointer<AlphaVectorPolicy> policy; 00029 SolverParams* solverParams; 00030 // starting value of X 00031 SharedPointer<BeliefWithState> currBelSt; 00032 // If this is the first action => ignore the obs and don't 00033 // update the belief 00034 bool firstAction; 00035 int lastAction; 00036 int initialBeliefStvalX; 00037 00038 public: 00039 Controller(SharedPointer<MOMDP> problem, 00040 SharedPointer<AlphaVectorPolicy> policy, 00041 SolverParams * solverParams, 00042 int initialBeliefStvalX = -1); 00043 void reset(int xstate); 00044 ActionDefine nextAction(ObsDefine obs, int nextStateX); 00045 BeliefDefine currBelief() const; 00046 }; 00047 } 00048 00049 #endif