Skip to main content

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, MultiAgentEnv, and OpenSpiel. 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.

git clone git@github.com:LLNL/Abmarl.git
cd abmarl
pip install -r requirements/requirements_all.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

Release files for abmarl 0.2.8

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

Source distribution (sdist)

Source distribution for abmarl 0.2.8
File Size Uploaded
abmarl-0.2.8.tar.gz 111.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for abmarl 0.2.8
File Interpreter ABI Platform
abmarl-0.2.8-py3-none-any.whl Python 3 none any Details

Total release size: 207.4 kB

Release files / abmarl-0.2.8.tar.gz

Download URL abmarl-0.2.8.tar.gz
Size 111.4 kB
Tags Source
SHA-256 checksum
How to use checksums
45e3e0735419b9fcee544469d3ff20f5ec977c04be3cd512587cff54c809daf1
BLAKE2b-256 checksum
How to use checksums
62864044c4b6f270fbee0011e14b8fdb4f2620475be6c09b3a477130e3e8d705
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.12

Release files / abmarl-0.2.8-py3-none-any.whl

Download URL abmarl-0.2.8-py3-none-any.whl
Size 96.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ed971efc5f010797afa6822fc2111e3633a8ec682e60a58f1b6bbf4f8849106a
BLAKE2b-256 checksum
How to use checksums
614cb888464ea342db7255c4e6b9784495720e9a5154ad5c23ed828813e0a32c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.12

Release history Release notifications | RSS feed

This release

0.2.8 This release

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

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