00001 00025 #ifndef _REWARD_MODEL_H_ 00026 #define _REWARD_MODEL_H_ 00027 00028 #include <mdm_library/common_defs.h> 00029 00030 00031 00032 namespace mdm_library 00033 { 00034 class RewardModel 00035 { 00036 public: 00039 virtual double getReward ( uint32_t state, 00040 uint32_t action ) = 0; 00041 }; 00042 00043 class RewardMatrix : public RewardModel 00044 { 00045 public: 00046 RewardMatrix ( MatrixPtr matrix_ptr ) : 00047 R_ptr_ ( matrix_ptr ) {} 00048 00049 double getReward ( uint32_t state, 00050 uint32_t action ) 00051 { 00052 return ( *R_ptr_ ) ( state, action ); 00053 } 00054 private: 00055 MatrixPtr R_ptr_; 00056 }; 00057 00058 #ifdef HAVE_MADP 00059 00060 class MADPReward : public RewardModel 00061 { 00062 00063 }; 00064 00065 #endif 00066 } 00067 00068 #endif