值迭代
通过上一章的学习,我们知道了贝尔曼最优方程的求解实际上分两部分,一是给定一个初始值 v k v_k vk 找到最优策略 π k + 1 π_{k+1} πk+1 ,二是更新 v k + 1 v_{k+1} vk+1
下面,我们将详细剖析这个算法,以及其编程实现。首先,我们来看一下他的第一步:策略更新
通过给定的 v k v_k vk 可以求得每个状态对应的 q k q_k qk 再根据概率设计得到最优策略下对应的行为 a k ∗ ( s ) a_k^*(s) ak∗(s)
第二步:值更新,同样的,通过给定的 v k v_k vk 求得每个状态对应的 q k q_k qk 再根据最优策略计算得到 v k + 1 v_{k+1} vk+1
通过上面的讲解,我们得到下面的流程过程:
给出上述算法的伪代码,如下:
值迭代:案例
我们以一个例子加深理解。 r 边界 = r 陷阱 = − 1 , r 终点 = + 1 , γ = 0.9 r_{边界}=r_{陷阱}=-1,r_{终点}=+1,γ=0.9 r边界=r陷阱=−1,r终点=+1,γ=0.9
当 k = 0 k=0 k=0
策略迭代
策略迭代分两步:策略评估 ( P E ) (PE) (PE) 和策略优化 ( P I ) (PI) (PI)。
求解 v π k v_{πk} vπk 有两种方法,第一种矩阵求解一般不用,主要是用第二种迭代的方法。
策略迭代具体步骤如下:
伪代码如下:
策略迭代:案例
同样,我们以一个例子加深理解。 r 边界 = − 1 , r 终点 = + 1 , γ = 0.9 r_{边界}=-1,r_{终点}=+1,γ=0.9 r边界=−1,r终点=+1,γ=0.9,行为有:向左 a l a_l al,向右 a r a_r ar,原地 a 0 a0 a0
策略迭代:案例二
截断策略迭代算法
首先我们来比较一下值迭代与策略迭代的区别:
伪代码: