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

yyds-xtt/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 road network. For 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 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)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Jupyter Notebook 98.3%
  • Python 1.7%