An open API service indexing awesome lists of open source software.

https://github.com/whitemech/fond4ltlf

FOND4LTLf translates an LTLf/PLTLf-FOND to standard FOND planning problems
https://github.com/whitemech/fond4ltlf

dfa fond ltlf non-determinism pddl planning pltlf

Last synced: 6 months ago
JSON representation

FOND4LTLf translates an LTLf/PLTLf-FOND to standard FOND planning problems

Awesome Lists containing this project

README

          


FOND 4 LTLf



test


lint


docs










GitHub



DOI

FOND 4 LTLf is a tool that compiles Fully Observable Non-Deterministic (FOND) planning
problems with temporally extended goals, specified either in LTLf or in PLTLf, into classical FOND
planning problems.

## Prerequisites

This tool is based on the following libraries:

- [ltlf2dfa 1.0.1](https://pypi.org/project/ltlf2dfa/)
- [ply](https://pypi.org/project/ply/)
- [click](https://pypi.org/project/click/)

They are automatically added while installing FOND4LTLf.

## Install

- Intall from source (`master` branch):

```
pip install git+https://github.com/whitemech/FOND4LTLf.git
```

- or, clone the repository and install:

```
git clone https://github.com/whitemech/FOND4LTLf.git
cd FOND4LTLf
pip install .
```

## Usage

The output of the CLI is the following:

```bash
user:~$ fond4ltlf --help
Usage: fond4ltlf [OPTIONS]

From FOND Planning for LTLf/PLTLf Goals to Classical FOND Planning.

Options:
-d, --in-domain PATH Path to PDDL domain file. [required]
-p, --in-problem PATH Path to PDDL problem file. [required]
-g, --goal TEXT LTLf or PLTLf goal formula.
-outd, --out-domain FILE Path to PDDL file to store the new domain.
-outp, --out-problem FILE Path to PDDL file to store the new problem.
-n, --no-disj-preconds No disjunctive preconditions.
--help Show this message and exit.
```

For instance, you can call `FOND4LTLf` as follows:

```bash
fond4ltlf -d -p -g "formula"
```

## Features

* Syntax and parsing support FOND Planning in PDDL
* Compilation of Deterministic Finite-state Automaton into PDDL

## Development

Contributions are welcome! Here's how to set up the development environment:
- set up your preferred virtualenv environment
- clone the repo: `git clone https://github.com/IBM/nl2ltl.git && cd nl2ltl`
- install dependencies: `pip install -e .`
- install dev dependencies: `pip install -e ".[dev]"`
- install pre-commit: `pre-commit install`

## Tests

To run tests: `tox`

To run only the code tests: `tox -e py3.10`

To run only the code style checks: `tox -e ruff-check`

## License

FOND4LTLf is released under the GNU Lesser General Public License v3.0 or later (LGPLv3+).

Copyright 2019-2024 WhiteMech

## Author

[Francesco Fuggitti](https://francescofuggitti.github.io/)