From dccfdf518cfeea11e37fc784b81fdf8590c1e953 Mon Sep 17 00:00:00 2001 From: Alessandro Valentini Date: Thu, 23 Nov 2023 17:14:19 +0100 Subject: [PATCH] Updated README --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 051648e..295afbf 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,63 @@ -# Integration of Pyperplan with the Unified Planning Library -This is the integrator for the [pyperplan](https://github.com/aibasel/pyperplan) planning system, a classical planner based on different search heuristics. -Pyperplan supports action based problems with hierarchical typing. +# Pyperplan integration for unified-planning +[Pyperplan](https://github.com/aibasel/pyperplan) is a classical planner based on different search heuristics. +Pyperplan supports action based classical planning problems with hierarchical typing. + + +## Pyperplan engine + +The Pyperplan engine supports **action-based planning**, with the following features: + + - **classical**: basic action models with symbolic state variables and hierarchical typing. + - **optimization**: support for optimizing plans for metrics: `plan-length` + +Provided engines: + + - **pyperplan**: + - **oneshot planning**: Will return the first plan found, regardless of its quality. + - **grounding**: Will return a grounded problem. + - **pyperplan-opt**: + - **oneshot planning**: Will return a provably optimal plan. -## Installation -You can install this engine as an extra requirement of the `unified-planning` package: `pip install unified-planning[pyperplan]`. -The installation has been tested on the latest versions of ubuntu, windows and macos. ## Default configuration -BFS search. +The Pyperplan integration for unified-planning uses an heuristic search algorithm to solve the planning problem. +More specifically, the default search is a Weighted A* Search, with **hadd** as **heuristic**. + +The custom parameters are: +- **search**: a string between **wastar**, **astar**, **gbf**, **bfs**, **ehs**, **ids** and **sat**, +- **heuristic**: a string between **hadd**, **hmax**, **hsa**, **hff**, **blind**, **lmcut** and **landmark**. + +## Installation + +To automatically get a version that works with your version of the unified planning framework, you can list it as a solver in the pip installation of ```unified_planning```: + +``` +pip install unified-planning[pyperplan] +``` + +If you need several solvers, you can list them all within the brackets. + +You can also install the Pyperplan integration separately (in case the current version of unified_planning does not include Pyperplan or you want to add it later to your unified planning installation). With + +``` +pip install up-pyperplan +``` + +you get the latest version. If you need an older version, you can install it with: + +``` +pip install up-pyperplan== +``` -## Planning approaches of UP supported -Classical planning. +If you need the latest pre-release version, you can install it with: -## Operative modes of UP currently supported -Oneshot planning, grounding compilation. +``` +pip install --pre up-pyperplan +``` +or if you already have a version installed: +``` +pip install --pre --upgrade up-pyperplan +``` ## Acknowledgments