我遇到的问题是我从执行值迭代得到的结果,数字增加到无穷大,所以我假设我的逻辑中有一个问题 .
最初我有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 *该图块的最佳移动值)
-
检查更新的网格是否自上次循环以来已更改,如果没有,则在数字已收敛时停止循环 .
我很感激任何指导!