Skip to main content

Numeric PDDLGym

Python Version Code style: black

A framework for automatically translating Numeric PDDL domains with the Gymnasium API. This allows Numeric PDDL planning problems to be solved using standard RL algorithms (e.g., PPO via RLlib).

The environment converts states, actions, and goals from Numeric PDDL into fixed-size numeric vectors, enabling direct integration with deep RL libraries.

✨ Features

  • Supports Numeric PDDL domains and problems
  • Automatic grounding and vectorization of:
    • Predicates
    • Numeric fluents
    • Goal conditions
  • Compatible with the Gymnasium API
  • Designed for RLlib (Ray) integration
  • Works with standard deep RL algorithms (e.g., PPO)

⚙️ Configuration

The environment is configured via a dictionary (env_config).

Parameter Type Relevant Env Description
domain_path Path All Path to the PDDL domain file
problems_list List[Path] All List of problem files
max_steps int All Max steps per episode
executing_algorithm str All Name of RL algorithm (e.g., "PPO")
masking_strategy "pre" or "post" PDDLMaskedEnv "pre": Filters invalid actions before execution using PDDL checks.
"post": Learns invalid actions after execution from feedback.
count_inapplicable bool PDDLMaskedEnv Relevant when using "post" masking.
If true, inapplicable actions count toward the episode length; if false, they are ignored.
map_size int MinecraftEnv Grid size, e.g., 6, 10, 15.

🚀 Installation

pip install numeric_pddl_gym

With RL (RLlib + Torch):

pip install numeric_pddl_gym[rl_agents]

▶️ Run Example

RL Agent

python rl_agents/ppo_pddl_rllib_agent.py

Planning Agent

See example for a planning-based agent in:

test/test_fixed_script_agent.py

⚠️ Limitations

  1. Can't encode complex goal conditions.
  2. Agents must be retrained if the problem has a different number of fluents, predicates, or goal conditions.
  3. Currently does not support manual interaction with the environment.
  4. Designed for fixed-structure problems (no variable-sized domains).
  5. Enabling action applicability checking leads to slow runtime in large-scale problems.

📚 Citations

Coming soon

Metadata

Release files for numeric-pddl-gym 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for numeric-pddl-gym 1.2.0
File Size Uploaded Provenance Actions
numeric_pddl_gym-1.2.0.tar.gz 114.0 kB Without provenance Details for numeric_pddl_gym-1.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for numeric-pddl-gym 1.2.0
File Interpreter ABI Platform Actions
numeric_pddl_gym-1.2.0-py3-none-any.whl Python 3 none any Details for numeric_pddl_gym-1.2.0-py3-none-any.whl

Total release size: 134.7 kB

Release files / numeric_pddl_gym-1.2.0.tar.gz

Download URL numeric_pddl_gym-1.2.0.tar.gz
Size 114.0 kB
Tags Source
SHA-256 checksum
How to use checksums
76921c6ed43f867cd517055c21295bde507c81643b2fd1072da84efc6b262d6b
BLAKE2b-256 checksum
How to use checksums
1735c9aaf71b4cd24841c4ce5f8565aa9e4e862cec4a67541b3e13cf80ca8baf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / numeric_pddl_gym-1.2.0-py3-none-any.whl

Download URL numeric_pddl_gym-1.2.0-py3-none-any.whl
Size 20.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b447d510fab65f52e4b5de269501956151e4662396fb32174f00bfff282fdfc9
BLAKE2b-256 checksum
How to use checksums
bce662b170c7523c157a306c6fd82f8f0a37d9d526c899e64f8586897225d092
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Security for numeric-pddl-gym 1.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page