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 的輸出格式。
./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(編碼)
托斯頓·紹布(編碼)
勒內·克內貝爾
穆拉特·克內克特