https://github.com/xbpeng/DeepTerrainRL
Raw File
Tip revision: ed82e2ebe5f14fa875cc3d0a2180c64980408e8f authored by Glen on 19 October 2016, 17:49:36 UTC
Update README.md
Tip revision: ed82e2e
BaseControllerCacla.h
#pragma once

#include "sim/DogControllerQ.h"

class cBaseControllerCacla : public virtual cTerrainRLCharController
{
public:
	EIGEN_MAKE_ALIGNED_OPERATOR_NEW
	
	cBaseControllerCacla();
	virtual ~cBaseControllerCacla();
	
	virtual int GetPoliActionSize() const;
	virtual void RecordPoliAction(Eigen::VectorXd& out_action) const;
	
	virtual bool ValidCritic() const;
	virtual bool LoadCriticNet(const std::string& net_file);
	virtual void LoadCriticModel(const std::string& model_file);

	virtual void CopyNet(const cNeuralNet& net);
	virtual void CopyActorNet(const cNeuralNet& net);
	virtual void CopyCriticNet(const cNeuralNet& net);

	virtual void SetExpNoise(double noise);

	virtual const cNeuralNet& GetActor() const;
	virtual cNeuralNet& GetActor();
	virtual const cNeuralNet& GetCritic() const;
	virtual cNeuralNet& GetCritic();

	virtual int GetActorInputSize() const;
	virtual int GetActorOutputSize() const;
	virtual int GetCriticInputSize() const;
	virtual int GetCriticOutputSize() const;

	virtual void BuildNNOutputOffsetScale(Eigen::VectorXd& out_offset, Eigen::VectorXd& out_scale) const;
	virtual void BuildActorOutputOffsetScale(Eigen::VectorXd& out_offset, Eigen::VectorXd& out_scale) const;
	virtual void BuildCriticOutputOffsetScale(Eigen::VectorXd& out_offset, Eigen::VectorXd& out_scale) const;

protected:
	cNeuralNet mCriticNet;
	double mExpNoise;

	virtual bool ShouldExplore() const;
	virtual void DecideAction(tAction& out_action);
	virtual void ExploitPolicy(tAction& out_action);
	virtual void ExploreAction(tAction& out_action);

	virtual void RecordVal();
	virtual void BuildCriticInput(Eigen::VectorXd& out_x) const;

	virtual void FetchExpNoiseScale(Eigen::VectorXd& out_noise) const;
	virtual void ApplyExpNoise(tAction& out_action);
	virtual void ApplyExpNoiseAction(tAction& out_action);
};
back to top