我正在建立一个具有255个状态,4个动作的R表。如何从R表(15,15)输入?
我已经创建了R表(15,15),但是事实证明我必须为作业做R表(225,4)。
r_matrix = np.array([
[-1, -2, -3, -2, -3, -3, -4, -1, -4, -2, -1, -2, -3, -3, 500],
[-1, -3, -1, -2, -4, -1, -4, -1, -4, -2, -4, -2, -2, -2, -1],
[-4, -2, -1, -4, -2, -1, -2, -4, -2, -3, -2, -1, -2, -4, -4],
[-4, -2, -4, -1, -3, -2, -3, -2, -4, -2, -4, -1, -2, -4, -2],
[-4, -2, -2, -3, -2, -3, -1, -1, -4, -2, -1, -3, -4, -2, -4],
[-4, -3, -3, -4, -2, -3, -4, -2, -2, -1, -1, -2, -1, -2, -1],
[-2, -3, -2, -1, -1, -3, -2, -1, -4, -3, -1, -1, -2, -3, -3],
[-3, -1, -1, -4, -4, -3, -1, -2, -3, -1, -1, -4, -4, -3, -3],
[-3, -1, -4, -2, -3, -3, -1, -4, -4, -4, -2, -2, -2, -2, -1],
[-3, -4, -4, -2, -3, -4, -3, -3, -2, -2, -3, -4, -3, -4, -1],
[-3, -4, -1, -1, -1, -4, -4, -4, -4, -1, -2, -4, -2, -2, -1],
[-1, -3, -3, -3, -3, -3, -3, -3, -4, -1, -2, -4, -1, -2, -4],
[-2, -2, -1, -2, -2, -2, -4, -3, -1, -4, -1, -4, -2, -2, -2],
[-2, -1, -3, -1, -4, -4, -1, -3, -3, -1, -1, -2, -3, -4, -3],
[-2, -2, -1, -4, -4, -4, -2, -2, -3, -1, -2, -2, -1, -1, -3]
])
# Result (Up, Right, Down, Left)
r_matrix2 = np.array(
[None, -2, -1, None],
[None, -3, -3, -1],
[None, -2, -1, -2],
[None, -3, -2, -3],
[None, -3, -4, -2],
...
)
谢谢
答案 0 :(得分:0)
要学习一项可以使您获得最大回报的政策 想做奖励反向传播(或值迭代) 225个(对称)度数为4的位置顶点。
(顺便说一句,您两次提到255
,我认为您的意思是225
。)
将bad
任意定义为-1000
;将None
值替换为“负无穷大”奖励。
“目标”节点上有一个建模细节,包含500的奖励:
确保所有四个外边缘都有bad
奖励,
这样便不会诱使代理商去那里然后跟随一个周期
可以无休止地领取500英镑的奖励。
计算您的网格世界图形的直径。 通过检查,它是Manhattan distance的28,两次为15-1。 对于任意图,您可能需要使用shortest path算法来确定。
将所有非目标位置顶点的值初始化为bad
。
对于v
的所有位置顶点,
记住先前的值val
。然后
将向外的边缘追到相邻的位置,
找到遍历边缘的(通常为负)奖励,
并将v
的更新值存储为max(val,val + reward),
评估了所有四个边缘。
解释是:如果我们降落到具有值val
的位置,
我们相信遵循最佳政策
我们可以收集val
奖励积分。
到此结束迭代。
重复进行diameter
次迭代。
在第一个之后
我们将仅更新三个值,分别为497、498和499。
在第二个之后,将至少再更新五个值,依此类推,
逐渐减少直到没有更多的bad
值。
现在从开始到目标遍历图形非常简单。 在所有四个优势中, 只需跟随通往最高价值位置的边缘, 重复直到遇到目标为止。