【问题标题】:Appropriate Data structure适当的数据结构
【发布时间】:2011-04-17 23:26:56
【问题描述】:

我必须实现值迭代算法,以便使用贝尔曼方程为 MDP 的每个状态找到最佳策略。 输入文件如下所示: s1 0 (a1 s1 0.5) (a1 s2 0.5) (a2 s1 1.0) s2 0 (a1 s2 1.0) (a2 s1 0.5) (a2 s3 0.5) s3 10 (a1 s2 1.0) (a2 s3 0.5) (a2 s4 0.5)

其中 s1 是状态 0 是与 s1 相关联的奖励。采取行动 a1 后,我们以 0.5 的概率停留在 s1 中。采取行动 a1 后,我们以 0.5 的概率进入 s2。采取行动 a2 后,我们以 1.0 的概率停留在 s1。 其他人也一样。

读取输入文件后,我必须将其存储在一些数据结构中。在 PYTHON 中,这将是合适的数据结构,以便轻松遍历它。

【问题讨论】:

  • 我们不喜欢为你做作业。您为什么不尝试一下并发布您的第一次尝试,以便我们对其发表评论。

标签: python machine-learning


【解决方案1】:
s1 0 (a1 s1 0.5) (a1 s2 0.5) (a2 s1 1.0)
s2 0 (a1 s2 1.0) (a2 s1 0.5) (a2 s3 0.5)
s3 10 (a1 s2 1.0) (a2 s3 0.5) (a2 s4 0.5)

这样的?

data = { 's1': { 'reward': 0,
                 'action': { 'a1': { 's1': 0.5,
                                     's2': 0.5 },
                             'a2': { 's1': 1.0 }
                           },
               },
         's2': { 'reward': 0,
                 'action': { 'a1': { 's1': 1.0 },
                             'a2': { 's1': 0.5,
                                     's2': 0.5 },
                           },
               },
         's3': { 'reward': 10,
                 'action': { 'a1': { 's2': 1.0 },
                             'a2': { 's3': 0.5,
                                     's4': 0.5 },
                           }
               }
        }

【讨论】:

    【解决方案2】:

    通常对于离散(和有限)状态 MDP、HMM 或 POMDP,最有用的表示是一组稀疏矩阵。然后,可以使用矩阵向量计算来计算移动的概率分布(并且可以简单有效地实现随机贝尔曼方程)。该矩阵将被称为随机矩阵。

    http://en.wikipedia.org/wiki/Stochastic_matrix

    如果您使用 Python,我建议您查看 SciPy 库中的稀疏矩阵。

    http://docs.scipy.org/doc/scipy/reference/sparse.html

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 2011-04-07
      • 2022-11-08
      相关资源
      最近更新 更多