Skip to main content

Agent Based Simulation and MultiAgent Reinforcement Learning

Project description

Abmarl

Abmarl is a package for developing Agent-Based Simulations and training them with MultiAgent Reinforcement Learning (MARL). We provide an intuitive command line interface for engaging with the full workflow of MARL experimentation: training, visualizing, and analyzing agent behavior. We define an Agent-Based Simulation Interface and Simulation Manager, which control which agents interact with the simulation at each step. We support integration with popular reinforcement learning simulation interfaces, including gym.Env and MultiAgentEnv. We define our own GridWorld Simulation Framework for creating custom grid-based Agent Based Simulations.

Abmarl leverages RLlib’s framework for reinforcement learning and extends it to more easily support custom simulations, algorithms, and policies. We enable researchers to rapidly prototype MARL experiments and simulation design and lower the barrier for pre-existing projects to prototype RL as a potential solution.

Build and Test Badge Sphinx docs Badge Lint Badge

Quickstart

To use Abmarl, install via pip: pip install abmarl

To develop Abmarl, clone the repository and install via pip's development mode. Note: Abmarl requires python3.7 or python3.8.

git clone git@github.com:LLNL/Abmarl.git
cd abmarl
pip install -r requirements.txt
pip install -e . --no-deps

Train agents in a multicorridor simulation:

abmarl train examples/multi_corridor_example.py

Visualize trained behavior:

abmarl visualize ~/abmarl_results/MultiCorridor-2020-08-25_09-30/ -n 5 --record

Note: If you install with conda, then you must also include ffmpeg in your virtual environment.

Documentation

You can find the latest Abmarl documentation on our ReadTheDocs page.

Documentation Status

Community

Citation

DOI

Abmarl has been published to the Journal of Open Source Software (JOSS). It can be cited using the following bibtex entry:

@article{Rusu2021,
  doi = {10.21105/joss.03424},
  url = {https://doi.org/10.21105/joss.03424},
  year = {2021},
  publisher = {The Open Journal},
  volume = {6},
  number = {64},
  pages = {3424},
  author = {Edward Rusu and Ruben Glatt},
  title = {Abmarl: Connecting Agent-Based Simulations with Multi-Agent Reinforcement Learning},
  journal = {Journal of Open Source Software}
}

Reporting Issues

Please use our issue tracker to report any bugs or submit feature requests. Great bug reports tend to have:

  • A quick summary and/or background
  • Steps to reproduce, sample code is best.
  • What you expected would happen
  • What actually happens

Contributing

Please submit contributions via pull requests from a forked repository. Find out more about this process here. All contributions are under the BSD 3 License that covers the project.

Release

LLNL-CODE-815883

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

abmarl-0.2.2.tar.gz (61.4 kB view details)

Uploaded Source

Built Distribution

abmarl-0.2.2-py3-none-any.whl (92.7 kB view details)

Uploaded Python 3

File details

Details for the file abmarl-0.2.2.tar.gz.

File metadata

  • Download URL: abmarl-0.2.2.tar.gz
  • Upload date:
  • Size: 61.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.9

File hashes

Hashes for abmarl-0.2.2.tar.gz
Algorithm Hash digest
SHA256 81606041fb8aeda1f36ab00c36b793cdfaacbea89692a46d3b92b344055b7995
MD5 b7fd46d7703b4816aed1283b213c92aa
BLAKE2b-256 159ea4bde2159882043e458da69c6b29cb0e0bc19c567a3505c2824eefbba43c

See more details on using hashes here.

File details

Details for the file abmarl-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: abmarl-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 92.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.9

File hashes

Hashes for abmarl-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cdf51e269728ef3177c7b3a2d901e0f3919b6da4300efc34e38b0ca29ec94f97
MD5 7596abb24c04549f873776e30d75c404
BLAKE2b-256 51aa47cd0c3de63302b4c7e64cfbb91b0452fd32fb0d34140154b4569d1f078c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page