Decentralized Deep Reinforcement Learning based Real-World Applicable Traffic Signal Optimization
- python 3.7.9 above
- pytorch 1.7.1 above
- tensorboard 2.0.0 above
check the condition state (throughput)
python run.py simulate --network [5x5grid, 5x5grid_v2, dunsan, dunsan_v2]"Traffic data of Dunsan and Dunsan_v2 are classified by government of South Korea."
Run in RL algorithm DQN (default device: cpu)
python run.py train --network [5x5grid, 5x5grid_v2, dunsan, dunsan_v2]"Traffic data of Dunsan and Dunsan_v2 are classified by government of South Korea."
- check the result Tensorboard
tensorboard --logdir ./training_dataHyperparameter in json, model is in ./training_data/[time you run]/model directory.
- replay the model
python run.py test --replay_name /replay_data in training_data dir/ --replay_epoch NUMSynthetic Data in 5x5grid(Straight Flow), 5x5grid_v2(Random Trips)
| Evaluation Metric | Method | Straight Flow | Random Trips |
|---|---|---|---|
| Throughput(vehs) | Fixed | 15184 | 6872 |
| Throughput(vehs) | Ours | 15380 | 7154 |
| Waiting Time(s) | Fixed | 916.7 | 670.2 |
| Waiting Time(s) | Ours | 851.2 | 587.1 |
Real World Data in Dunsan-dong, Daejeon, Korea
| Evaluation Metric | Method | Peak | Free and Peak combined |
|---|---|---|---|
| Throughput(vehs) | Fixed | 13616 | 10415 |
| Throughput(vehs) | Ours | 13649 | 10539 |
| Waiting Time(s) | Fixed | 240.1 | 237.6 |
| Waiting Time(s) | Ours | 231.1 | 218.1 |