00001 #ifndef Rewards_H 00002 #define Rewards_H 00003 00004 #include "Const.h" 00005 #include "Observations.h" 00006 #include "Actions.h" 00007 #include "States.h" 00008 #include "MathLib.h" 00009 #include "BeliefWithState.h" 00010 #include "IVariable.h" 00011 #include "VariableRelation.h" 00012 00013 using namespace std; 00014 using namespace momdp; 00015 namespace momdp 00016 { 00017 class MOMDP; 00018 class Rewards : public MObject 00019 { 00020 friend class MOMDP; 00021 private: 00022 vector<SharedPointer<SparseMatrix> > matrix; 00023 00024 00025 public: 00026 Rewards(void); 00027 virtual ~Rewards(void); 00028 00029 vector<SharedPointer<IVariable> > vars; 00030 00031 virtual REAL_VALUE getReward(BeliefWithState& belief, int a); 00032 REAL_VALUE reward(States::iterator& x, States::iterator& y, Actions::iterator& a); 00033 00034 virtual SharedPointer<SparseMatrix> getMatrix(int x); 00035 //virtual SharedPointer<SparseMatrix> getMatrixTr(int x); 00036 00037 }; 00038 } 00039 #endif 00040 00041