00001 #ifndef StateTransitionXByFunction_H 00002 #define StateTransitionXByFunction_H 00003 00004 #include <vector> 00005 #include "Const.h" 00006 #include "Observations.h" 00007 #include "Actions.h" 00008 #include "States.h" 00009 #include "MathLib.h" 00010 #include "VariableRelation.h" 00011 #include "StateTransitionX.h" 00012 00013 using namespace std; 00014 using namespace momdp; 00015 namespace momdp 00016 { 00017 class MOMDP; 00018 class StateTransitionXByFunction : public StateTransitionX 00019 { 00020 private: 00021 SharedPointer<SparseMatrix> getMatrixInner(int a, int x, bool transpose); 00022 00023 public: 00024 StateTransitionXByFunction(void); 00025 virtual ~StateTransitionXByFunction(void); 00026 00027 REAL_VALUE prob(States::iterator& x, States::iterator& y, Actions::iterator& a, States::iterator& xp); 00028 00029 virtual SharedPointer<SparseMatrix> getMatrix(int a, int x); 00030 virtual SharedPointer<SparseMatrix> getMatrixTr(int a, int x); 00031 00032 vector<SharedPointer<VariableRelation> > relations; 00033 MOMDP* problem; 00034 }; 00035 } 00036 00037 #endif 00038