ASP-Planungstools für PDDL
plasp
ist eine Werkzeugsammlung für die Planung in der Antwortsatzprogrammierung . plasp
3 unterstützt die Eingabesprachen PDDL 3.1 (mit Ausnahme erweiterter Funktionen wie durative Aktionen, numerische Fließfähigkeiten und Präferenzen) und SAS (vollständige Unterstützung von SAS 3), die von Fast Downward verwendet wird.
Das bemerkenswerteste von plasp
bereitgestellte Tool ist plasp translate
, das PDDL-Beschreibungen in ASP-Fakten übersetzt.
PDDL-Instanzen werden wie folgt in ASP-Fakten übersetzt:
plasp übersetzen domain.pddl problem.pddl
Alternativ können PDDL-Instanzen zunächst in SAS, das Ausgabeformat von Fast Downward, übersetzt werden.
./fast-downward.py --translate --build=release64 domain.pddl problem.pddl
Dadurch wird eine Datei namens output.sas
erstellt, die nun auch von plasp
übersetzt werden kann.
plasp übersetzen Output.sas
Die übersetzte Instanz kann schließlich mit clingo
und einer Meta-Kodierung gelöst werden, zum Beispiel sequential-horizon.lp
:
plasp übersetzen domain.pddl problem.pddl > Instanz.lp Clingo-Encodings/sequential-horizon.lp -c Horizon=10 Instanz.lp
plasp translate
bietet ein einheitliches Ausgabeformat für SAS- und PDDL-Eingabeprobleme. Weitere Einzelheiten finden Sie im Ausgabeformat.
Wenn Sie Ihre eigene Metakodierung für die Ausgabe von plasp translate
schreiben möchten, können Sie mit dieser einfachen Beispielkodierung loslegen.
plasp <Befehl> [<Option>...] [<Eingabedatei>...]
Neben der Übersetzung von PDDL in ASP-Fakten bietet plasp
die folgenden Befehle:
Befehl | Beschreibung |
---|---|
translate | Übersetzen Sie PDDL- und SAS- in ASP-Fakten |
normalize | Normalisieren Sie PDDL auf das benutzerdefinierte PDDL-Format von Plasp |
check-syntax | Überprüfen Sie die Syntax der PDDL-Spezifikationen |
beautify | PDDL-Spezifikationen sauber formatieren |
help | Hilfemeldung anzeigen |
version | Versionsinformationen anzeigen |
plasp help
zeigt eine Liste aller von plasp
bereitgestellten Befehle. Um alle verfügbaren Optionen eines Befehls aufzulisten, rufen Sie plasp <command> --help
oder plasp help <command>
auf.
plasp
erkennt automatisch die Sprache (PDDL oder SAS) der Eingabebeschreibungen.
plasp
wird mit CMake und einem C++-Compiler erstellt. Weitere Einzelheiten finden Sie im Gebäude.
plasp
unterstützt eine Teilmenge von PDDL 3.1. Eine Liste der unterstützten und nicht unterstützten PDDL 3.1-Funktionen finden Sie unter PDDL-Funktionsunterstützung.
Patrick Lühne
Martin Gebser (Kodierungen)
Torsten Schaub (Kodierungen)
René Knaebel
Murat Knecht