Skip to content
hstairsPublic

About

No description, website, or topics provided.

Resources

Stars

5 stars

Watchers

2 watching

Forks

Repository files navigation

JPDDLPLUS and ENHSP

JPDDLPLUS is a Java library for parsing, grounding and solving planning problems expressed in PDDL, numeric PDDL and PDDL+. ENHSP (Expressive Numeric Heuristic Search Planner) is the planner application built on the library. This branch contains the ENHSP 25 backend.

Build

Use JDK 17 and Bash. The Java dependencies are bundled in jar_dependencies/. From the repository root, run:

./compile.sh

This builds jpddlplus.jar, which contains the ENHSP command-line entry point. The build also uses the JARs in jar_dependencies/; keep that directory beside the generated JAR. The build script replaces the checked-in jpddlplus.jar, so review that binary change before committing build results.

Run ENHSP

For example, solve a small numeric planning problem:

java -jar jpddlplus.jar \
  -o examples/pddl2_1/counters/domain.pddl \
  -f examples/pddl2_1/counters/instance_4.pddl \
  -planner sat-hmrp

The CLI accepts -planner presets including sat-hadd, sat-hmrp, sat-aibr and opt-hrmax. Use -h <heuristic> and -s <search> to select the components directly. For options and examples, see the ENHSP project website.

Library and repository layout

The reusable APIs cover PDDL models, state representation, grounding, numeric expressions, heuristics and search. Core classes are under src/com/hstairs/ppmajal/; the planner entry point is under src/enhsp2/. Support for full ADL is partial, and some PDDL+ behavior depends on the chosen discretisation settings.

Path Purpose
src/com/hstairs/ppmajal/ JPDDLPLUS models, heuristics and search
src/enhsp2/ ENHSP command-line application
grammar/ PDDL grammar and parser material
jar_dependencies/ Bundled Java dependencies
test/, tests/ Java test sources and planning examples
examples/ PDDL, numeric PDDL and PDDL+ inputs

Selected research

JPDDLPLUS evolved from PPMaJaL. The following papers describe numeric planning techniques used by, or closely related to, this codebase:

See also Enrico Scala's publication list.

Acknowledgements

JPDDLPLUS has benefited from contributions by Alban Grastien, Dongxu Li, Da An, Alessandro Bernocchi, Luigi Bonassi, Andrea Micheli, Ryan Wang, Miquel Ramírez, Marco Roveri, ZioCecio and Enrico Scala. These names are recorded in this branch's Git history; the original contact list is in contributors.txt.

License terms: LICENCE. Contact: enricos83@gmail.com.

About

No description, website, or topics provided.

Resources

Stars

5 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages