Go to the documentation of this file.00001
00009 #ifndef _EXPLOREMODEL_HH_
00010 #define _EXPLOREMODEL_HH_
00011
00012 #include <rl_common/Random.h>
00013 #include <rl_common/core.hh>
00014 #include <vector>
00015 #include <map>
00016 #include <set>
00017
00018
00021 class ExplorationModel: public MDPModel {
00022
00023 public:
00024
00043 ExplorationModel(MDPModel * model, int modelType,
00044 int exploreType, int predType, int nModels,
00045 float m, int numactions, float rmax,
00046 float qmax, float rrange, int nfactors, float v, float n,
00047 const std::vector<float> &featmax,
00048 const std::vector<float> &featmin,
00049 Random rng);
00050
00052 ExplorationModel(const ExplorationModel&);
00053
00054 virtual ~ExplorationModel();
00055 virtual ExplorationModel* getCopy();
00056
00057 virtual bool updateWithExperiences(std::vector<experience> &instances);
00058 virtual bool updateWithExperience(experience &e);
00059 virtual float getStateActionInfo(const std::vector<float> &state, int act, StateActionInfo* retval);
00060
00062 bool addStateToSet(const std::vector<float> &s);
00063
00065 bool checkForState(const std::vector<float> &s);
00066
00068 float getFeatDistToVisitedSA(const std::vector<float> &s);
00069
00070
00071 bool MODEL_DEBUG;
00072
00073 protected:
00074
00075
00076
00077 private:
00078
00081 std::set<std::vector<float> > statespace;
00082
00084 MDPModel* model;
00085
00086 std::vector<float> featmax;
00087 std::vector<float> featmin;
00088
00089 int modelType;
00090 int exploreType;
00091 int predType;
00092 int nModels;
00093 float M;
00094 int numactions; float rmax; float qmax; float rrange;
00095 int nfactors;
00096 const float v;
00097 const float n;
00098
00099 Random rng;
00100
00101 };
00102
00103
00104
00105 #endif