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