Outils de planification ASP pour PDDL
plasp
est une collection d'outils pour la planification de la programmation d'ensembles de réponses . plasp
3 prend en charge les langages de saisie PDDL 3.1 (à l'exception des fonctionnalités avancées telles que les actions durables, les courants numériques et les préférences) et SAS (prise en charge complète de SAS 3), qui est utilisé par Fast Downward.
L'outil le plus remarquable fourni par plasp
est plasp translate
, qui traduit les descriptions PDDL en faits ASP.
Les instances PDDL sont traduites en faits ASP comme suit :
plasp traduire domaine.pddl problème.pddl
Alternativement, les instances PDDL peuvent d'abord être traduites en SAS, le format de sortie de Fast Downward.
./fast-downward.py --translate --build=release64 domain.pddl problème.pddl
Cela crée un fichier appelé output.sas
, qui peut désormais également être traduit par plasp
.
plasp traduire sortie.sas
L'instance traduite peut finalement être résolue avec clingo
et un méta-encodage, par exemple, sequential-horizon.lp
:
plasp traduire domaine.pddl problème.pddl > instance.lp encodages clingo/sequential-horizon.lp -c horizon=10 instance.lp
plasp translate
fournit un format de sortie uniforme pour les problèmes d'entrée SAS et PDDL. Voir le format de sortie pour plus de détails.
Si vous souhaitez écrire votre propre méta-encodage pour la sortie de plasp translate
, cet exemple d'encodage simple vous aidera à démarrer.
plasp <commande> [<option>...] [<fichier d'entrée>...]
En plus de traduire les faits PDDL en ASP, plasp
fournit les commandes suivantes :
commande | description |
---|---|
translate | Traduire les faits PDDL et SAS en ASP |
normalize | Normaliser PDDL au format PDDL personnalisé de Plasp |
check-syntax | Vérifier la syntaxe des spécifications PDDL |
beautify | Formater proprement les spécifications PDDL |
help | Afficher un message d'aide |
version | Afficher les informations sur la version |
plasp help
affiche une liste de toutes les commandes fournies par plasp
. Pour répertorier toutes les options disponibles d'une commande, appelez plasp <command> --help
ou plasp help <command>
.
plasp
détecte automatiquement la langue (PDDL ou SAS) des descriptions d'entrée.
plasp
est construit avec CMake et un compilateur C++. Voir le bâtiment pour plus de détails.
plasp
prend en charge un sous-ensemble de PDDL 3.1. Voir Prise en charge des fonctionnalités PDDL pour une liste des fonctionnalités PDDL 3.1 prises en charge et non prises en charge.
Patrick Lühne
Martin Gebser (encodages)
Torsten Schaub (encodages)
René Knaebel
Murat Knecht