跳到内容

Julia中的MDP和POMDP-在离散和连续空间上定义、求解和模拟完全和部分可观察的马尔可夫决策过程的接口。

许可证

通知 您必须登录才能更改通知设置

JuliaPOMDP/POMDPs.jl

存储库文件导航

POMDP公司

Linux操作系统 Mac OS X 窗户
生成状态 生成状态 生成状态

文件 开发文档 书写器 松弛(Slack)

此包提供了一个核心接口,用于马尔可夫决策过程部分可观测马尔可夫决策过程(POMDP).这个POMDP工具包充当POMDPs.jl接口的“标准库”,提供常用组件的实现,如策略、信念更新程序、分发和模拟器。

我们的目标是为以下内容提供通用编程词汇表:

  1. 将问题表示为MDP和POMDP.
  2. 编写求解器软件。
  3. 高效运行模拟。

POMDPs.jl与其他生态系统集成:

有关详细介绍,请查看我们的茱莉亚学院课程! 如需帮助,请发帖GitHub讨论选项卡。我们欢迎任何人的贡献!请参见贡献.md获取有关贡献的信息。

安装

POMDPs.jl和相关的求解器包可以使用朱莉娅的包装经理例如,要安装POMDPs.jl和QMDP解算器包,请在Julia REPL中键入以下内容:

使用包装;包装.添加("POMDP公司"); 包装.添加("质量管理计划")

快速入门

运行经典的简单模拟老虎POMDP使用QMDP解算器创建的策略,您可以使用以下代码(请注意,POMDPs.jl不限于具有如下明确定义的分布的离散问题):

使用POMDP、QuickPOMDP,POMDP工具,QMDP= 快速POMDP(状态=["左边","正确的"],行动=["左边","正确的",""],观察=["左边","正确的"],初始状态= 制服(["左边","正确的"]),折扣= 0.95,过渡= 功能(s,a)如果== ""
            返回 决定性的(s)#老虎呆在同一扇门后面
        其他的 #一扇门被打开了
            返回 制服(["左边","正确的"])#重置
        结束
    结束,观察= 功能(s,a,sp)如果== ""
            如果服务提供商== "左边"
                返回 备用猫(["左边","正确的"], [0.85,0.15])#稀疏分类分布
            其他的
                返回 备用猫(["正确的","左边"], [0.85,0.15])结束
        其他的
            返回 制服(["左边","正确的"])结束
    结束,奖励= 功能(s,a)如果== ""
            返回 -1
        埃尔塞夫==#老虎被发现了
            返回 -100
        其他的 #老虎逃跑了
            返回 10
        结束
    结束)解算器= QMDPSolver软件()政策= 解决(解算器,m)相对标准偏差= 0
对于(s、b、a、o、r)在里面 逐步通过(m,政策,"s、 b、a、o、r",最大步数=10)打印ln("秒:%s美元,b:$([秒=>pdf格式(b,s)对于在里面 状态(m) ]),答:美元,编号:0美元")全球的相对标准偏差+=第页结束
打印ln("未折扣奖励为$卢比.")

有关更多可视化示例和示例,请参考示例POMDPs.jl问题库文件的部分。

文档和教程

除上述内容外茱莉亚学院课程,可以找到详细的文档和示例在这里.

文件 文件

支持的程序包

许多软件包使用POMDPs.jl接口,包括MDP和POMDP解算器、支持工具以及POMDPs.jl接口的扩展。Linux上完全支持POMDPs.jl和JuliaPOMDP项目中的所有包。所有本机解算器*都支持OSX和Windows,大多数非本机解算器应该可以工作,但可能需要额外配置。

工具:

jl本身只包含用于交流问题定义的核心接口;这些包包含通用组件的实现:

包裹 生成 新闻报道
POMDP工具(托管在此存储库中) 生成状态
颗粒过滤器 生成状态 编解码器.io

实施的模型:

许多模型都是使用POMDPs.jl接口为各种项目实现的。此列表包含一些常用的模型:

