The implementation is available on https://github.com/shieldai/AdaptiveShielding.
The SUMO framework provides the simulation platform for this project.
You find an install tutorial in the following link:
https://www.eclipse.org/sumo/
Please install the model checker STORM.
You find an install tutorial in the following link:
https://www.stormchecker.org/getting-started.html
To build the code, we used CMake (Version 3.18.2).
git clone https://github.com/shieldai/AdaptiveShielding.git
cd AdaptiveShielding
cmake .
make
Allowed options:
-c [ --sumo ] arg SUMO gConfig file
-b [ --block ] arg block file
-s [ --shield ] arg Shield gConfig files
-i [ --ignore ] arg Files which contains junction or tls IDs which
will be ignored
-j [ --tls ] arg File with shielded junctionIDs or tlsIDs
-o [ --logfile ] arg Logfile/Outfile
-f [ --free ] run without Shields
-m [ --multisimulation ] run side-by-side mode with shielded and
unshielded simulation
-u [ --update-interval ] arg Update interval for shields
-l [ --lambda ] arg Learning rate (parameter lambda)
-d arg parameter lambda d
-k [ --max-lane-size ] arg Limit of recognised waiting vehicles on lanes
(parameter K)
-t [ --simulation-time ] arg time step until stop the simulation
-n [ --no-lane-merging ] Avoid the merging of parallel lanes
-x [ --static-update ] Use no min update deltas
-g [ --gui ] Use sumo-gui
--help produce help message
./adaptiveShielding -c data/exp_basic/one_junction.sumo.cfg -g -d 4 -l 0.3 -k 10 -t 5000 -o log/demo.log
In the BASH file run.sh you find the right arguments to run the experiments.