我遇到的问题是我从执行值迭代得到的结果,数字增加到无穷大,所以我假设我的逻辑中有一个问题 .

最初我有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 *该图块的最佳移动值)

  • 检查更新的网格是否自上次循环以来已更改,如果没有,则在数字已收敛时停止循环 .

我很感激任何指导!