Go to the documentation of this file.00001
00010 #ifndef UNIQUEBELIEFHEAP3_H
00011 #define UNIQUEBELIEFHEAP3_H
00012
00013 #include <map>
00014 #include <string>
00015 #include <vector>
00016 #include "MathLib.h"
00017 #include "MObject.h"
00018 using namespace std;
00019
00020 namespace momdp{
00021
00022 struct BeliefVector_RowIndexPair
00023 {
00024 BeliefVector_RowIndexPair(SharedPointer<belief_vector>& bel, int row)
00025 {
00026 vector = bel;
00027 this->row = row;
00028 }
00029
00030 SharedPointer<belief_vector> vector;
00031 int row;
00032 };
00033 class UniqueBeliefHeap
00034 {
00035 private:
00036 map<string, vector<BeliefVector_RowIndexPair> > uniqueBelHeap;
00037
00038 bool hasBelief(SharedPointer<belief_vector>& bel);
00039 public:
00046 int addBeliefRowPair(SharedPointer<belief_vector>& bel, int row);
00047
00048
00056 int getBeliefRowIndex(SharedPointer<belief_vector>& bel) const;
00057
00058
00067 bool isStorageMaterial(SharedPointer<belief_vector>& bel);
00068
00069
00070 void printHashMap()const ;
00071
00072 virtual ~UniqueBeliefHeap();
00073 };
00074 }
00075 #endif