Skip to main content

Convert a Numeric PDDL domain into an Gymnasium environment

Project description

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

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

numeric_pddl_gym-1.2.0.tar.gz (114.0 kB view details)

Uploaded Source

Built Distribution

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

numeric_pddl_gym-1.2.0-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file numeric_pddl_gym-1.2.0.tar.gz.

File metadata

  • Download URL: numeric_pddl_gym-1.2.0.tar.gz
  • Upload date:
  • Size: 114.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for numeric_pddl_gym-1.2.0.tar.gz
Algorithm Hash digest
SHA256 76921c6ed43f867cd517055c21295bde507c81643b2fd1072da84efc6b262d6b
MD5 1de65ad0a081135a65f005f01b308748
BLAKE2b-256 1735c9aaf71b4cd24841c4ce5f8565aa9e4e862cec4a67541b3e13cf80ca8baf

See more details on using hashes here.

File details

Details for the file numeric_pddl_gym-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for numeric_pddl_gym-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b447d510fab65f52e4b5de269501956151e4662396fb32174f00bfff282fdfc9
MD5 154eea030d9caa247b3b8f7b51d56d73
BLAKE2b-256 bce662b170c7523c157a306c6fd82f8f0a37d9d526c899e64f8586897225d092

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