Go to the documentation of this file.00001
00005 #ifndef BinManager_H
00006 #define BinManager_H
00007
00008 #include <iostream>
00009 #include <string>
00010 #include <vector>
00011 #include "BeliefCache.h"
00012 #include "BeliefValuePairPool.h"
00013
00014 using namespace std;
00015
00016 namespace momdp{
00017 class BinManagerDataTuple
00018 {
00019 public:
00020 bool binned;
00021 };
00022
00023 class BinManager{
00024 public:
00025
00026 BinManager(BeliefValuePairPool * _initialUB, BeliefCache* _beliefCache, state_val _sval);
00027 void updateNode(int row);
00028 void printBinCount();
00029 double getBinValue(int row);
00030
00031 IndexedTuple<BinManagerDataTuple> binManagerDataTable;
00032 private:
00033
00034 BeliefValuePairPool* initialUB;
00035 BeliefCache* beliefCache;
00036 double highest;
00037 double lowest;
00038 state_val sval;
00039
00040 void initializeNode(BeliefTreeNode & node);
00041 void updateBin(BeliefTreeNode & node);
00042
00043
00044 const static int initial_bin_size = 5;
00045 const static int bin_growth_factor = 2;
00046 void initializeDynamicBins();
00047 int bin_level_count;
00048 map <int,
00049 map <string,
00050 double
00051 >
00052 >
00053 binLevels_intervals;
00054
00055 map <int,
00056 map <int,
00057 map <string,
00058 double
00059 >
00060 >
00061 >
00062 binLevels_nodes;
00063
00064 map <int,
00065 map <string,
00066 map <string,
00067 double
00068 >
00069 >
00070 >
00071 binLevels;
00072
00073 map <int,
00074 double
00075 >
00076 previous_lowerbound;
00077 };
00078 };
00079
00080 #endif