Skip to main content

or-gym

Environments for OR and RL Research

This library contains environments consisting of operations research problems which adhere to the OpenAI Gym API. The purpose is to bring reinforcement learning to the operations research community via accessible simulation environments featuring classic problems that are solved both with reinforcement learning as well as traditional OR techniques.

Installation

This library requires Python 3.5+ in order to function.

Installation is possible via pip:

$ pip install or-gym

Or, you can install directly from GitHub with:

git clone https://github.com/hubbs5/or-gym.git
cd or-gym
pip install -e .

Quickstart Example and Benchmarking Example

See the IPython notebook entitled inv-management-quickstart.ipynb in the examples folder for a quickstart example for training an agent in an OR-GYM environemnt, and for using the environment for benchmarking policies found by other algorithms. For the RL algorithm, Ray 1.0.0 is required.

Citation

@misc{HubbsOR-Gym,
    author={Christian D. Hubbs and Hector D. Perez and Owais Sarwar and Nikolaos V. Sahinidis and Ignacio E. Grossmann and John M. Wassick},
    title={OR-Gym: A Reinforcement Learning Library for Operations Research Problems},
    year={2020},
    Eprint={arXiv:2008.06319}
}

Environments

  • Knapsack-v0: a small version of the classic unbounded knapsack problem with 200 items.
  • Knapsack-v1: binary (0-1) knapsack problem with 200 items.
  • Knapsack-v2: bounded knapsack problem with 200 items.
  • Knapsack-v3: stochastic, online knapsack problem.
  • BinPacking-v0 through BinPacking-v5: online bin packing problem taken from Balaji et al..
  • Newsvendor-v0: multi-period newsvendor problem with lead times taken from Balaji et al..
  • VMPacking-v0: permanent, multi-dimensional virtual machine packing problem.
  • VMPacking-v1: temporary, multi-dimensional virtual machine packing problem.
  • VehicleRouting-v0: pick-up and delivery problem with delivery windows taken from Balaji et al..
  • InvManagement-v0: multi-echelon supply chain re-order problem with backlogs.
  • InvManagement-v1: multi-echelon supply chain re-order problem without backlog.
  • NetworkManagement-v0: multi-echelon supply chain network problem with backlogs from Perez et al..
  • NetworkManagement-v1: multi-echelon supply chain network problem without backlogs from Perez et al..
  • PortfolioOpt-v0: Multi-period asset allocation problem for managing investment decisions taken from Dantzig and Infanger.
  • TSP-v0: traveling salesman problem with bi-directional connections and uniform cost.
  • TSP-v1: traveling salesman problem with bi-directional connections.

Resources

Information on results and supporting models can be found here.

Examples

Metadata

Release files for or-gym 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for or-gym 0.5.0
File Size Uploaded
or_gym-0.5.0.tar.gz 44.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for or-gym 0.5.0
File Interpreter ABI Platform
or_gym-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 84.1 kB

Release files / or_gym-0.5.0.tar.gz

Download URL or_gym-0.5.0.tar.gz
Size 44.6 kB
Tags Source
SHA-256 checksum
How to use checksums
aad989edfbd8fd0f2795a638d9cfcf67a8bc5f112202c166b1b64014ec28a236
BLAKE2b-256 checksum
How to use checksums
15460fb3b3182e0303e0d5306290d43eaea5745d0dd98ba9551b8f6f6afd7cef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.7 tqdm/4.41.1 importlib-metadata/0.17 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.13

Release files / or_gym-0.5.0-py3-none-any.whl

Download URL or_gym-0.5.0-py3-none-any.whl
Size 39.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd3bf5221edcedf0af7f97dbd6e658514c3b35507480b6087e8de2d4761f6105
BLAKE2b-256 checksum
How to use checksums
e0f93c782de6c154ed27049634128a5ec579e262b08cca18b78bd321bf547709
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.26.0 requests-toolbelt/0.9.1 urllib3/1.26.7 tqdm/4.41.1 importlib-metadata/0.17 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.4 CPython/3.6.13

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page