Downloads

You can download the paper archive jea18-improving-centrality.tar.gz, which contains of used datasets and scripts to run the experiments. Additionally the archive contains the jupyter notebooks, used for creating plots in the paper. A README describes how to setup and use the material.

Description of README:

REPRODUCE PLOTS AND TABLES

Requirements: jupyter server, pandas, scipy, numpy, pylab, matplotlib, seaborn
- All plots and tables in the paper (apart from Table 1) can be reproduced using the jupyter notebook ExperimentsPaper.ipynb contained in the folder "notebooks"
- The numbers in Table 1 can be reproduced using the jupyter notebook ComparisonOptimum.ipynb contained in the folder "notebooks"

RE-RUN EXPERIMENTS

Requirements: scipy, numpy, networkit
- Experiments on running time of the dynamic algorithms (Tables 2-5 and Fig. 13-14):
As can be seen in ExperimentsPaper.ipynb, Tables 2-5 and Fig. 13-14 are based on the data contained in "scripts/resultsCompDirected" and "scripts/resultsCompUndirected".
These results are generated by the script "scripts/DynBetweennessOneNode.py" (change directed to True or False in the script to generate results for directed and
undirected graphs, respectively). Also, change nIter to specify the number of times the experiment should be repeated for each graph (since the
results depend on random edge insertions, different results will be seen in each iteration)
- Comparison of the greedy algorithm with other heuristics (Fig. 7-12):
These results are generated by the script "scripts/ComparisonHeuristics.py", which writes them into the file "resultsCompHeuristicsUndirected.txt"
or "resultsCompHeuristicsDirected.txt" (depending on whether directed is set to True or False).
Also in this case, notice that the experiments sample nodes at random, so results will change among runs.
- Run greedy algorithm on the small networks from Table 1:
These results are generated by the script "scripts/ResultsGreedySmallGraphs.py"

SETUP ENVIRONMENT

If you have trouble installing the required software, you can try the "requirements.txt" as an input for a conda-environment. To use it:
conda create --name jea18-improving --file requirements.txt
conda activate jea18-improving