(Update: the stochastic simulations of the pooled and unpooled models will be updated later)

Bayesian Calibration of IDM

This repo provides the implementation of MA-IDM and Bayesian IDM in ''Bayesian Calibration of Intelligent Driver Model,'' as well as the dynamic IDM (AR+IDM) in our latest paper "Calibrating Car-following Models via Bayesian Dynamic Regression." Besides, the repo provides the implementation of the multi-vehicle ring-road simulations.

How to run

We calibrate our model on highD dataset. The preprocessed data are stored in data/cache/*.pkl. To implement your preprocessing procedures, please download and store the original data in the data/highD folder, e.g., it should contain data/highD/**_tracks.csv , data/highD/**_tracksMeta.csv, and data/highD/**_recordingMeta.csv.

We develop the probabilistic graphical models (PGMs) with PyMC. Please install PyMC4 by following their instructions. The PGMs in this work are implemented in: PGM_highD/Bayesian_IDM_(hierarchy)_(driver_type).ipynb, PGM_highD/MA_IDM_(hierarchy)_(driver_type).ipynb, and PGM_highD/AR_IDM_(hierarchy)_(driver_type).ipynb;

To visualize the result and conduct the single-vehicle stochastic simulations: PGM_highD(_joint)/Stochastic_simulation_GP.ipynb and PGM_highD(_joint)/Stochastic_simulation_AR.ipynb;

To conduct the multi-vehicle ring-road simulations, run Simulator/simulation_ring.py

Read More

Contact

If you have any questions, please feel free to contact us: Chengyuan Zhang (enzozcy@gmail.com) and Lijun Sun (lijun.sun@mcgill.ca).