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
Patrick Lühne b93e41d5bc
Removed Arch PKGBUILD from repository.
The PKGBUILD for Arch Linux is already hosted at AUR, and there
shouldn’t be two sources for it.
2017-11-17 18:40:08 +01:00
app Updated cxxopts to 2.0.0. 2017-11-17 00:51:51 +01:00
doc Added PDDL 3.1 feature support documentation. 2017-11-17 18:27:35 +01:00
encodings Excluding derived variables from inertia. 2017-11-17 17:43:44 +01:00
include/plasp Made form of variables within values consistent. 2017-11-03 01:49:24 +01:00
instances Moved IPC 2000 Elevator example instances to instance directory. 2016-09-02 15:44:33 +02:00
lib Updated cxxopts to 2.0.0. 2017-11-17 00:51:51 +01:00
src Made form of variables within values consistent. 2017-11-03 01:49:24 +01:00
tests Added tests for derived predicate numbering. 2017-11-16 17:30:53 +01:00
.gitattributes Hiding example instances from Linguist. 2016-08-30 13:05:03 +02:00
.gitignore Initial commit. 2016-05-20 15:29:24 +02:00
.gitmodules Updated Catch to 2.0.1. 2017-11-04 20:54:39 +01:00
.travis.yml Removed Boost packages from Travis configuration. 2017-10-28 16:50:45 +02:00
CHANGELOG.md Fixed typo. 2017-11-17 15:39:21 +01:00
CMakeLists.txt Made option group parsing more uniform. 2017-10-14 02:13:46 +02:00
KNOWN-ISSUES.md Updated documentation to new output format. 2017-11-17 17:12:34 +01:00
LICENSE.md Changed license to Markdown format. 2016-05-25 12:44:28 +02:00
README.md Added PDDL 3.1 feature support documentation. 2017-11-17 18:27:35 +01:00

plasp GitHub Release Build Status Build Status

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 translates 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 plasps 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

Earlier Versions

  • René Knaebel
  • Murat Knecht