00001 #ifndef BackupBeliefValuePairMOMDP_H 00002 #define BackupBeliefValuePairMOMDP_H 00003 00004 #include "Backup.h" 00005 #include "BeliefValuePair.h" 00006 #include "BeliefValuePairPool.h" 00007 #include "BeliefValuePairPoolSet.h" 00008 #include "IndexedTuple.h" 00009 using namespace momdp; 00010 namespace momdp 00011 { 00012 class BeliefValuePairPool; 00013 class MOMDP; 00014 00015 class BackupBeliefValuePairMOMDP : public Backup<BeliefValuePair> 00016 { 00017 public: 00018 //REMOVE:: IndexedTuple<BeliefValuePairPoolDataTuple> *dataTable;, use individual BeliefValuePairPools's datatable 00019 SharedPointer<MOMDP> problem; 00020 BeliefValuePairPoolSet *boundSet; 00021 00022 00023 00024 BackupBeliefValuePairMOMDP(void); 00025 virtual ~BackupBeliefValuePairMOMDP(void); 00026 00027 void setProblem(SharedPointer<MOMDP> p) 00028 { 00029 problem = p; 00030 } 00031 void setSolver(PointBasedAlgorithm *p) 00032 { 00033 //solver = p; 00034 } 00035 void setBound(PointBasedAlgorithm *p) 00036 { 00037 00038 } 00039 00040 virtual SharedPointer<BeliefValuePair> backup(BeliefTreeNode * node); 00041 virtual double getNewUBValueQ(BeliefTreeNode& cn, int a); 00042 virtual double getNewUBValueSimple(BeliefTreeNode& cn, int* maxUBActionP); 00043 virtual double getNewUBValueUseCache(BeliefTreeNode& cn, int* maxUBActionP); 00044 virtual double getNewUBValue(BeliefTreeNode& cn, int* maxUBActionP); 00045 00046 }; 00047 } 00048 00049 00050 #endif 00051