我正在尝试在Python中设计具有以下特征的迭代markov decision process (MDP)代理:

  • 可观察状态
  • 我通过保留一些状态空间来处理潜在的“未知”状态
    用于回答DP进行的查询类型的移动(t + 1的状态将为
    标识先前的查询(如果先前的移动不是查询,则为零)
    以及嵌入的结果向量),该空间用0填充至
    固定长度,以保持状态框架对齐,而不管查询如何
    已回答(其数据长度可能有所不同)
  • 不一定在所有状态下都可用的
  • 操作
  • 奖励功能可能会随着时间变化
  • 策略收敛应该是增量的,并且只能按每次操作进行计算

  • 因此,基本思想是MDP应该使用其当前的概率模型在T处进行最佳猜测优化移动(并且由于它的概率是随机发生的,因此预期是随机的,暗示可能存在随机性),将T + 1处的新输入状态与奖励耦合从T的先前举动开始,并重新评估模型。收敛不能是永久的,因为奖励可能会调整,或者可用的 Action 可能会更改。

    我想知道的是,是否有任何当前的python库(最好是跨平台的,因为我必须在Windoze和Linux之间更改环境)已经可以做这种事情了(或可以通过适当的定制来支持它),例如:派生类允许重新定义自己的奖励方法的支持)。

    我发现有关在线每行MDP学习的信息非常匮乏。我可以找到的大多数MDP用途似乎都集中在解决整个策略上,这是一个预处理步骤。

    最佳答案

    我是一名研究生,在Python中从事许多MCMC方面的工作,据我所知,没有任何东西可以直接实现MDP。我知道的最接近的是PyMC。仔细阅读this提供的文档,该文档为扩展类提供了一些建议。他们绝对没有开箱即用的奖励等。

    如果您对开发好的东西很认真,则可以考虑扩展和子类化PyMC的内容以创建决策流程,这样您就可以将其包含在PyMC的下一个更新中,并为以后的人们提供帮助。

    10-06 05:18