Repository for the Innovation Networks project, accepted for NetSciX 2024.
This project takes fits empirical social netowrks to an agent-based model (ABM). After determining the reinforcement and novelty parameters, the ABM generates multiple 50-node networks to represent the original network. Innovation simulations are then conducted to assess how reinforcement and novelty impact innovation efficiency. The project also compares different empirical networks with innovation-optimal networks to identify differences.
-
Calculate the network metrics for your social network by running the code in
calculate_metrics. This will createdata/metrics/<dataset>.csvwith the metrics of the empirical network. -
Fit your network to the ABM by running the code in
fitting. This will createfitting/results/<dataset>/best.csvwith the best fit reinforcement and novelty parameters using QD algorithms and the metrics from step 1. -
Run the ABM and calculate the resulting innovation efficiencies by running the code in
empirical. This will createempirical/results/<dataset>/output.csvwith the mean NCTF and TTF of the ABM0-generated networks. -
Run the full search to running the code in
full_search. This will createfull_search/results/<innovation_type>/output.csvwith the mean NCTF and TTF of the ABM-generated networks for all possible reinforcement and novelty parameters. -
To visualise the results in the browser, the optimal and least optimal innovation networks must be converted into JSON format. This is done by running
full_search/analyse.py. This will create 100 networks for the best and worst choice of ABM parameters and create correspodning JSON files infull_search/data/output/graph/. -
To run the webapp navigate to
webappand runnpm installandnpm start. This will start the webapp onlocalhost:3000. The webapp can be used to visualise the networks in the browser. You need to ensure the correct JSON files are placed inwebapp/src/data/. See thewebappREADME for more details. -
To create plots of the results, run the scripts in
visualise. This will create plots invisualise/results/.
