Implementation

The implementation is available on https://github.com/shieldai/AdaptiveShielding.

README

Install/Dependencies

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).

Build

        
      git clone https://github.com/shieldai/AdaptiveShielding.git
      cd AdaptiveShielding
      cmake .
      make
        
      

Execute

        
      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.