我正在尝试为'3x4 windy gridworld'MDP实现值迭代,并且在理解Bellman方程及其实现方面遇到了麻烦 .
我正在使用的贝尔曼方程的形式就是这个
假设这是我正在使用的网格字,我想找到标记为X的图块的值( U(s)
) .
(来自this视频的图像快照)
所有瓦片的奖励期望终端瓦片被定义为零,并且还假设如果试图在特定方向上进行移动,则实际移动将以直角发生的可能性很小 . 预期的举动 . (如果你试图从x向下移动,你将以概率0.8向下移动但是向左或向右移动的概率为0.1)
现在,当您尝试解释位置x的贝尔曼方程时,有三个邻居( U(s')
)用于操作'UP' . 原始位置本身(因为它不能向上移动)的概率为0.8,其右边的1状态的概率为0.1,并且平铺留给它的概率为0.1 . 这些形成 s'
状态 .
因此,找到状态X的值的函数将递归调用所有状态 s'
's. The +1 state out of this is not a problem since it is a terminal tile and that would constitute for the base case. But one of those state is the original state X itself and I don' t,了解该情况将如何在递归调用中终止 . 第三个瓷砖也有同样的问题;它会在所有呼叫它的邻居之后终止等等吗?
1 回答
值迭代不会自行终止;只要你有γ<1并且奖励不是无限的,它就会渐近地收敛到正确的值 .
实际上,只要折扣项(在每个递归级别用γ表示)变得如此之小以至于继续计算下一个
U(s')
对您已经累积的值没有影响,您就可以终止 .