如何从(15、15)到(255个状态,4个动作)插入R表

时间:2019-04-27 23:25:44

标签: python python-3.x numpy q-learning

我正在建立一个具有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],
    ...
)

谢谢

1 个答案:

答案 0 :(得分:0)

要学习一项可以使您获得最大回报的政策 想做奖励反向传播(或值迭代) 225个(对称)度数为4的位置顶点。

(顺便说一句,您两次提到255,我认为您的意思是225。)

bad任意定义为-1000;将None值替换为“负无穷大”奖励。

“目标”节点上有一个建模细节,包含500的奖励: 确保所有四个外边缘都有bad奖励, 这样便不会诱使代理商去那里然后跟随一个周期 可以无休止地领取500英镑的奖励。

直径

计算您的网格世界图形的直径。 通过检查,它是Manhattan distance的28,两次为15-1。 对于任意图,您可能需要使用shortest path算法来确定。

init

将所有非目标位置顶点的值初始化为bad

迭代

对于v的所有位置顶点, 记住先前的值val。然后 将向外的边缘追到相邻的位置, 找到遍历边缘的(通常为负)奖励, 并将v的更新值存储为max(val,val + reward), 评估了所有四个边缘。

解释是:如果我们降落到具有值val的位置, 我们相信遵循最佳政策 我们可以收集val奖励积分。

到此结束迭代。 重复进行diameter次迭代。 在第一个之后 我们将仅更新三个值,分别为497、498和499。 在第二个之后,将至少再更新五个值,依此类推, 逐渐减少直到没有更多的bad值。

遍历

现在从开始到目标遍历图形非常简单。 在所有四个优势中, 只需跟随通往最高价值位置的边缘, 重复直到遇到目标为止。