-1

我在以下环境(3x4 地图)中遇到了 MDP 问题:

在此处输入图像描述

具有向上/向下/向右/向左的可能动作和 0.8 向正确方向移动的机会,每个相邻方向为 0.1(例如向上向左移动的机会为 0.1,向右移动的机会为0.1 )。

现在我需要做的是计算从 (1,1) 开始运行以下操作序列的可能结果:

[上,上,右,右,右]

并且还计算使用此操作序列到达某个字段(对于每个可能的结果)的机会。我怎样才能有效地做到这一点(所以不经历至少 2^5,最大 3^5 可能的结果)?

提前致谢!

4

1 回答 1

0

出色地。我想知道你是否正在解决 RL 问题。我们现在通常用贝尔曼方程和 Q 学习来解决 RL 问题。

您也将从本次讲座中受益。 http://cs229.stanford.edu/notes/cs229-notes12.pdf

如果你学完了,重复整个过程,你就会知道[上、上、右、右、右]的概率。

并且在学习之后,第二个约束将毫无意义,因为它几乎立即得到正确答案。

我认为这个例子是在 AIMA 中,对吧?实际上,我对这种方法有一些疑问。我认为如果您从理论上讲,我的答案似乎并不正确。

while not done:
    if np.random.rand(1) < e:
        action = env.action_space.sample()
    else:
        action = rargmax(Q[state, :])

    new_state, reward, done, _ = env.step(action)
    Q[state, action] = Q[state, action]+ lr * (reward + r*np.max(Q[new_state,:]) - Q[state, action])

这是我在健身房简单编写的代码。

于 2017-04-07T03:30:32.340 回答