PDDL 的 ASP 规划工具
plasp
是一个用于规划答案集编程的工具集合。 plasp
3 支持输入语言 PDDL 3.1(除了持续性操作、数值流和首选项等高级功能之外)和 SAS(完全支持 SAS 3),后者由 Fast Downward 使用。
plasp
提供的最著名的工具是plasp translate
,它将 PDDL 描述转换为 ASP 事实。
PDDL 实例转换为 ASP 事实,如下所示:
plasp 翻译域名.pddl 问题.pddl
或者,PDDL 实例可以首先转换为 SAS,即快速下行的输出格式。
./fast-downward.py --translate --build=release64 域.pddl 问题.pddl
这将创建一个名为output.sas
的文件,该文件现在也可以由plasp
进行翻译。
plasp 翻译输出.sas
翻译后的实例最终可以使用clingo
和元编码来解决,例如, sequential-horizon.lp
:
plasp 翻译域.pddl 问题.pddl > 实例.lp clingo 编码/sequential-horizon.lp -c Horizon=10 instance.lp
plasp translate
为 SAS 和 PDDL 输入问题提供统一的输出格式。有关更多详细信息,请参阅输出格式。
如果您想为plasp translate
的输出编写自己的元编码,这个简单的示例编码可以帮助您入门。
plasp <命令> [<选项>...] [<输入文件>...]
除了将 PDDL 转换为 ASP 事实之外, plasp
还提供以下命令:
命令 | 描述 |
---|---|
translate | 将 PDDL 和 SAS 转换为 ASP 事实 |
normalize | 将 PDDL 标准化为 plasp 的自定义 PDDL 格式 |
check-syntax | 检查PDDL规范的语法 |
beautify | 清晰格式化 PDDL 规范 |
help | 显示帮助信息 |
version | 显示版本信息 |
plasp help
显示plasp
提供的所有命令的列表。要列出命令的所有可用选项,请调用plasp <command> --help
或plasp help <command>
。
plasp
自动检测输入描述的语言(PDDL 或 SAS)。
plasp
是使用 CMake 和 C++ 编译器构建的。有关更多详细信息,请参阅建筑。
plasp
支持 PDDL 3.1 的子集。请参阅 PDDL 功能支持,了解支持和不支持的 PDDL 3.1 功能的列表。
帕特里克·吕内
Martin Gebser(编码)
托斯顿·绍布(编码)
勒内·克内贝尔
穆拉特·克内希特