00001 #ifndef SEARCH_STATISTICS_H 00002 #define SEARCH_STATISTICS_H 00003 00004 #include <time.h> 00005 #include <map> 00006 #include "statistics.h" 00007 00008 class SearchStatistics 00009 { 00010 public: 00011 SearchStatistics(); 00012 ~SearchStatistics(); 00013 00014 int generated_states; 00015 00017 void countChild(int openListIndex); 00018 00020 void finishExpansion(); 00021 00023 void dump(unsigned int closedListSize, time_t & current_time); 00024 00025 private: 00026 // internal counters per expansion 00027 std::map<int, int> childrenPerOpenList; 00028 00029 std::map<int, Statistics<double> > branchingFactors; 00030 Statistics<double> overallBranchingFactor; 00031 00033 int lastDumpClosedListSize; 00034 int lastDumpGeneratedStates; 00035 time_t lastDumpTime; 00036 time_t startTime; 00037 }; 00038 00039 #endif 00040