Skip to main content

A library for training and benchmarking RL agents on graphs.

Project description

GraphEnvs

Graph Reinforcement Learning (RL) Environments

Installation

First install torch and pytorch geometric. The simply use pip to install graph_envs:

  pip install graph-envs

Supported Environments

GraphEnvs-Basic:

Environment Developed Action Space
Shortest Path $v \in \mathcal{V}$
Steiner Tree $e \in \mathcal{E}$
MST $e \in \mathcal{E}$
Minimum Vertex Cover $v \in \mathcal{V}$
TSP $v \in \mathcal{V}$
Longest Path $v \in \mathcal{V}$
Largest Clique ✅ (Min Vertex Cover) $v \in \mathcal{V}$
Densest Subgraph $v \in \mathcal{V}$
Node Coloring 🛠️ $(v, c) \in \mathcal{V} \times \mathbb{Z} $

GraphEnvs-Extended:

Environment Developed Action Space
MultiCast Routing $e \in \mathcal{E}$
Distribution Center Selection $v \in \mathcal{V}$
Persihable Product Delivery $v \in \mathcal{V}$
Public Transport Navigation 🛠️ -

Example

import gymnasium as gym 
import graph_envs
import numpy as np

env = gym.make('LongestPath-v0',
               n_nodes=10,
               n_edges=20,
               weighted=True,
               is_eval_env=True, 
               parenting=2
               )

for sd in range(0, 10):

    print(f'===== {sd} =====')
    obs, info = env.reset(seed=sd)
    mask = info['mask']
    done = False
   
    while not done:
        valid_actions = mask.nonzero()[0]
        action = np.random.choice(valid_actions)        
        obs, reward, done, _, info = env.step(action)
        print('Valid actions:', valid_actions, '  Action:', action, '  Reward:', reward, '  Done:', done)
        mask = info['mask']
        
    print(info['solution_cost'], info['solved'], info['heuristic_solution'])

Environment Details:

  1. Shortest Path: The goal is to find the shortest path from the source node to the target node. At each step, an edge is added to the path. The episode is over when we reach the target node.
  2. Steiner Tree: The goal is to find the tree with the minimum weight that connects a source node to a number of destination nodes.

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

graph-envs-0.0.55.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

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

graph_envs-0.0.55-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file graph-envs-0.0.55.tar.gz.

File metadata

  • Download URL: graph-envs-0.0.55.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for graph-envs-0.0.55.tar.gz
Algorithm Hash digest
SHA256 ba1e96525a132d5933fecd11981b85255125134f14d3d7980cb98eaccb7cdb82
MD5 2cad4412fe1bd0d81d7d036e6936fefb
BLAKE2b-256 7d7da648ac194d1e5bb28ba15ec5caf943481f9b3265f4b5e18c6e6295abfb8b

See more details on using hashes here.

File details

Details for the file graph_envs-0.0.55-py3-none-any.whl.

File metadata

  • Download URL: graph_envs-0.0.55-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for graph_envs-0.0.55-py3-none-any.whl
Algorithm Hash digest
SHA256 6f1a0d9af066301aff7e0de0ed541f27c15fae183882cf4e09ab5ce37fa8bd70
MD5 acd60d2ef169666af703177cbdaadc01
BLAKE2b-256 2ac02de4e3f7c3a89e488d7843113a3f1840ace448d65aa3957b67b3d5f0304a

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