Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Proposal] AsyncVectorEnv with Graph observation spaces #3286

Open
ramondalmau opened this issue Sep 16, 2024 · 1 comment
Open

[Proposal] AsyncVectorEnv with Graph observation spaces #3286

ramondalmau opened this issue Sep 16, 2024 · 1 comment

Comments

@ramondalmau
Copy link

Proposal

Add support for environments with Graph observation spaces in AsyncVectorEnv in Gymnasium. Currently, AsyncVectorEnv assumes observations can be stacked in a typical array-like format. However, environments that return graph-based observations (e.g., adjacency matrices, node/edge features) are incompatible with the default vectorized operations. This proposal seeks to introduce native support for vectorizing such environments, allowing the parallelization of environments that utilize Graph-like spaces for their observations.

Motivation

The current limitation of AsyncVectorEnv is that it can only handle environments with simple observation spaces. For graphs (e.g., adjacency matrices or node/edge data), the default handling of observation stacking fails, leading to errors and the inability to utilize vectorized environments.

Many modern reinforcement learning tasks involve graph-structured data, particularly in domains such as networked systems, biology, and operations research. A robust way to handle graph-based environments in a vectorized setup would greatly enhance Gymnasium's flexibility and application scope.

Additionally, this proposal would align with Gymnasium's mission to support a wide range of environment types, particularly as more graph-based tasks emerge in reinforcement learning.

Pitch

Modify AsyncVectorEnv to natively handle observation spaces that are graph-structured, by allowing users to define custom stacking or returning observations as lists of graphs instead of arrays. This could be done via:

  • Adding a specific check for Graph-type spaces in the observation stacking method.
  • Providing an option for environments with complex observations to return observations as lists, or by defining a custom merging mechanism for such spaces.
@pseudo-rnd-thoughts
Copy link
Contributor

Hey, we would be interested in solving but gym is no longer maintained. Could you open this on gymnasium?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants