价值迭代无法收敛-马尔可夫决策过程

时间:2018-12-08 21:50:39

标签: machine-learning artificial-intelligence reinforcement-learning

我对执行值迭代得到的结果有疑问,数字增加到无穷大,所以我认为我的逻辑上有问题。

最初,我有一个10x10的网格,有些瓦片的奖励为+10,有些瓦片的奖励为-100,有些瓦片的奖励为0。没有终端状态。代理可以执行4个不确定动作:向上,向下,向左和向右移动。它有80%的机会沿所选方向移动,而20%的机会沿垂直方向移动。

我的过程是遍历以下内容:

  • 对于每个图块,从该图块计算最佳动作的值

例如,计算从给定图块向北移动的值:

self.northVal = 0
self.northVal += (0.1 * grid[x-1][y])
self.northVal += (0.1 * grid[x+1][y])
self.northVal += (0.8 * grid[x][y+1])
  • 对于每个图块,将其值更新为:初始奖励+(0.5 *该图块的最佳移动值)
  • 检查自上次循环以来更新的网格是否已更改;如果未更改,请在数字收敛后停止循环。

我将不胜感激!

1 个答案:

答案 0 :(得分:0)

您要在此处执行的操作不是值迭代:值迭代可与 state 值函数一起使用,在其中您可以存储每个状态的值。这意味着在值迭代中,您不必对每个(状态,动作)对都进行估算。

请参考Sutton and Barto书的第二版(第4.4节)进行解释,但这是用于快速参考的算法。请注意初始化步骤:您只需要一个向量即可存储每个状态的值。

Value Iteration Algorithm