Skip to content

Commit 9aea503

Browse files
committed
doc(up): Update README
1 parent b935378 commit 9aea503

File tree

1 file changed

+55
-5
lines changed

1 file changed

+55
-5
lines changed

planning/unified/plugin/README.md

Lines changed: 55 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,49 @@ Solving exploits a custom combinatorial solver that leverages the concept of opt
88
This project provides integration of Aries within the [Unified Planning library](https://github.com/aiplan4eu/unified-planning).
99

1010

11-
## Supported planning approaches
11+
## Aries solver
1212

13-
- *Problem kind*: Hierarchical planning, Temporal planning
14-
- *Operation modes*: Oneshot planning, Anytime planning, Plan validation
13+
The Aries solver supports **action-based planning**, **hierarchical planning** and **scheduling**, with the following features:
14+
15+
- **classical**: basic action models with symbolic state variables
16+
- **numeric**: support simple numeric planning over *integer* state variables.
17+
- **temporal**: durative actions, intermediate conditions and effects, timed initial literals, timed goals. Support continuous and discrete time semantics.
18+
- **optimization**: support for optimizing plans for metrics: `plan-length`, `makespan`, `action-costs`
19+
20+
21+
Provided engines:
22+
23+
- **aries**:
24+
- **oneshot**: Will return the first plan found, regardless of its quality.
25+
- **anytime**: Will return a stream of plan of increasing quality until it finds a provably optimal plan (or runs out of time).
26+
- **aries-opt**:
27+
- **oneshot**: Will return a provably optimal plan. Note that this may never happen for cases where the plan-space is not bounded (action-based planning and recursive HTN planning).
28+
29+
Note that if you are interested in plan quality, you should consider the `anytime` operation mode of `aries`. This mode will return solutions of increasing quality as they are discovered. On the other end, `aries-opt` will only give you the best solution *once it has shown that no better solutions exist*, which may take a very long additional time (or never happen).
30+
31+
32+
### Limitations
33+
34+
- The focus of Aries is on temporal hierarchical planning and scheduling. While it can in theory solve non-hierarchical (action-based) problems, very little attention as been paid to this setting and it is unlikely to exhibit good performance on non trivial problems.
35+
- Unlike most solvers, Aries searches in plan-space which is not bounded for action-based planning and recursive HTN planning. As a consequence, in these two settings, Aries will not give you an optimality proof or a proof of unsolvability as it will never exhaust its search space.
36+
- Numeric planning in Aries is limited to integers. This is rarely limiting as most fixed precision numerals can be scaled to an integer value. However, note that a problem parsed from PDDL will always be considered to have real-valued state variables (even if only integers are used for it) and thus will be detected as not supported.
37+
38+
## Aries validator
39+
40+
Another engine provided in the `up-aries` package is `aries-val`, a plan validator that covers most features of the UP (far beyond what is support by the aries solver).
41+
42+
Its implementation is mostly independent of the Aries solver.
1543

1644

1745
## Installation
1846

19-
For each aries release, pre-built binaries are available on PyPI and can be installed with: `pip install up-aries`.
47+
For each release of Aries, pre-built binaries are available on PyPI and can be installed with:
48+
49+
pip install up-aries
50+
51+
You can force an upgrade to the latest released version with:
52+
53+
pip install --upgrade up-aries
2054

2155
[Development builds](https://github.com/plaans/aries/releases/tag/latest) are provided for the HEAD of the master branch and can be installed with:
2256
```
@@ -27,5 +61,21 @@ pip install --force https://github.com/plaans/aries/releases/download/latest/up_
2761

2862
## Development
2963

30-
A boolean environment variable `UP_ARIES_DEV` allows to automatically recompile Aries from the sources.
64+
The plugin is developed within the main repository of Aries and is meant to co-evolve with it.
65+
66+
If the environment variable `UP_ARIES_DEV` is set to `true`, the plugin will automatically build the `aries` binary from source and use the resulting binary directly.
67+
68+
The [`dev.env`](../dev.env) file is used to set up a development environment by 1) setting the `UP_ARIES_DEV` environment variable, 2) setting the python path to use the local `up-aries` module and the local [`unified-planning`](../deps/unified-planning) version from the git submodule:
69+
70+
source dev.env # assuming bash is used as the shell
71+
72+
73+
74+
## References
3175

76+
- [Arthur Bit-Monnot. *Experimenting with Lifted Plan-Space Planning as Scheduling: Aries in the 2023 IPC*. Proceedings of the 2023 International Planning Competition (IPC), 2023.](https://hal.science/hal-04174737v1/document)
77+
- High-level overview of the Aries planner, at the time of its participation in the 2023 IPC
78+
- [Arthur Bit-Monnot. *Enhancing Hybrid CP-SAT Search for Disjunctive Scheduling*, European Conference on Artificial Intelligence (ECAI), 2023.](https://hal.science/hal-04174800v1/document)
79+
- Presentation of the combinatorial solver used as a backend
80+
- [Roland Godet, Arthur Bit-Monnot. *Chronicles for Representing Hierarchical Planning Problems with Time*. ICAPS Hierarchical Planning Workshop (HPlan), Jun 2022](https://hal.science/hal-03690713v1/document)
81+
- Overview of the encoding used to compile planning problems as CSPs.

0 commit comments

Comments
 (0)