Skip to content

This is the official implementation of "Optimizing Large-Scale Fleet Management on a Road Network using Multi-Agent Deep Reinforcement Learning with Graph Neural Network" (ITSC 2021)

License

Notifications You must be signed in to change notification settings

juhyeonkim95/TaxiSimulatorOnGraph

Repository files navigation

TaxiSimulatorOnGraph

teasure

This repository is the official implementation of "Optimizing Large-Scale Fleet Management on a Road Network using Multi-Agent Deep Reinforcement Learning with Graph Neural Network" by Juhyeon Kim and Kihyun Kim (ITSC 2021).

Requirements

We use Deep Graph Library (DGL) and OSMnx to handle a road network. For the backend of DGL, we use PyTorch.

To install all of the requirements:

conda config --prepend channels conda-forge
conda create -n roadnetwork --strict-channel-priority osmnx==0.14.1 python=3.7
conda activate roadnetwork
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
conda install -c anaconda ipykernel
python -m ipykernel install --user --name=roadnetwork
pip install dgl-cu102==0.4.3.post2

Training and Evaluation

10 by 10 grid city

Tutorial_10by10GridCity.ipynb runs a simulation on simple 10 by 10 grid-shaped city.

Real city

For real city data, following notebook tutorials are available.

(1) Preprocessing

  • Tutorial_GraphSimplification.ipynb performs graph simplification which is required to run simulation with large real data.
  • Tutorial_SpeedInfoGenerator.ipynb generates speed information data at each road from raw speed data.

(2) Run Simulation

  • Tutorial_RealCity.ipynb runs simulation (both train and evaluate) in Seoul with real call data.
  • Tutorial_RealCity_Multiprocessing.ipynb runs simulation (both train and evaluate) using multiprocessing. You need multi-GPU environment to run this code.

Data

The data was provided from Kakao mobility, South Korea. We upload example data in data_example folder to just check data format.

Full data will not be uploaded.

You should use your own data. Public data (osmnx road data / speed data) is fully uploaded. Please read README_data.md in data_example folder for the details.

Visualization

You can export Q value of the road at each time stamp to SVG file by enabling export_q_value_image option in evaluation function. Following is the video that shows Q values of roads in Seoul at each time stamp in a single day. Note that red means higher value and green means lower value.

visualization

Citation

If you find this useful for your research, please consider to cite:

@inproceedings{kim2021optimizing,
  title={Optimizing large-scale fleet management on a road network using multi-agent deep reinforcement learning with graph neural network},
  author={Kim, Juhyeon and Kim, Kihyun},
  booktitle={2021 IEEE International Intelligent Transportation Systems Conference (ITSC)},
  pages={990--995},
  year={2021},
  organization={IEEE}
}

About

This is the official implementation of "Optimizing Large-Scale Fleet Management on a Road Network using Multi-Agent Deep Reinforcement Learning with Graph Neural Network" (ITSC 2021)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published