This project explores hybrid planning using PDDL+ and the ENHSP planner. The objective is to model and solve a series of logistics-like problems where both discrete actions and continuous numeric effects (like weight, time, and position) must be managed to reach a goal efficiently.
Hybrid planning combines classical planning with continuous dynamics. It allows the planner to handle realistic systems where actions not only change symbolic states but also affect numeric variables over time. Examples include robotic manipulation, motion planning, energy consumption, and task scheduling with temporal constraints.
PDDL+ is an extension of the Planning Domain Definition Language. It allows modeling:
- Durative actions (actions that take time)
- Processes (ongoing effects depending on conditions)
- Events (instantaneous reactions to conditions)
- Numeric fluents (such as battery level, position, velocity)
This makes PDDL+ ideal for modeling hybrid domains where both discrete decisions and continuous changes matter.
ENHSP (Extended Numeric Heuristic Search Planner) is a heuristic-based planner that supports PDDL+ domains. It simulates continuous effects using time discretization and allows tuning of simulation parameters for precision and performance.
The planner interprets both symbolic and numeric transitions and provides support for hybrid models, making it well-suited for continuous planning problems.
Generated plans are available in the plans/ directory. The project structure is as follows:
├── Assignment.pdf # Project description
├── drafts/ # Previous PDDL drafts and partial versions
│ └── ... .pddl
├── enhsp-19.jar # ENHSP planner
├── lib/ # Required JAR dependencies for ENHSP
│ └── ... .jar
├── maindomain.pddl # Main PDDL+ domain file
├── problem0.pddl # Problem instance 0
├── problem1.pddl # Problem instance 1
├── problem2.pddl # Problem instance 2
├── problem3.pddl # Problem instance 3
├── problem4.pddl # Problem instance 4
├── plans/ # Output plan files generated for each problem
│ └── ... .txt
Use the following command to run the planner:
java -jar enhsp-19.jar -o maindomain.pddl -f problemX.pddlReplace problemX.pddl with the desired problem file (e.g., problem0.pddl).
To control the simulation time granularity, add the -delta flag:
java -jar enhsp-19.jar -o maindomain.pddl -f problem0.pddl -delta 0.1The -delta parameter sets the simulation step size. Smaller values increase precision but also computation time.
- All generated plans are saved in the
plans/directory. - The domain includes hybrid actions involving time-dependent loading, motion affected by crate weight, and task grouping.
- Each problem represents a scenario with different crate positions, weights, and group assignments, to test the robustness of the model and planner.