强化学习中价值迭代的基本案例

时间:2017-07-02 20:35:46

标签: python artificial-intelligence reinforcement-learning

我正在尝试为' 3x4多风网格世界实现价值迭代。 MDP和我在理解Bellman方程及其实现方面遇到了麻烦。

我正在使用的贝尔曼方程式是

enter image description here

假设这是我正在使用的网格字,我想找到标记为X的图块的值(U(s))。

enter image description here

(来自this视频的图片快照)

所有牌块的奖励都期望终端牌被定义为零,并且还假设如果试图在特定方向上进行移动,则实际移动的可能性很小。与预期移动成直角。 (如果你试图从x向下移动,你将以概率0.8向下移动但是向左或向右移动的概率为0.1)

现在,当您尝试解开位置x的贝尔曼方程时,有三个邻居(U(s'))用于操作' UP'。原始位置本身(因为它不能向上移动)的概率为0.8,其右侧的+1状态的概率为0.1,并且该区块的概率为0.1。这些形成s'个州。

因此,找到状态X的值的函数将递归调用所有状态s'' s。其中的+1状态不是问题,因为它是终端区块并且将构成基本情况。但其中一个状态是原始状态X本身,我不理解该情况将如何在递归调用中终止。第三个瓷砖也有同样的问题;它会在所有打电话给它的邻居之后终止等等吗?

1 个答案:

答案 0 :(得分:2)

值迭代不会自行终止;只要你有γ

在实践中,只要折扣条款(在每个递归级别用γ表示)变得如此之小以至于继续计算下一个zeros对您已经累积的值没有影响,您就可以终止。