The implementation is available on



The SUMO framework provides the simulation platform for this project. You find an install tutorial in the following link:

Please install the model checker STORM. You find an install tutorial in the following link:

To build the code, we used CMake (Version 3.18.2).


      git clone
      cd AdaptiveShielding
      cmake .


      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 you find the right arguments to run the experiments.