包裹 生成 新闻报道
POMDP模型 CI公司 编解码器
激光标签 CI公司 编解码器
岩石样品 CI公司 编解码器
TagPOMDP问题 CI公司 覆盖率状态
无人机监视 生成状态 编解码器
ContinuumWorld(连续世界) CI公司 覆盖率状态
VDP标签2 生成状态
RoombaPOMDP房间(Roomba本地化) CI公司

MDP解算器:

包裹 构建/覆盖 在线/
脱机
连续
状态-操作
评级
离散值迭代 生成状态
覆盖率状态
脱机 北-北 ★★★★★
局部近似值迭代 生成状态
覆盖率状态
脱机 Y-N公司 ★★
全局近似值迭代 生成状态
覆盖率状态
脱机 Y-N公司 ★★
MCTS公司(蒙特卡洛树搜索) 生成状态
覆盖率状态
在线的 Y(DPW)-Y(DPW) ★★★★

POMDP解算器:

包裹 构建/覆盖 在线/
脱机
连续
国家行动意见
评级
质量管理计划(次优) 生成状态
覆盖率状态
脱机 北-北-北 ★★★★★
小谎(次优) 生成状态
覆盖率状态
脱机 北-北-北 ★★
置信网格值迭代 生成状态
编解码器
脱机 北-北-北 ★★
SARSOP公司* 生成状态
覆盖率状态
脱机 北-北-北 ★★★★
NativeSARSOP公司 生成状态
覆盖率状态
脱机 北-北-北 ★★★★
粒子过滤器树(备用PFT、PFT-DPW) 生成状态
编解码器
在线的 年-年2-Y(Y) ★★★
基本POMCP 生成状态
覆盖率状态
在线的 Y-N-N型1 ★★★★
阿德斯波特 生成状态
覆盖率状态
在线的 Y-N-N型1 ★★★★
阿达OPS CI公司
编解码器.io
在线的 Y-N-Y(Y-N-Y) ★★★★
MCVI公司 生成状态
覆盖率状态
脱机 Y-N-Y(Y-N-Y) ★★
POMDP解决方案* 生成状态
覆盖率状态
脱机 北-北-北 ★★★
增量修剪 生成状态
覆盖率状态
脱机 北-北-北 ★★★
POMCPOW公司 生成状态
覆盖率状态
在线的 年-年2-Y(Y) ★★★
AEMS公司 生成状态
覆盖率状态
在线的 北-北-北 ★★
基于点的值迭代 生成状态
覆盖率状态
脱机 北-北-北 ★★

1:将运行,但不会收敛到最佳解决方案

2:将运行,但尚未证明收敛到最佳解决方案,并且它可能无法在多维动作空间中很好地工作。另请参见https://github.com/michaelhlim/VOOTreeSearch.jl.

强化学习:

包裹 构建/覆盖 连续
连续
行动
评级
表格D学习 生成状态
覆盖率状态
N个 N个 ★★
深度QLearning 生成状态
覆盖率状态
Y(Y)1 N个 ★★★

1:对于POMDP,它将使用观察值而不是状态作为策略的输入。

主观评分;如果您认为应该更改问题,请提交问题

  • ★★★★★: 可靠地计算每个问题的解决方案。
  • ★★★★: 适用于大多数问题。可能需要一些配置,或者不支持接口的每个边缘。
  • ★★★: 可能工作良好,但可能需要困难或重要的配置。
  • ★★: 最近未使用(未知条件)。可能与接口不完全一致,或者可能存在包兼容性问题
  • ★: 未知运行

绩效基准:

包裹
目的地

*这些包需要非Julia依赖项

引用POMDP

如果POMDP在您的研究中有用,并且您愿意承认,请引用以下内容纸张:

@第{egorov2017pomdps条,author={Maxim Egorov和Zachary N.Sunberg以及Edward Balaban和Tim A.Wheeler以及Jayesh K.Gupta和Mykel J.Kochenderfer},标题={{POMDP}s.jl公司:不确定性下的序贯决策框架},journal={机器学习研究杂志},年份={2017年},体积={18},数字={26},页数={1-5},url={http://jmlr.org/papers/v18/16-300.html}}