亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cmontecarlo.cpp

?? 強化學習算法(R-Learning)難得的珍貴資料
?? CPP
字號:
// Copyright (C) 2003
// Gerhard Neumann (gerhard@igi.tu-graz.ac.at)

//                
// This file is part of RL Toolbox.
// http://www.igi.tugraz.at/ril_toolbox
//
// All rights reserved.
// 
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
//    notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in the
//    documentation and/or other materials provided with the distribution.
// 3. The name of the author may not be used to endorse or promote products
//    derived from this software without specific prior written permission.
// 
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


#include "cmontecarlo.h"
#include <math.h>

CPolicyEvaluator::CPolicyEvaluator(CAgent *agent, CRewardFunction *rewardFunction, int nEpisodes, int nStepsPerEpisode) : CSemiMDPRewardListener(rewardFunction)
{
	this->agent = agent;
	this->nEpisodes = nEpisodes;
	this->nStepsPerEpisode = nStepsPerEpisode;
}

rlt_real CPolicyEvaluator::evaluatePolicy()
{
	rlt_real value = 0;
	agent->addSemiMDPListener(this);
	for (int i = 0; i < nEpisodes; i ++)
	{
		agent->startNewEpisode();
		agent->doControllerEpisode(1, nStepsPerEpisode);
		value += this->getEpisodeValue();
	}
	value /= nEpisodes;
	agent->removeSemiMDPListener(this);
	return value;
}

CAverageRewardCalculator::CAverageRewardCalculator(CAgent *agent, CRewardFunction *rewardFunction, int nEpisodes, int nStepsPerEpisode, rlt_real minReward) : CPolicyEvaluator(agent, rewardFunction, nEpisodes, nStepsPerEpisode)
{
	nSteps = 0;
	averageReward = 0;
	this->minReward = minReward;
}

rlt_real CAverageRewardCalculator::getEpisodeValue()
{
	if (agent->getEnvironmentModel()->isFailed())
	{
		averageReward += minReward * (nStepsPerEpisode - nSteps);
		nSteps = nStepsPerEpisode;
	}
	return averageReward / nSteps;
}


void CAverageRewardCalculator::nextStep(CStateCollection *oldState, CAction *action, rlt_real reward, CStateCollection *nextState)
{
	averageReward += reward;
	nSteps ++;
}

void CAverageRewardCalculator::newEpisode()
{
	averageReward = 0;
	nSteps = 0;
}

CValueCalculator::CValueCalculator(CAgent *agent, CRewardFunction *rewardFunction, int nEpisodes, int nStepsPerEpisode, rlt_real gamma) : CPolicyEvaluator(agent, rewardFunction, nEpisodes, nStepsPerEpisode)
{
	nSteps = 0;
	value = 0;
	addParameter("DiscountFactor", gamma);
}

rlt_real CValueCalculator::getEpisodeValue()
{
	return value;
}


void CValueCalculator::nextStep(CStateCollection *oldState, CAction *action, rlt_real reward, CStateCollection *nextState)
{
	value += pow(getParameter("DiscountFactor"), nSteps) * reward;
	nSteps += action->getDuration();
}

void CValueCalculator::newEpisode()
{
	value = 0;
	nSteps = 0;
}

CPolicySameStateEvaluator::CPolicySameStateEvaluator(CAgent *agent, CRewardFunction *rewardFunction, CTransitionFunctionEnvironment *environment, CStateList *startStates, int nStepsPerEpisode) : CPolicyEvaluator(agent, rewardFunction, startStates->getNumStates(), nStepsPerEpisode)
{
	this->startStates = startStates;
	this->environment = environment;
}

rlt_real CPolicySameStateEvaluator::evaluatePolicy()
{
	rlt_real value = 0;
	agent->addSemiMDPListener(this);
	CState *startState = new CState(environment->getStateProperties());
	for (int i = 0; i < nEpisodes; i ++)
	{
		agent->startNewEpisode();
		startStates->getState(i, startState);
		environment->setState(startState);
		agent->doControllerEpisode(1, nStepsPerEpisode);
		value += this->getEpisodeValue();
	}
	value /= nEpisodes;
	agent->removeSemiMDPListener(this);
	delete startState;
	return value;
}

void CPolicySameStateEvaluator::getNewStartStates()
{
	int numStartStates = startStates->getNumStates();

	CState *startState = new CState(environment->getStateProperties());

	startStates->clear();

	for (int i = 0; i < numStartStates; i++)
	{
		environment->resetModel();
		environment->getState(startState);
		startStates->addState(startState);
	}
	delete startState;

}

CAverageRewardSameStateCalculator::CAverageRewardSameStateCalculator(CAgent *agent, CRewardFunction *rewardFunction, CTransitionFunctionEnvironment *environment, CStateList *startStates, int nStepsPerEpisode, rlt_real minReward) : CPolicySameStateEvaluator(agent, rewardFunction, environment, startStates, nStepsPerEpisode)
{
	nSteps = 0;
	averageReward = 0;

	this->minReward = minReward;

}

