Skip to content

SNA project - Epidemic Super Spreaders in Networks

Notifications You must be signed in to change notification settings

Meht-evaS/SNA-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SNA-Project

Progetto d'esame, in linguaggio Python, per la materia Artificial Intelligent System: Intelligent Models (A.A. 2022/2023).

📝 Indice

🎓 Studenti

  • Castaldelli Luca
  • Cerami Cristian

📄 Informazioni progetto

Titolo

Epidemic Super Spreaders in Networks - Progetto 1

Area

Social Graph and Complex Network

🎯 Obiettivo

Lo scopo è quello di implementare un sistema per simulare la diffusione di un'epidemia in una rete complessa e di rilevarne i nodi Super Spreader.

Nel modello i nodi rappresentano individui che, per ogni passo temporale, possono essere infettati dal contatto con i loro nodi vicini nella rete.

Per la diffusione dell'infezione viene adottata una variante del modello SIR (Susceptible Infected Recover), dove ad ogni passo temporale viene calcolata la diffusione epidemica rispetto ai parametri di configurazione del sistema.

In particolare si ha che:

  • Tutti i nodi sono inizialmente in stato suscettibile (susceptible) e possono diventare infetti
  • Una percentuale p_init di nodi iniziali viene messa in stato infetto (infected)
  • Se un nodo diventa infetto, passa allo stato guarito (recovered) dopo un arco temporale di t_rec e nel mentre non può essere infettato
  • Un nodo guarito diventa nuovamente suscettibile dopo un arco temporale t_sus
  • Ad ogni step temporale t_step, per ogni nodo infetto, vi è una probabilità p_trans di trasmettere la malattia a ciascuno dei suoi vicini non infetti
  • I cambi di stato dei nodi sono sincroni ed avvengono tutti alla fine dello step temporale

❓ Richieste

Il sistema dovrebbe consentire:

  • Il caricamento di qualsiasi grafo in formato CSV, sottoforma di lista di archi
  • La configurazione dei parametri
  • L'avvio ed esecuzione di una o più simulazioni con gli stessi stati iniziali del nodo
  • La visualizzazione delle statistiche e metriche
  • La visualizzazione e una rappresentazione grafica del grafo prima, durante o alla fine della simulazione colorando i nodi in base al loro stato
  • Il candidato deve sviluppare una tecnica che, attraverso una serie di simulazioni casuali, permetta di trovare e mostrare i nodi super spreader più rilevanti del grafo passato in input

Installazione

💻 Ambiente di lavoro

Questa installazione è per Linux.
Per Windows attualmente vi è un problema con il package PyGraphviz che a sua volta si basa sul software Graphviz che a sua volta basa il funzionamento di alcuni algoritmi implementati (come quello per la rimozione dell'overlap) su alcune librerie che purtroppo sono compatibili solo con Linux. Questo problema, rilevato per la prima volta nel 2017, risulta essere ancora un open issue nel relativo repository Github.

⚙️ Setup

Prima di scaricare questo repository è consigliato creare un ambiente virtuale sul quale verranno installati i packages necessari.
Se vuoi creare un ambiente virtuale esegui tutti gli step, altrimenti salta al punto 6.
Apri un terminale ed esegui:

  1. python3 -m venv /path/to/<nome-virtual-envirnment>
  2. cd /path/to/<nome-virtual-envirnment>
  3. source bin/activate
  4. git clone https://github.com/Meht-evaS/SNA-Project.git
  5. cd SNA-Project
  6. chmod +x install.sh
  7. ./install.sh

About

SNA project - Epidemic Super Spreaders in Networks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published