《强化学习:原理与Python实现 》 —3.5.2 有模型策略迭代求解

举报
华章计算机 发表于 2019/11/13 12:29:28 2019/11/13
【摘要】 本节书摘来自华章计算机《强化学习:原理与Python实现》 一书中第三章,第3.5.2节,作者肖智清。

3.5.2 有模型策略迭代求解

本节实现策略评估、策略提升和策略迭代。

首先来看策略评估。代码清单3-3给出了策略评估的代码。代码清单3-3首先定义了函数v2q(),这个函数可以根据状态价值函数计算含有某个状态的动作价值函数。利用这个函数,evaluate_policy() 函数迭代计算了给定策略policy的状态价值。这个函数使用theta作为精度控制的参数。代码清单3-4测试了evaluate_policy() 函数。它首先求得了随机策略的状态价值函数,然后用函数v2q() 求得动作价值函数。

代码清单3-3 策略评估的实现

image.png

image.png

代码清单3-4 对随机策略进行策略评估

image.png

接下来看看策略改进。代码清单3-5的improve_policy() 函数实现了策略改进算法。输入的策略是policy,改进后的策略直接覆盖原有的policy。该函数返回一个bool类型的值,表示输入的策略是不是最优策略。代码清单3-6测试了improve_policy() 函数,它对随机策略进行改进,得到了一个确定性策略。

代码清单3-5 策略改进的实现

image.png

代码清单3-6 对随机策略进行策略改进

image.png

实现了策略评估和策略改进后,我们就可以实现策略迭代。代码清单3-7的iterate_policy() 函数实现了策略迭代算法。代码清单3-8对iterate_policy() 进行测试。针对冰面滑行问题,该代码求得了最优策略,并进行了测试。

代码清单3-7 策略迭代的实现

image.png

代码清单3-8 利用策略迭代求解最优策略

image.png

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。