rlt_real CAverageRewardSameStateCalculator::getEpisodeValue()
{
	if (agent->getEnvironmentModel()->isFailed())
	{
		averageReward += minReward * (nStepsPerEpisode - nSteps);
		nSteps = nStepsPerEpisode;
	}
	return averageReward / nSteps;
}


void CAverageRewardSameStateCalculator::nextStep(CStateCollection *oldState, CAction *action, rlt_real reward, CStateCollection *nextState)
{
	averageReward += reward;
	nSteps ++;
}

void CAverageRewardSameStateCalculator::newEpisode()
{
	averageReward = 0;
	nSteps = 0;
}

CValueSameStateCalculator::CValueSameStateCalculator(CAgent *agent, CRewardFunction *rewardFunction, CTransitionFunctionEnvironment *environment, CStateList *startStates, int nStepsPerEpisode, rlt_real gamma) : CPolicySameStateEvaluator(agent, rewardFunction, environment, startStates, nStepsPerEpisode)
{
	nSteps = 0;
	value = 0;
	addParameter("DiscountFactor", gamma);
}

rlt_real CValueSameStateCalculator::getEpisodeValue()
{
	return value;
}


void CValueSameStateCalculator::nextStep(CStateCollection *oldState, CAction *action, rlt_real reward, CStateCollection *nextState)
{
	value += pow(getParameter("DiscountFactor"), nSteps) * reward;
	nSteps += action->getDuration();
}

void CValueSameStateCalculator::newEpisode()
{
	value = 0;
	nSteps = 0;
}

CPolicyGreedynessEvaluator::CPolicyGreedynessEvaluator(CAgent *agent, CRewardFunction *reward, int nEpisodes, int nStepsPerEpsiode, CAgentController *l_greedyPolicy) : CPolicyEvaluator(agent, reward, nEpisodes, nStepsPerEpsiode)
{
	nGreedyActions = 0;
	greedyPolicy = l_greedyPolicy;

	actionDataSet = new CActionDataSet(greedyPolicy->getActions());
}

CPolicyGreedynessEvaluator::~CPolicyGreedynessEvaluator()
{
	delete actionDataSet;
}

rlt_real CPolicyGreedynessEvaluator::getEpisodeValue()
{
	return (rlt_real) nGreedyActions / (rlt_real) nStepsPerEpisode;
}

void CPolicyGreedynessEvaluator::nextStep(CStateCollection *oldState, CAction *action, rlt_real reward, CStateCollection *nextState)
{
	CAction *greedyAction = greedyPolicy->getNextAction(oldState);
	if (action->isSameAction(greedyAction, actionDataSet->getActionData(greedyAction)))
	{
		nGreedyActions ++;
	}
}

