Assignments for the course Complex networks: theory and applications
📅 Date: Jul 2019
🏫 Master in Communications and Computer Networks Engineering at Politecnico di Torino
📄 Report: latex/complex_net_report_senacheribbe.pdf
The project consists of 4 assignments covering the topic of Complex Networks.
Using a real graph as input, different centralities measures are computed and compared: degree, Katz and betweenness centrality.
Different epidemic processes are simulated on a real graph using a Monte Carlo approach: SI model, bootstrap percolation, bootstrap percolation (stocastic).
The Erdős–Rényi model (G(n,p) model) is simulated and its properties are tested for different values of n and p (up to n=100000).
The Barabási–Albert model is simulated and its properties are tested for n=100000.
More information are available in the final report latex/complex_net_report_senacheribbe.pdf.
The code is written in Python 3 using numpy, scipy (sparse matrix operations) and numba (JIT compilation).
To run the code, you need Python 3, Jupyter Notebook and the Python packages listed in requirements.txt.
Create a virtual environment, install the package dependencies and add a custom kernel to Jupyter:
$ python -m venv venv
$ source venv/bin/activate
(venv) $ pip install -r requirements.txt ipykernel
(venv) $ ipython kernel install --user --name=project-snets
(venv) $ deactivate
Now you can simply run:
$ jupyter-notebook
and browse the code in the assignment*/ folders.
The source code is licensed under the GNU GPLv3. The content of the report is licensed under the CC BY-NC-SA 4.0