话不多说直接上policy iteration的算法
接下来进行python实现:
首先定义好环境,这里分两步,一是拿一个随机策略并初始化其值函数为0数组,然后进行策略迭代,再根据返回的最优策略进行试验求得回报
接下来进行策略迭代,分为三步1.初始化;2.策略估计;3.策略改进
接下来实现上图中的第二步策略估计
接下来进行策略改进
最后运行整个环境
至此实现策略迭代,具体代码可以在https://github.com/JUSTLOVELE/MobileDevStudy/blob/master/RL/gym_case/policy_iteration.py 中查阅
其实策略迭代就是先估计,在改进策略,直到收敛,如果不收敛就继续估计继续改进。。。实现后其实可以得知策略迭代是先求解出最优解,然后再去和环境进行交互求得最大收益,之所以在和环境交互前能求最优策略是提前知道了环境的转移概率P和回报函数R,然后再利用动态规划和贝尔曼最优方程,但真实世界中哪里能做到先知先觉呢?恐怕转移概率和回报函数一个都得不到。