Patrick Lühne
2288fa891e
This replaces all user-defined variable names with continuously numbered ones so that they don’t lead to syntax problems in ASP, while still unique and distinguishable. For instance, this avoids problems when variable names contain hyphens, which are allowed in PDDL identifiers but not in ASP variables. |
||
---|---|---|
app | ||
doc | ||
encodings | ||
include/plasp | ||
instances | ||
lib | ||
src | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
KNOWN-ISSUES.md | ||
LICENSE.md | ||
README.md |
plasp
ASP planning tools for PDDL
Overview
plasp
is a tool collection for planning in answer set programming.
plasp
3 supports the input languages PDDL 3.1 (except for advanced features such as durative actions, numerical fluents, and preferences) and SAS (full support of SAS 3), which is used by Fast Downward.
The most notable tool provided by plasp
is plasp translate
, which translates PDDL descriptions to ASP facts.
Translating PDDL to ASP Facts
PDDL instances are translated to ASP facts as follows:
plasp translate domain.pddl problem.pddl
Alternatively, PDDL instances may first be translated to SAS, the output format of Fast Downward.
./fast-downward.py --translate --build=release64 domain.pddl problem.pddl
This creates a file called output.sas
, which may now be translated by plasp
as well.
plasp translate output.sas
Solving the Translated Instance
The translated instance can finally be solved with clingo
and a meta encoding, for instance, sequential-horizon.lp
:
plasp translate domain.pddl problem.pddl > instance.lp
clingo encodings/sequential-horizon.lp -c horizon=10 instance.lp
Translator Output Format
plasp translate
provides a uniform output format for SAS and PDDL input problems.
See output format for more details.
If you want to write your own meta encoding for plasp translate
’s output, this simple example encoding gets you started.
Provided Tools
plasp <command> [<option>...] [<input file>...]
Aside from translating PDDL to ASP facts, plasp
provides the following commands:
command | description |
---|---|
translate |
Translate PDDL and SAS to ASP facts |
normalize |
Normalize PDDL to plasp’s custom PDDL format |
check-syntax |
Check the syntax of PDDL specifications |
beautify |
Cleanly format PDDL specifications |
help |
Display help message |
version |
Display version information |
plasp help
shows a list of all commands provided by plasp
.
To list all available options of a command, call plasp <command> --help
or plasp help <command>
.
plasp
automatically detects the language (PDDL or SAS) of the input descriptions.
Building
plasp
is built with CMake and a C++ compiler.
See building for more details.
PDDL Feature Support
plasp
supports a subset of PDDL 3.1.
See PDDL feature support for a list of supported and unsupported PDDL 3.1 features.
Contributors
- Patrick Lühne
- Martin Gebser (encodings)
- Torsten Schaub (encodings)
Earlier Versions
- René Knaebel
- Murat Knecht