00001 #ifndef BackupAlphaPlaneMOMDP_H 00002 #define BackupAlphaPlaneMOMDP_H 00003 00004 #include "Backup.h" 00005 #include "AlphaPlane.h" 00006 #include "AlphaPlanePool.h" 00007 #include "AlphaPlanePoolSet.h" 00008 #include "MOMDP.h" 00009 #include "IndexedTuple.h" 00010 using namespace momdp; 00011 00012 namespace momdp 00013 { 00014 class AlphaPlanePool; 00015 class BeliefCache; 00016 class PointBasedAlgorithm; 00017 00018 class BackupAlphaPlaneMOMDP : public Backup<AlphaPlane> 00019 { 00020 public: 00021 BackupAlphaPlaneMOMDP(void); 00022 virtual ~BackupAlphaPlaneMOMDP(void); 00023 00024 SharedPointer<MOMDP> problem; 00025 AlphaPlanePoolSet *boundSet; 00026 00027 PointBasedAlgorithm* solver; 00028 //BeliefCache* beliefCache; 00029 //IndexedTuple<AlphaPlanePoolDataTuple> *dataTable; 00030 00031 void setProblem(SharedPointer<MOMDP> p) 00032 { 00033 problem = p; 00034 } 00035 void setSolver(PointBasedAlgorithm *p) 00036 { 00037 solver = p; 00038 } 00039 00040 virtual SharedPointer<AlphaPlane> backup(BeliefTreeNode * node); 00041 virtual double getNewAlphaPlane(AlphaPlane& result, BeliefTreeNode& cn); 00042 virtual void getNewAlphaPlaneQ(AlphaPlane& result, const BeliefTreeNode& cn, int a); 00043 00044 }; 00045 } 00046 #endif 00047