Skip to main content

Action model learning benchmarking.

Project description

AMLGym: benchmarking action model learning

Official code for benchmark generation and evaluation of action model learning approaches.

Installation

pip install amlgym

Example usage

from amlgym.algorithms import get_algorithm
agent = get_algorithm('OffLAM')
model = agent.learn('path/to/domain.pddl', ['path/to/trace0', 'path/to/trace1'])
print(model)

State-of-the-art Algorithms

AMLGym provides seamless integration with state-of-the-art algorithms for offline learning classical planning domains from an input set of trajectories in the following settings:

  1. full observability: SAM [1].
  2. partial observability: OffLAM [2].
  3. full and noisy observability: NOLAM [3], ROSAME [4].

It is possible to run the above algorithms as of the main.py script, which by default runs SAM, OffLAM, NOLAM, and ROSAME on every domain and associated set of trajectories in benchmarks/trajectories/learning.

[1] "Safe Learning of Lifted Action Models", B. Juba and H. S. Le, and R. Stern, Proceedings of the 18th International Conference on Principles of Knowledge Representation and Reasoning, 2021.

[2] "Lifted Action Models Learning from Partial Traces", L. Lamanna, L. Serafini, A. Saetti, A. Gerevini, and P. Traverso, Artificial Intelligence Journal, 2025.

[3] "Action Model Learning from Noisy Traces: a Probabilistic Approach", L. Lamanna and L. Serafini, Proceedings of the Thirty-Fourth International Conference on Automated Planning and Scheduling, 2024.

[4] "Neuro-symbolic learning of lifted action models from visual traces", X. Kai, S. Gould, and S. Thiébaux, Proceedings of the Thirty-Fourth International Conference on Automated Planning and Scheduling, 2024.

Adding an algorithm

PRs with new or existing state-of-the-art algorithms are welcome:

  1. Add the algorithm PyPI package in requirements.txt
  2. Create a Python class in algorithms which inherits from AlgorithmAdapter.py and implements the learn method

Evaluation

AMLGym can evaluate a PDDL model by means of several metrics:

  1. Syntactic precision and recall
  2. Predicted applicability and effects
  3. Solvability metrics: False plans and problem solving ratios.

Benchmarking

See the benchmark package for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amlgym-1.0.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amlgym-1.0.0-py3-none-any.whl (3.7 MB view details)

Uploaded Python 3

File details

Details for the file amlgym-1.0.0.tar.gz.

File metadata

  • Download URL: amlgym-1.0.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for amlgym-1.0.0.tar.gz
Algorithm Hash digest
SHA256 7e30713383d43a96bb3874759d59c6e26a79e306ec67b1fd64e31b126c90c522
MD5 eaa0891fc97cd2c60ff8b01197234e37
BLAKE2b-256 16e87bb25cddc7f48afd283fc98baada1e4e53859e0514763b4726cb9267b8b5

See more details on using hashes here.

File details

Details for the file amlgym-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: amlgym-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for amlgym-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dbd005aaefd5868f90a52a6d23a117d4b15d1dba0ec6d0a02a1fb21ca9e191b6
MD5 fdf287a3608dd715018a6079026c8ddd
BLAKE2b-256 47e114b72086e980078b3d3746cfabebe73eb887980cd679fac03b6679a159e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page