【问题标题】:Bellman Equation definition贝尔曼方程定义
【发布时间】:2020-08-05 12:40:37
【问题描述】:

我正在尝试理解贝尔曼方程并面临一些令人困惑的时刻。 1)在不同的来源中,我遇到了贝​​尔曼方程的不同定义。 有时它被定义为值状态函数

v(s) = R + y*V(s')

有时它被定义为动作状态函数

q(s, a) = r + max(q(s', a'))

这两个定义都正确吗?原论文中是如何引入贝尔曼方程的?

【问题讨论】:

    标签: dynamic-programming reinforcement-learning definition


    【解决方案1】:

    Bellman 方程为动态规划解决方案提供了明确的形式,并且使用它我们可以将解决方案推广到本质上是递归并遵循 最佳子结构 属性的优化问题的解决方案。

    用更简单的术语来说,最优子结构意味着给定的问题可以分解成更小的子问题,这些子问题需要相同的解决方案和更小的数据。如果可以计算出较小问题的最佳解决方案,则意味着也可以计算给定问题(较大的问题)。

    让我们用值V(S) 表示给定状态S 的问题解决方案,S 是状态或子问题。让我们表示通过在状态S 选择动作a(i)R 将产生的成本。 R 将是一个函数f(S, a(i)),其中a 是可以对状态S 执行的所有可能操作的集合。

    V(S) = max{ f(S, a(i)) + y * V(S') } 其中max 是通过遍历所有可能的i 来获取的。 y 是一个固定常数,它将子问题征税到更大的问题转换,对于大多数问题y = 1,所以你现在可以忽略它。

    所以基本上在任何给定的子问题SV(S) 将通过选择可以执行的所有操作组合a(i) 以及将使用该操作创建的下一个状态来为我们提供最佳解决方案。如果你递归思考并且习惯于这样的东西,那么很容易看出为什么上面的等式是正确的。

    我建议解决动态规划问题并查看一些标准问题及其解决方案,以了解如何将这些问题分解为较小的类似问题并递归解决。在那之后,上面的等式将更有意义。另外,你会发现你上面写的两个方程几乎是一样的,只是它们的写法有点不同。

    Here 是更常见的 DP 问题及其解决方案的列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-18
      • 2018-05-16
      • 2021-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多