我们如何使用线性规划来解决 MDP?

人工智能 强化学习 优化 马尔可夫决策过程 线性规划
2021-10-25 07:32:45

显然,我们可以使用线性规划公式解决 MDP(即,我们可以找到给定 MDP 的最优策略)。这种方法背后的基本思想是什么?我认为您应该首先解释线性规划公式背后的基本思想,以及可以使用哪些算法来解决此类受约束的优化问题。

1个回答

这个问题似乎直接在您在问题下方的评论中链接到的幻灯片中得到解决。

基本思想是:

  • 假设您有一个完整的 MDP 模型(转换、奖励等)。
  • 对于任何给定的状态,我们假设该状态的真实值反映在:

    V(s)=r+γmaxaAsSP(s|s,a)V(s)

也就是说,状态的真正价值是我们在其中获得的奖励,加上从现在到无限远的未来采取最佳行动的预期未来奖励,减去因子γ,它抓住了未来的奖励不如现在的奖励好的想法。

  • 在线性规划中,我们在一组约束条件下找到某个函数的最小值或最大值。如果函数可以采用连续值,我们可以有效地做到这一点,但如果值是离散的,问题就变成了 NP-Hard。您通常会使用Branch & Bound algorithm之类的方法来执行此操作。这些在快速实现中被广泛使用。GLPK 是一个不错的免费库。IBM 的 CPLEX 速度更快,但价格昂贵。
  • 我们可以将寻找给定状态值的问题表示为:

    minimizeV V(s)
    受限于:
    V(s)r+γsSP(s|s,a)V(s),aA,sS
    很明显,如果我们找到最小值V(s)符合此要求,则该值将使约束中的一个严格。

    • 如果您通过为每个状态编写类似于上述程序的程序来制定线性程序,然后最小化sSV(s),受制于所有这些子问题的所有约束的联合,您将学习价值函数的问题简化为求解 LP。