BROT 🍞 (Bilevel Routing on networks with Optimal Transport) is a Python implementation of the algorithms used in:
- [1] Alessandro Lonardi and Caterina De Bacco. Bilevel Optimization for Traffic Mitigation in Optimal Transport Networks. Phys. Rev. Lett. 131, 267401 [arXiv].
This is a scheme capable of extracting origin-destination paths on networks by making a trade off between transportation efficiency and over-trafficked links. The core algorithm alternates the integration of a system of ODEs to find passengers' shortest origin-destination routes, and Projected Stochastic Gradient Descent to mitigate traffic.
If you use this code please cite [1].
code
: contains the all the scripts necessary to run BROT, and a Jupyter notebook (dashboard.ipynb
) with a tutorial on how to use our codedata/input
: contains the data needed to test the scheme on both synthetic topologies and on the Euroroads network [2]data/output
: folder for data serializationmisc
: files used for the README.mdsetup.py
: setup file to build the Python environment
[2] Jérôme Kunegis, Proceedings of the 22nd International Conference on World Wide Web (2013).
To download this repository, copy and paste the following:
git clone https://github.com/aleable/BROT
You are ready to test the code! But if you want to know how click HERE.
For any issues or questions, feel free to contact us sending an email to alessandro.lonardi@tuebingen.mpg.de.