我正在尝试为“3x4 windy gridworld”MDP实现值迭代,但在理解Bellman方程及其实现时遇到了困难。在
我正在研究的贝尔曼方程的形式是
假设这是我正在处理的网格字,我想找到标记为X的平铺的值(U(s)
)
(来自this视频的图像快照)
所有瓦片的报酬期望终端瓦片被定义为零,并且假设如果一个人试图朝特定方向移动,那么实际移动发生在与预期移动成直角的可能性很小。(如果你试图从x向下移动,你将以0.8的概率向下移动,但将以0.1的概率向左或向右移动)
现在,当你试图解开位置x的bellman方程时,有三个邻居(U(s')
)对应于动作'UP'。原始位置本身(因为它不能向上移动)的概率为0.8,右边的+1状态概率为0.1,左边的平铺概率为0.1。它们形成s'
状态。在
因此,一个查找状态X值的函数将递归地调用所有的状态s'
。其中的+1状态不是问题,因为它是一个终端块,它将构成基本情况。但其中一个状态是原始状态X本身,我不明白这种情况如何在递归调用中终止。第三个tile也有同样的问题;它会在所有调用它的邻居之后终止吗?在
价值迭代不会自行终止;只要γ<;1和奖励不是无限的,它就会渐近收敛到正确的值。在
实际上,只要折扣项(在每个递归级别上以γ表示)变得非常小,以至于继续计算下一个
U(s')
将不会对您已经累积的值产生任何影响,您就可以终止。在相关问题 更多 >
编程相关推荐