⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctaxidomain.h

📁 强化学习算法(R-Learning)难得的珍贵资料
💻 H
字号:
#ifndef C__TAXIDOMAIN_H
#define C__TAXIDOMAIN_H

#include "cgridworldmodel.h"
#include "cagent.h"
#include "ril_debug.h"

#include <vector>

#define PICKUPACTION 32
#define PUTDOWNACTION 64

class CTaxiDomain : public CGridWorldModel
{
protected:
	std::vector<std::pair<int, int> *> *targetXYValues;

	virtual void initTargetVector();
public:

	CTaxiDomain(char* filename);	
	virtual ~CTaxiDomain();

	virtual void load(FILE *stream);

	int getTargetPositionX(int numTarget);

	int getTargetPositionY(int numTarget);

	int getNumTargets() {return targetXYValues->size();};

	rlt_real getReward(CStateCollection *, CAction *, CStateCollection *);

	virtual void transitionFunction(CState *oldstate, CAction *action, CState *newState, CActionData *data = NULL);

	virtual bool isResetState(CState *state);

	virtual void getResetState(CState *resetState);


};

class CPickupAction : public  CPrimitiveAction
{
public:
	CPickupAction(){addType(PICKUPACTION);};
};

class CPutdownAction : public  CPrimitiveAction
{
public:
	CPutdownAction(){addType(PUTDOWNACTION);};
};

class CTaxiHierarchicalBehaviour : public CHierarchicalSemiMarkovDecisionProcess, public CRewardFunction
{
protected:
	int target;
	CTaxiDomain *model;

public:
	CTaxiHierarchicalBehaviour(CEpisode *currentEpisode, int target, CTaxiDomain *taximodel);
	~CTaxiHierarchicalBehaviour();

	virtual bool isFinished(CStateCollection *state, CStateCollection *newState);
	virtual rlt_real getReward(CStateCollection *oldState, CAction *action, CStateCollection *newState);
};

class CTaxiIsTargetDiscreteState : public CAbstractStateDiscretizer
{
protected:
	CTaxiDomain *model;
public:
	CTaxiIsTargetDiscreteState(CTaxiDomain *model);

	virtual unsigned int getDiscreteStateNumber(CStateCollection *stateCol);

};


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -