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