void CPolicyGreedynessEvaluator::newEpisode()
{
	nGreedyActions = 0;
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合色综合色综合色综合色综合| 国产精品免费观看视频| 日韩欧美中文一区二区| 亚洲一区二区三区四区不卡| 色综合色狠狠天天综合色| 亚洲欧洲综合另类| 欧美伊人久久久久久久久影院| 色欲综合视频天天天| 日韩视频中午一区| 亚洲一区在线视频| 欧美福利一区二区| 韩国女主播一区| 国产精品久久久久天堂| 成人晚上爱看视频| 欧美亚洲一区三区| 亚洲欧美日韩一区二区| 欧美日韩一区二区在线观看视频 | 色偷偷久久人人79超碰人人澡| 在线播放欧美女士性生活| 国产在线播精品第三| 亚洲精品一区二区三区福利| 99久久久无码国产精品| 天堂久久久久va久久久久| 久久久www免费人成精品| 国产一区999| 中文字幕字幕中文在线中不卡视频| 欧美性高清videossexo| 日本va欧美va精品| 91毛片在线观看| 日韩欧美一区二区三区在线| 中文字幕高清不卡| 日韩午夜av一区| 99久久精品久久久久久清纯| 蜜桃精品视频在线| 日韩三级在线免费观看| 欧美午夜精品久久久久久孕妇| 在线免费观看日韩欧美| 在线观看免费一区| 日韩欧美激情一区| 综合久久久久久| 日本va欧美va精品发布| 成人免费电影视频| 欧美日韩在线播| 黄色资源网久久资源365| 亚洲高清三级视频| 韩国午夜理伦三级不卡影院| 日本va欧美va瓶| 色伊人久久综合中文字幕| 日韩一区二区三区精品视频 | 五月激情丁香一区二区三区| 五月婷婷久久丁香| 91久久精品一区二区| 精品国产电影一区二区 | 2020国产精品自拍| 亚洲电影欧美电影有声小说| 成人午夜在线视频| 国产亚洲欧美一区在线观看| 午夜精品福利一区二区三区蜜桃| 成人v精品蜜桃久久一区| 欧美变态凌虐bdsm| 亚洲欧洲美洲综合色网| 色噜噜夜夜夜综合网| 国产欧美日产一区| 国产精品一级片在线观看| 26uuu精品一区二区三区四区在线| 亚洲国产日韩一区二区| 欧美日韩午夜精品| 夜夜嗨av一区二区三区中文字幕 | 久久精品一区二区三区不卡| 日韩和欧美的一区| 精品久久五月天| 国产精品自拍在线| 日韩欧美一二区| av网站一区二区三区| 成人免费观看男女羞羞视频| 亚洲制服丝袜在线| 99久久精品情趣| 亚洲色图欧美偷拍| 欧美亚洲国产一区二区三区va | 国产调教视频一区| 亚洲大片一区二区三区| 韩国三级在线一区| 欧美高清hd18日本| 久久精品99久久久| 欧美精品一区二区蜜臀亚洲| 蜜芽一区二区三区| 欧美一级高清大全免费观看| 亚洲不卡在线观看| 2020国产精品久久精品美国| 韩国一区二区在线观看| 国产精品午夜在线| 欧美精品免费视频| 色综合色综合色综合色综合色综合| 亚洲精品乱码久久久久久久久| 欧美人xxxx| 972aa.com艺术欧美| 国产一区二区三区在线观看免费视频 | 亚洲国产精品t66y| 成人精品亚洲人成在线| 成人午夜电影网站| 91在线观看成人| 在线观看国产一区二区| 欧美日韩在线直播| 91精品国产91久久综合桃花| 精品久久久久一区二区国产| 2023国产精华国产精品| 亚洲精品国产一区二区精华液| 亚洲国产欧美一区二区三区丁香婷| 亚洲成人资源网| 成人网在线免费视频| 欧美性感一区二区三区| 久久理论电影网| 偷拍亚洲欧洲综合| 成人av中文字幕| 欧美大片日本大片免费观看| 亚洲欧美欧美一区二区三区| 久久99热99| 欧美日韩视频在线一区二区| 国产精品拍天天在线| 精品伊人久久久久7777人| 99国产麻豆精品| 国产欧美视频一区二区| 久久99国产精品免费网站| 欧美伊人久久大香线蕉综合69| 欧美电影免费观看高清完整版在线 | 国产一区日韩二区欧美三区| 欧美精品色综合| 日韩欧美一区在线观看| 中文字幕一区二区视频| 日本欧美久久久久免费播放网| 久久精品久久久精品美女| 一本大道久久a久久综合婷婷| 日韩亚洲电影在线| 亚洲一区二区三区四区中文字幕| 狠狠色综合色综合网络| 欧美人与z0zoxxxx视频| 亚洲黄一区二区三区| 成人免费黄色在线| 国产精品欧美一区二区三区| 看电视剧不卡顿的网站| 欧美夫妻性生活| 日本不卡一区二区三区| 欧美日韩综合色| 视频一区二区三区在线| 欧美日韩国产另类不卡| 日韩精品一级中文字幕精品视频免费观看 | 亚洲午夜一二三区视频| 色综合久久久久| 亚洲综合成人在线| 欧美一区二区视频在线观看| 亚洲午夜电影在线| 日韩精品一区二区三区swag| 裸体一区二区三区| 亚洲色图在线看| 久久日韩粉嫩一区二区三区| 欧美日韩国产区一| 视频一区视频二区中文字幕| 欧美成人精品福利| 日本道精品一区二区三区| 久久精品理论片| 午夜精品福利一区二区三区蜜桃| 久久女同互慰一区二区三区| 欧美日精品一区视频| 99精品久久只有精品| 久久精品免费看| 亚洲一区视频在线观看视频| 国产精品伦一区| 91精品免费观看| 国产精品毛片久久久久久 | 亚洲色图都市小说| 91啪九色porn原创视频在线观看| 国产精品视频yy9299一区| 在线欧美小视频| 国产一区二区调教| 亚洲成年人网站在线观看| 日韩免费视频一区二区| www.激情成人| 狠狠色丁香久久婷婷综合_中| 国产欧美一区二区精品仙草咪| 色欧美片视频在线观看| 韩日精品视频一区| 亚洲国产sm捆绑调教视频 | 18欧美亚洲精品| 91精品国产综合久久福利| 成人在线综合网站| 久久精品免费观看| 免费看欧美美女黄的网站| 亚洲色欲色欲www| 欧美激情自拍偷拍| 精品国产伦理网| 91精品国产综合久久久久久久 | 久久青草欧美一区二区三区| 欧美影院一区二区| 在线观看一区不卡| 91麻豆国产自产在线观看| av在线不卡免费看| 成人三级伦理片| 国产精品一区二区久久精品爱涩 | 亚洲综合免费观看高清在线观看| 中文字幕中文字幕在线一区|