- Descrizione del problema
- Il modello SIR
- Parte I: implementazione del modello SIR
- Parte II: simulazione tramite automa cellulare
- Variazioni sul tema
Il progetto consiste nella progettazione e nell'implementazione di una simulazione della diffusione di un'epidemia in una popolozione. Esiste un semplice modello teorico per descrivere la diffusione di un'epidemia all'interno di una popolazione chiusa. Il modello è detto SIR dalle iniziali di
- Suscettibili: le persone che si possono infettare
- Infetti: le persone infette e che possono infettare
- Rimossi: le persone guarite, decedute o in isolamento, che non possono più né infettarsi né infettare
Lo stato di una persona può andare in una direzione sola, prima da S a I e poi da I a R.
Il modello esposto è per forza di cose semplificato, ma aiuta a cogliere l'andamento reale di un'epidemia.
Il modello si basa su tre equazioni differenziali
da cui si ricava che
Il modello ha due parametri:
-
$\beta \in [0,1]$ è una misura della probabilità di contagio in seguito a contatti tra infetti e suscettibili -
$\gamma \in [0,1]$ è la probabilità di guarigione (o morte) di un infetto ed è l'inverso del tempo medio di risoluzione dell'infezione
I parametri
Notate come
Discretizzando le equazioni differenziali citate sopra e considerando
Ad ogni iterazione devono valere i vincoli
La prima parte del progetto è obbligatoria e consiste nell'implementazione del modello SIR descritto sopra, calcolando i valori di S, I e R al variare del tempo. In base ai vincoli citati sopra, questi valori devono essere dei numeri interi già durante la simulazione e non solo nell'output finale.
L'input del programma è costituito dai parametri del modello
L'output del programma è costituito da una tabulazione dei valori di S, I e R su standard output. In aggiunta è possibile utilizzare SFML (o altro sistema grafico, purché disponibile sulla piattaforma di riferimento Ubuntu 22.04) per la rappresentazione grafica dell'andamento delle variabili.
La seconda parte del progetto è facoltativa e consiste nell'implementazione della simulazione della pandemia tramite automa cellulare: ogni membro della popolazione è rappresentato come una cella su una griglia bidimensionale e può assumere valori diversi. La griglia può poi evolvere secondo alcune semplici regole di infezione e guarigione, a intervalli di tempo discreti.
Ogni cella in questo caso può essere in uno degli stati S, I o R (o vuota). Come
nel modello SIR, una cella S può diventare I e una cella I può diventare R. Il
passaggio da S a I avviene in base a una certa probabilità <random>
.
Come nella parte I, l'input del
programma è costituito almeno dalla durata in giorni della simulazione
L'output del programma è costituito dalla rappresentazione della griglia istante dopo istante, accompagnata dai valori di S, I e R. E' possibile utilizzare SFML (o altro sistema grafico, purché disponibile sulla piattaforma di riferimento Ubuntu 22.04) per la rappresentazione grafica.
Per entrambe le parti è possibile introdurre ulteriori elementi per rendere più elaborato il modello. A titolo di esempio:
-
introdurre misure di mitigazione durante il corso dell'epidemia (quarantena, vaccinazioni, lockdown, ...)
-
introdurre la possibilità che le persone si spostino sulla griglia dell'automa cellulare
-
...