Reinforcement Learning Toolbox 2.0
last updated:
General
Documentation
Manual
Tutorial
Class Reference
Master Thesis
Examples
Related Papers
Downloads
Links
News
mailto:webmaster
Main Page     Class Hierarchy   Compound List   File List   Compound Members   File Members

ctaxidomain.h

Go to the documentation of this file.
00001 #ifndef C__TAXIDOMAIN_H
00002 #define C__TAXIDOMAIN_H
00003 
00004 #include "cgridworldmodel.h"
00005 #include "cagent.h"
00006 #include "caction.h"
00007 #include "cdiscretizer.h"
00008 #include "crewardfunction.h"
00009 
00010 
00011 #include <vector>
00012 
00013 #define PICKUPACTION 32
00014 #define PUTDOWNACTION 64
00015 
00016 class CTaxiDomain : public CGridWorldModel
00017 {
00018 protected:
00019         std::vector<std::pair<int, int> *> *targetXYValues;
00020 
00021         virtual void initTargetVector();
00022 public:
00023 
00024         CTaxiDomain(char* filename);    
00025         virtual ~CTaxiDomain();
00026 
00027         virtual void load(FILE *stream);
00028 
00029         int getTargetPositionX(int numTarget);
00030 
00031         int getTargetPositionY(int numTarget);
00032 
00033         int getNumTargets() {return targetXYValues->size();};
00034 
00035         double getReward(CStateCollection *, CAction *, CStateCollection *);
00036 
00037         virtual void transitionFunction(CState *oldstate, CAction *action, CState *newState, CActionData *data = NULL);
00038 
00039         virtual bool isResetState(CState *state);
00040 
00041         virtual void getResetState(CState *resetState);
00042 
00043 
00044 };
00045 
00046 class CPickupAction : public  CPrimitiveAction
00047 {
00048 public:
00049         CPickupAction(){addType(PICKUPACTION);};
00050 };
00051 
00052 class CPutdownAction : public  CPrimitiveAction
00053 {
00054 public:
00055         CPutdownAction(){addType(PUTDOWNACTION);};
00056 };
00057 
00058 class CTaxiHierarchicalBehaviour : public CHierarchicalSemiMarkovDecisionProcess, public CRewardFunction
00059 {
00060 protected:
00061         int target;
00062         CTaxiDomain *model;
00063 
00064 public:
00065         CTaxiHierarchicalBehaviour(CEpisode *currentEpisode, int target, CTaxiDomain *taximodel);
00066         ~CTaxiHierarchicalBehaviour();
00067 
00068         virtual bool isFinished(CStateCollection *state, CStateCollection *newState);
00069         virtual double getReward(CStateCollection *oldState, CAction *action, CStateCollection *newState);
00070 };
00071 
00072 class CTaxiIsTargetDiscreteState : public CAbstractStateDiscretizer
00073 {
00074 protected:
00075         CTaxiDomain *model;
00076 public:
00077         CTaxiIsTargetDiscreteState(CTaxiDomain *model);
00078 
00079         virtual unsigned int getDiscreteStateNumber(CStateCollection *stateCol);
00080 
00081 };
00082 
00083 
00084 #endif