Skip to content

Commit

Permalink
Updated README
Browse files Browse the repository at this point in the history
  • Loading branch information
alvalentini committed Nov 23, 2023
1 parent 6cec570 commit dccfdf5
Showing 1 changed file with 55 additions and 11 deletions.
66 changes: 55 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -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==<version number>
```

## 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
<img src="https://www.aiplan4eu-project.eu/wp-content/uploads/2021/07/euflag.png" width="60" height="40">
Expand Down

0 comments on commit dccfdf5

Please sign in to comment.