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

Artificial intelligence 修改值迭代中的无限循环(MDP GridWorld),artificial-intelligence,markov,Artificial Intelligence,Markov,考虑一个简单的GridWorld 3x4,奖励为-0.04 [ ][ ][ ][+1] [ ][W][ ][-1] [ ][ ][ ][ ] 其中W为墙,+1/-1为终端状态。一个代理可以朝任何方向移动,但只有80%的时间他成功地朝着计划的方向移动,10%他向右移动(相对于方向),10%向左移动 在策略迭代算法中,我们首先生成一个随机策略,假设该策略被生成: [L][L][L][+1] [L][W][L][-1] [L][L][L][L ] 我指的是左边 现在我们运行改进的值迭代算法,直到

考虑一个简单的GridWorld 3x4,奖励为-0.04

[ ][ ][ ][+1]
[ ][W][ ][-1]
[ ][ ][ ][  ]
其中W为墙,+1/-1为终端状态。一个代理可以朝任何方向移动,但只有80%的时间他成功地朝着计划的方向移动,10%他向右移动(相对于方向),10%向左移动

在策略迭代算法中,我们首先生成一个随机策略,假设该策略被生成:

[L][L][L][+1]
[L][W][L][-1]
[L][L][L][L ]
我指的是左边

现在我们运行改进的值迭代算法,直到相邻迭代的值相差不大

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

但我不明白的是:

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

这不就是一个无限循环吗

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

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