vlambda博客
学习文章列表

第四章 动态规划(二):代码

这一节集中于两种同步动态规划的实践部分,文章按照 算法伪代码 算法实现 总结 这样的安排展开。
一 算法伪代码 (此处以书中第一个伪代码-策略评估为例)


二 算法实现
  实现的问题对应对于书中格子世界,实现的语言是python,在jupyter Notebook中完成代码编写,每个函数表示的含义以注释形式表示,代码有参考GitHub中相关材料。

第四章 动态规划(二):代码


代码编辑时设置了一个获取某一状态所有后续可能状态的集合的方法,体现了动态规划算法思想的地方。如果无法获取一个状态的所有可能后续状态,那么就不能使用动态规划算法来求解,此外,使用的是异步更新价值的方法。

三 总结
在每个状态集中实现完全更新在小数据集上比较有效果,当数据集过大时便会出现 维数灾难 问题,同时动态规划算法是基于 有模型的条件下 进行迭代的,当出现的强化学习问题是无模型的时,便需要另一种方法,即蒙特卡洛法,下一节将对这个方法进行学习。