Simple implementation of multi-agent reinforcement learning (MARL) algorithms for benchmarking purposes on 🥃COGNAC network environments.
COGNAC is a collection of MARL environment with network structure.
- Lightweight: Minimal dependencies for quick setup.
- Modular: Easy-to-extend structure for adding new algorithms or environments.
- Benchmark-ready: Standardized scripts to evaluate and compare MARL performance.
- Python 3.12 or above
pippackage manager
-
Clone the repository:
git clone https://github.com/yojul/cognac-benchmark-example.git cd cognac-benchmark-example -
Install dependencies:
pip install -r requirements.txt
All benchmark scripts are located in the algos/ directory. They are directly adapted from CleanRL implementations and coded as self-contained single file implementation of standard MARL algorithms. To run a standard experiment:
All hyperparameters should be directly specified within the python file in the Args section.
python algos/benchmark_ippo.py├── algos/ # MARL algorithm implementations and benchmark scripts
│ ├── benchmark_centralized_ppo.py # Centralized Proximal Policy Optimization, used as a baselines.
│ ├── benchmark_idqn.py # Simple Independent Deep Q-Learning
│ ├── benchmark_ippo.py # Simple Independent Proximal Policy Optimization
│ ├── benchmark_ippo_continuous.py # Simple Independent Proximal Policy Optimization handling continuous action space (use for Multi-commodity flow problem)
│ ├── benchmark_mappo.py # Multi-Agent PPO algorithm introduced by (Yu & al., 2022)
│ └── benchmark_qmix.py # Q-Mix algorithm introduced by (Rashid & al., 2018)
├── requirements.txt # Python dependencies
├── LICENSE.txt # Apache-2.0 License
└── README.md # Project overview and instructions
Contributions are welcome! To propose a new feature or algorithm:
This project is licensed under the Apache-2.0 License. See LICENSE.txt for details.
For questions or feedback, please open an issue or contact the maintainer:
- Repo Owner: Jules Sintes, INRIA Paris, DIENS, École Normale Supérieure, PSL University.
- Email: jules.sintes@inria.fr