SIR_ECovid
Frutto degli incontri con la dottoressa Caterina Rizzo (Ospedale pediatrico Bambin Gesù) e con il professor Eugenio Montefusco (Università La Sapienza di Roma) e del MeetUp Matematica per le epidemie, ragazze e ragazzi delle classi 5°E e 5°C hanno progettato e realizzato un’applicazione per lo studio della diffusione delle epidemie: SIR_ECovid.
L’applicazione è basata su un modello agent based, computazionale, quindi simula le interazioni tra gli individui di una popolazione controllando lo sviluppo del contagio che si propaga attraverso questi incontri.
Nella mappa la distanza tra individui (punti) rappresenta la distanza sociale più che quella geografica. Può essere più vicino socialmente una parente stretto che non abita con noi piuttosto che un vicino di casa che non incontriamo mai: nella mappa il parente stretto sarebbe un punto adiacente o quasi, il vicino un punto piuttosto distante.
L’applicazione
L’applicazione è stata realizzata con Blockly, il generatore di codice open source di Google, e una volta testata è stata fatta girare in Python (al codice generato da Blockly sono state aggiunte poche funzioni per la generazione delle mappe).
La struttura del programma, molto sintetica, è sostanzialmente quella di far incontrare ogni individuo della popolazione con un certo numero di altri, scelti a caso ma tenendo conto della distanza (la probabilità di incontrare un individuo vicino è più alta), controllare lo stato di salute dei due ed eventualmente propagare il contagio, con una probabilità che dipende dalla virulenza della malattia.
I parametri
Il modello è molto adattabile e può essere applicato a tutta una serie di situazioni diverse grazie alla dipendenza da alcuni parametri che ne modificano il comportamento:
- lambda ?: il tasso di contagio per ogni infettivo nell’unità di tempo (in pratica , la probabilità che un individuo che ha contratto la malattia ne contagi un altro che è ancora sano)
- gamma ?: tasso di guarigione (la probabilità che un malato guarisca, l’inverso 1/? indica quindi la durata media della malattia)
- tau ?: tasso di mortalità per ogni infettivo nell’unità di tempo (la probabilità che un malato muoia)
- sigma ?: governa la distanza a cui si trova l’individuo incontrato
- interazioni: il numero di individui incontrati da uno specifico individuo nell’unità di tempo
- durata : numero di unità di tempo della simulazione
- distanziamento: misura l’efficacia (o l’assenza) di misure di distanziamento sociale, prese per limitare la diffusione della malattia.
Come esempio di dipendenza dai parametri, le due simulazioni che seguono, sono state realizzate con gli stessi valori dei parametri ma con differente impostazione per il distanziamento.
Sviluppi
L’anno scolastico è praticamente finito e non c’è tempo per proseguire il lavoro, ma sicuramente sarà oggetto di laboratorio nel prossimo. Abbiamo pensato, e ci hanno suggerito, una miriade di possibili espansioni e miglioramenti per l’applicazione, ma sicuramente il primo task sarà quello di ricavare il valore dei parametri da una situazione reale, avendo i dati a disposizione, e passarli a SIR_ECovid per poi confrontare i risultati oggettivi con quelli forniti dall’applicazione: questo sarà davvero un bel test!