Generalize learned constraints with ASP
C++ CMake C
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
apps
cmake/modules
include/ginkgo
src
tests
.gitattributes
.gitignore
.gitmodules
.travis.yml
CMakeLists.txt
LICENSE.md
README.md

README.md

ginkgo GitHub Release Build Status Build Status

Generalize learned constraints with ASP

Overview

ginkgo uses ASP techniques to automatically generalize learned conflict constraints to make them applicable to other PDDL problem instances.

ginkgo proceeds in a four-step approach:

  1. Conflict constraints are extracted while solving a logic program with xclasp, a variant of clasp extended with facilities for logging learned constraints.
  2. The learned constraints are generalized by abstraction over the time domain, which results in candidate properties.
  3. The candidate properties are validated, using an induction-based proof method or a simpler, state-wise method.
  4. Valid generalized constraints can finally be reused via generalized constraint feedback, that is, by enriching logic programs with the newly generalized constraints.

Building and Installation

ginkgo is built with cmake and requires a compiler capable of C++14 as well as boost and jsoncpp. ginkgo requires clasp, xclasp, and gringo binaries at runtime. The optional graphical output requires GTKmm.

Usage

ginkgo consists of the following tools:

  • ginkgo-produce accepts a PDDL instance and domain as input (as ASP facts, such as obtained with plasp) and generalizes a specified number of learned constraints.
  • ginkgo-consume performs generalized constraint feedback. That is, a given is solved again but enriched with a specific number of constraints previously generalized with ginkgo-produce. ginkgo-consume was primarily implemented for benchmarking and demonstration purposes.
  • ginkgo-analyze uses the statistical output of the above two tools and aggregates the results for easier evaluation.
  • ginkgo-evaluate displays a graphical evaluation of the statistical analyses.

Use the option --help for a full list of options of each of the respective tools.

Literature

Contributors