修改值迭代中的无限循环(MDP GridWorld)

时间:2017-05-25 18:39:00

标签: artificial-intelligence markov

考虑使用奖励-0.04

的简单GridWorld 3x4
[ ][ ][ ][+1]
[ ][W][ ][-1]
[ ][ ][ ][  ]

其中W是墙,+ 1 / -1是终端状态。代理人可以向任何方向移动,但只有80%的时间他成功进入计划方向,10%他向右(相对于方向),10%离开。

在Policy Iteration算法中,我们首先生成一个随机策略,假设生成了这个策略:

[L][L][L][+1]
[L][W][L][-1]
[L][L][L][L ]

其中L表示左。

现在我们运行Modified值迭代算法,直到相邻迭代的值没有太大差异。

我们将值初始化为0(终端状态除外)

[0][0][0][+1]
[0][W][0][-1]
[0][0][0][0 ]

但这是我没有得到的:

由于我们使用公式0.8 * previousValueFromForwardState + 0.1 * previousValueFromLeftState + 0.1 * previousValueFromRightState + Reward来填充新状态,这几乎意味着状态下策略方向背后的任何内容都不会更改该单元格中的值。由于只有终端状态+1和-1可以得到值迭代,并且它们总是被忽略,

不会只是创建一个无限循环吗?

每次迭代,我们总是得到0.04的倍数,迭代之间的差异将始终是恒定的(除了右下角,但它不会影响任何东西......)

0 个答案:

没有答案