00001 #ifndef ObservationProbabilitiesByFunction_H 00002 #define ObservationProbabilitiesByFunction_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 "ObservationProbabilities.h" 00011 00012 00013 using namespace std; 00014 using namespace momdp; 00015 namespace momdp 00016 { 00017 class MOMDP; 00018 class ObservationProbabilitiesByFunction : public ObservationProbabilities 00019 { 00020 private: 00021 SharedPointer<SparseMatrix> getMatrixInner(int a, int x, bool transpose); 00022 00023 public: 00024 ObservationProbabilitiesByFunction(void); 00025 virtual ~ObservationProbabilitiesByFunction(void); 00026 00027 REAL_VALUE prob(Observations::iterator& o, States::iterator& x, States::iterator& y, Actions::iterator& a); 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 00034 MOMDP* problem; 00035 }; 00036 } 00037 00038 #endif 00039 00040 00041 00042