强化学习分类基于模型的动态规划方法理论——bootstrapping算法(自举算法)

bootstrapping算法(自举算法)

直接上公式,前面的推导过程就不粘了,跟马尔可夫那块差不多。
vπ(s)=a Aπ(as)(Rsa+γsSPssavπ(s))v_\pi(s) = \sum_{a\in\ A}\pi (a|s)\left( R_s^a + \gamma \sum_{s\prime \in S} P_{ss\prime}^av_\pi (s\prime)\right)
在公式中,vπ(s)v_\pi(s\prime)是未知的,也就是下一步的值函数是位置的,但是求当前状态的值函数需要下一状态的值函数。文中使用高斯-赛德尔迭代法进行求解
vk+1(s)=a Aπ(as)(Rsa+γsSPssavk(s))v_{k+1}(s) = \sum_{a\in\ A}\pi (a|s)\left( R_s^a + \gamma \sum_{s\prime \in S} P_{ss\prime}^av_k (s\prime)\right)
从公式中可以看出,vk+1(s)v_{k+1}(s)vk(s)v_{k}(s\prime)的值函数通过迭代逼近,实现的伪代码如下

  1. 输入:需要评估的策略π\pi状态转移概率pssap_{ss\prime}^a回报函数RsaR_s^a,折扣因子γ\gamma
  2. 初始化值函数:v(s)=0v(s) = 0
  3. Repeat k=0,1,…
  4.   for every s do
  5.     vk+1(s)=aAπ(as)(Rsa+γsSpssavk(s))v_{k+1}(s) = \sum_{a\in A}\pi(a|s)(R_s^a+\gamma\sum_{s\prime\in S}p_{ss\prime}^av_{k}(s\prime))
  6.   end for
  7. Until vk+1=vkv_{k+1} = v_{k}
  8. 输出:v(s)v(s)

需要注意的是,在每次迭代中都需要对状态集进行一次遍历(扫描)以便评估每个状态的值函数。

相关文章:

  • 2022-01-22
  • 2022-12-23
  • 2021-11-21
  • 2021-08-15
猜你喜欢
  • 2021-04-13
  • 2021-10-26
  • 2021-07-02
  • 2022-12-23
  • 2021-08-27
  • 2021-12-20
  • 2021-11-06
相关资源
相似解决方案