rddlgym

A toolkit for working with RDDL domains in Python3. Its main purpose is to wrap a RDDL domain/instance planning problem as an OpenAI Gym environment.
Quickstart
$ pip3 install -U rddlgym
Features
rddlgym implements the OpenAI Gym API for RDDL problems. It uses pyrddl to parse RDDL files. Additionally, in order to simulate RDDL domains, it uses rddl2tf to compile RDDL operations and expressions to TensorFlow 1.X ops.
For further details, please refer to the documentation of the following packages:
NOTE
Please note that rddl2tf (and consequently rddlgym) has been mainly developed to support continuous state-action domains. It may not currently work for discrete MDPs.
If you tried to use rddlgym with your own RDDL files and encounter errors due (probably) to the RDDL-to-TensorFlow compilation, please do not hesitate to open an issue or contact me.
Usage
rddlgym can either be used as a standalone CLI app or it can be integrated with your code in order to implement customized agent-environment interaction loops.
CLI
$ rddlgym --help
Usage: rddlgym [OPTIONS] COMMAND [ARGS]...
rddlgym: A toolkit for working with RDDL domains in Python3.
Options:
--help Show this message and exit.
Commands:
info Print metadata for a `rddl` domain/instance.
ls List all RDDL domains and instances available.
parse Check RDDL file parsing.
run Run random policy in `rddl` domain/instance.
show Print `rddl` file.
API
import rddlgym
# create RDDLGYM environment
rddl_id = "Navigation-v3" # see available RDDL domains/instances with `rddlgym ls` command
env = rddlgym.make(rddl_id, mode=rddlgym.GYM)
# you can also wrap your own RDDL files (domain + instance)
# env = rddlgym.make("/path/to/your/domain_instance.rddl", mode=rddlgym.GYM)
# define random policy
policy = lambda state, t: env.action_space.sample()
# initialize environament
state, t = env.reset()
done = False
# create a trajectory container
trajectory = rddlgym.Trajectory(env)
# sample an episode and store trajectory
while not done:
action = policy(state, t)
next_state, reward, done, info = env.step(action)
trajectory.add_transition(t, state, action, reward, next_state, info, done)
state = next_state
t = env.timestep
print(f"Total Reward = {trajectory.total_reward}")
print(f"Episode length = {len(trajectory)}")
filepath = f"/tmp/rddlgym/{rddl}/data.csv"
df = trajectory.save(filepath) # dump episode data as csv file
print(df) # display dataframe
License
Copyright (c) 2018-2020 Thiago Pereira Bueno All Rights Reserved.
rddlgym is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
rddlgym is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with rddlgym. If not, see http://www.gnu.org/licenses/.
Metadata
Release files for rddlgym 0.5.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| rddlgym-0.5.15.tar.gz | 31.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rddlgym-0.5.15-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 95.6 kB
Release files / rddlgym-0.5.15.tar.gz
| Download URL | rddlgym-0.5.15.tar.gz |
|---|---|
| Size | 31.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5361b9eca7cfa34e22b56498f6a3e31a753a2c7d6483ccc6f81b5343020a086
|
|
BLAKE2b-256 checksum How to use checksums |
01fc30ffe10f660e51b2f6e57858b9e64aef41b571e163581ea2c820e4a1701a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.6.8
|
Release files / rddlgym-0.5.15-py3-none-any.whl
| Download URL | rddlgym-0.5.15-py3-none-any.whl |
|---|---|
| Size | 64.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6e111830f6d399d52c62ee278312be6e149c32bfad9733ded351ca0ebfca918c
|
|
BLAKE2b-256 checksum How to use checksums |
3454023234acf622ca34c375e3d63951f7ca0dfbff785c8f153e4098c6c36d92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.40.2 CPython/3.6.8
|
Security for rddlgym 0.5.15
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.