This code implements simultations from the paper found here.
To run the simulations, you will need to have installed the Rust programming language.
To generate the graphs from the output, you are required to have Python installed.
In addition to that, you need the parse
, matplotlib
, and networkx
Python dependencies.
This repository provides multiple simulations, given in the dissyssym
folder.
All of them are normally run in release mode, as the algorithms are computationally very heavy.
This binary will generate random k
-connected graphs.
It will use a node count between 2
and 100
, and generate every possible connectivity for each n
.
For each possible combination of the parameters, five random topologies are generated.
These topologies are then stored in the ./topologies
folder.
To run it, you can use the following command:
cargo run --bin gentopology --release
Using the topologies generate in the Topology Generation section, this will simulate both algorithms on the topologies.
For this, every valid value for f
will be evaluated.
Results will be written to the console and results.data
.
cargo run --bin simulate --release
This compares the time the two path building algorithms take to generate the paths.
Results will be written to the console and pathtime.data
.
It can be run by the following command:
cargo run --bin pathtime --release
This will simulate the algorithms, and count when and with which parameters simulations failed.
Results will be written to the console and failures.data
.
It can be run by the following command:
cargo run --bin failure --release
To build the graphs used in the paper, some Python scripts have been made.
All graphs will be written to {RESULTS_FILE}.png
.
To build the simulation graphs, you can run the following command. The parameter is the path to the results file.
python ./scripts/graph_messages.py ./results.data
To build the simulation graphs, you can run the following command. The parameter is the path to the results file.
python ./scripts/graph_pathtime.py ./pathtime.data
To build the failure graphs, you can run the following command. The parameter is the path to the results file.
python ./scripts/graph_failure.py ./failures.data