Ferramentas de planejamento ASP para PDDL
plasp
é uma coleção de ferramentas para planejamento na programação de conjuntos de respostas . plasp
3 suporta as linguagens de entrada PDDL 3.1 (exceto para recursos avançados como ações durativas, fluentes numéricos e preferências) e SAS (suporte total do SAS 3), que é usado pelo Fast Downward.
A ferramenta mais notável fornecida pelo plasp
é plasp translate
, que traduz descrições PDDL em fatos ASP.
As instâncias PDDL são convertidas em fatos ASP da seguinte maneira:
plasp traduzir domínio.pddl problema.pddl
Alternativamente, as instâncias PDDL podem primeiro ser traduzidas para SAS, o formato de saída do Fast Downward.
./fast-downward.py --translate --build=release64 domínio.pddl problema.pddl
Isso cria um arquivo chamado output.sas
, que agora também pode ser traduzido pelo plasp
.
plasp traduzir saída.sas
A instância traduzida pode finalmente ser resolvida com clingo
e uma meta codificação, por exemplo, sequential-horizon.lp
:
plasp traduzir domínio.pddl problema.pddl > instância.lp codificações clingo/sequential-horizon.lp -c horizonte = 10 instância.lp
plasp translate
fornece um formato de saída uniforme para problemas de entrada SAS e PDDL. Consulte formato de saída para obter mais detalhes.
Se você deseja escrever sua própria meta codificação para a saída do plasp translate
, este exemplo simples de codificação é uma introdução.
plasp <comando> [<opção>...] [<arquivo de entrada>...]
Além de traduzir fatos PDDL em ASP, plasp
fornece os seguintes comandos:
comando | descrição |
---|---|
translate | Traduzir PDDL e SAS para fatos ASP |
normalize | Normalize PDDL para o formato PDDL personalizado do plasp |
check-syntax | Verifique a sintaxe das especificações PDDL |
beautify | Formatar especificações PDDL de forma limpa |
help | Exibir mensagem de ajuda |
version | Exibir informações da versão |
plasp help
mostra uma lista de todos os comandos fornecidos pelo plasp
. Para listar todas as opções disponíveis de um comando, chame plasp <command> --help
ou plasp help <command>
.
plasp
detecta automaticamente o idioma (PDDL ou SAS) das descrições de entrada.
plasp
é construído com CMake e um compilador C++. Veja construção para mais detalhes.
plasp
suporta um subconjunto de PDDL 3.1. Consulte suporte ao recurso PDDL para obter uma lista de recursos PDDL 3.1 suportados e não suportados.
Patrick Luhne
Martin Gebser (codificações)
Torsten Schaub (codificações)
René Knaebel
Murat Knecht