MDP:如何计算一系列操作的每个可能结果的可能性?

时间:2017-04-05 14:59:16

标签: artificial-intelligence transitions markov mdp

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

enter image description here

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

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

[向上,向上,向右,向右]

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

好。我想知道你是否正在解决RL问题。 我们现在通常用Bellman方程和Q学习来解决RL问题。

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

如果你已完成学习,重复整个过程,你就会知道[up,up,right,right,right]的概率。

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

我认为这个例子在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])

这是我只是在健身房编码的代码。