ASP planning tools for PDDL (local mirror of https://github.com/potassco/plasp for development purposes) https://potassco.org/
This repository has been archived on 2023-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
2016-08-14 16:02:28 +02:00
apps Major refactoring of underlying Parser class. 2016-08-02 20:33:49 +02:00
doc Minor formatting. 2016-08-14 16:01:39 +02:00
encodings Dropped »meta« prefix of encoding file because there will only be meta encodings. 2016-08-13 11:10:29 +02:00
include/plasp Made order of sections of translated SAS more uniform with PDDL. 2016-08-13 02:29:48 +02:00
src Changed output format of axiom rules. 2016-08-14 16:02:28 +02:00
tests Extended parser tests. 2016-08-08 12:40:02 +02:00
.gitattributes Ignoring configuration files for exporting the repository. 2016-05-25 23:49:58 +02:00
.gitignore Initial commit. 2016-05-20 15:29:24 +02:00
.gitmodules Made git ignore dirty submodules. 2016-05-21 00:37:32 +02:00
.travis.yml Changed Travis configuration to use 3 threads for building. 2016-06-01 22:49:59 +02:00
CHANGELOG.md Updated change log with recent fixes in SAS output formatting. 2016-08-13 19:14:04 +02:00
CMakeLists.txt Enabling tests by default. 2016-06-09 01:25:50 +02:00
LICENSE.md Changed license to Markdown format. 2016-05-25 12:44:28 +02:00
README.md Fixed typos in readme file. 2016-06-15 00:56:17 +02:00

plasp—Translate PDDL to ASP

GitHub Release Build Status Build Status

plasp 3 is in early development and not intended for productive use yet.

plasp translates planning problem instances to ASP facts. plasp 3 supports the input languages PDDL 3.1 (only basic features currently) and SAS (full support of SAS 3), which is used by Fast Downward.

Please get in touch with Patrick Lühne if you have any suggestions.

Usage

Translating PDDL to ASP Facts

PDDL instances are translated to ASP facts as follows:

$ plasp 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.

$ plasp output.sas

Solving the Translated Instance

The translated instance can finally be solved incrementally with clingo and a meta encoding, for instance, pddl-meta-sequential-incremental.lp:

$ plasp domain.pddl problem.pddl > instance.lp
$ clingo encodings/pddl-meta-sequential-incremental.lp instance.lp

Command-Line Interface

$ plasp [files] [options]

[files] may be omitted, in which case the input is read from std::cin. The [options] are listed below:

option explanation
-l [ --language ] Specify the input language (sas or pddl). Omit for automatic detection.
--warning-level arg (=normal) Specify whether to output warnings normally (normal), to treat them as critical errors (error), or to ignore them (ignore).
--color arg (=auto) Specify whether to colorize the output (always, never, or auto).

Building

plasp requires a C++14 compiler (preferrably GCC ≥ 6.1 or clang ≥ 3.8), the boost libraries (≥ 1.55), and CMake for building.

$ git clone https://github.com/potassco/plasp.git
$ cd plasp
$ mkdir -p build/release
$ cd build/release
$ cmake ../.. -DCMAKE_BUILD_TYPE=Release
$ make

The built plasp binary is then located at plasp/build/release/bin/plasp.

Running the Tests

plasp provides unit tests written using the Google Test framework. Before building and running the tests, make sure you have fetched the Google Test git submodule:

$ git submodule init
$ git submodule update

Afterward, build and run the tests as follows:

$ make run-tests

Contributors

Earlier Versions

  • René Knaebel
  • Murat Knecht