00001 #ifndef PointBasedAlgorithm_H 00002 #define PointBasedAlgorithm_H 00003 00004 #include <vector> 00005 #include "Const.h" 00006 #include "solverUtils.h" 00007 #include "MOMDP.h" 00008 00009 using namespace std; 00010 using namespace momdp; 00011 namespace momdp 00012 { 00013 class BeliefForest; 00014 class BeliefCache; 00015 class Sample; 00016 00017 class PointBasedAlgorithm 00018 { 00019 public: 00020 SolverParams * solverParams; 00021 SharedPointer<MOMDP> problem; 00022 BeliefForest* beliefForest; 00023 vector <BeliefCache *> beliefCacheSet; 00024 // Sample Related 00025 Sample* sampleEngine; 00026 00027 int numBackups; 00028 00029 PointBasedAlgorithm(void) 00030 { 00031 } 00032 virtual ~PointBasedAlgorithm(void) 00033 { 00034 } 00035 00036 virtual void writePolicy(string fileName, string problemName) = 0; 00037 virtual void solve(SharedPointer<MOMDP> problem) = 0; 00038 00039 // TODO use factory method to dynamically produce solver specific data tuple 00040 virtual void* getSolverData() 00041 { 00042 return NULL; 00043 } 00044 }; 00045 00046 } 00047 00048 00049 #endif