Plangym is an interface to use gymnasium for planning problems. It extends the standard interface to allow setting and recovering the environment states.
Project description
Welcome to Plangym
Plangym is an open source Python library for developing and comparing planning algorithms by providing a standard API to communicate between algorithms and environments, as well as a standard set of environments compliant with that API.
Given that OpenAI's gym
has become the de-facto standard in the research community, plangym
's API
is designed to be as similar as possible to gym
's API while allowing to modify the environment state.
Furthermore, it provides additional functionality for stepping the environments in parallel, delayed environment
initialization for dealing with environments that are difficult to serialize, compatibility with gym.Wrappers
,
and more.
Supported environments
Plangym currently supports all the following environments:
- OpenAI gym classic control environments
- OpenAI gym Box2D environments
- OpenAI gym Atari 2600 environments
- Deepmind's dm_control environments
- Stable-retro environments
Getting started
Stepping an environment
import plangym
env = plangym.make(name="CartPole-v0")
state, obs, info = env.reset()
state = state.copy()
action = env.action_space.sample()
data = env.step(state=state, action=action)
new_state, observ, reward, end, truncated, info = data
Stepping a batch of states and actions
import plangym
env = plangym.make(name="CartPole-v0")
state, obs, info = env.reset()
states = [state.copy() for _ in range(10)]
actions = [env.action_space.sample() for _ in range(10)]
data = env.step_batch(states=states, actions=actions)
new_states, observs, rewards, ends, truncateds, infos = data
Using parallel steps
import plangym
env = plangym.make(name="MsPacman-v0", n_workers=2)
state, obs, info = env.reset()
states = [state.copy() for _ in range(10)]
actions = [env.action_space.sample() for _ in range(10)]
data = env.step_batch(states=states, actions=actions)
new_states, observs, rewards, ends, truncateds, infos = data
Installation
TODO: Meanwhile take a look at how we set up the repository in .github/workflows/push.yaml
.
License
Plangym is released under the MIT license.
Contributing
Contributions are very welcome! Please check the contributing guidelines before opening a pull request.
If you have any suggestions for improvement, or you want to report a bug please open an issue.
Installing nes-py
Step 1: Install necessary development tools and libraries
sudo apt-get update sudo apt-get install build-essential clang sudo apt-get install libstdc++-10-dev
Step 2: Verify the compiler and include paths
Ensure you are using g++ instead of clang++ if clang++ is not properly configured
export CXX=g++ export CC=gcc
Rebuild the project
rye install nes-py --git=https://github.com/FragileTech/nes-py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file plangym-0.1.27.tar.gz
.
File metadata
- Download URL: plangym-0.1.27.tar.gz
- Upload date:
- Size: 61.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd8059e816906e988dd60a94b94c9eefe8c62e71b2382b9521fcc59ca5fd6fa3 |
|
MD5 | 5276c8e6dbc93f33c40bcc1def9e0fe5 |
|
BLAKE2b-256 | 4e3e645efcb542abf6d4275ed65a1045e5a2eaec95f2dd9e0eb8f71a4e92b1cb |
File details
Details for the file plangym-0.1.27-py3-none-any.whl
.
File metadata
- Download URL: plangym-0.1.27-py3-none-any.whl
- Upload date:
- Size: 65.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 81db3ff7fe612add99358953b4f221c3c19c77117469875a2a7c9e6487f147d4 |
|
MD5 | ad1d0e7d80029f03cbb19c7931952809 |
|
BLAKE2b-256 | 8b699420a315d8f177dcd5ebdb1a02b4a8553a6a514c3e4041a54777a0783853 |