Introduzione

Il lavoro svolto consiste in un programma dedito al tracciamento dei contagi da covid tramite calcoli probabilistici.

L'applicazione si pone di soddifare la necessità di conoscere a priori gli individui maggiormente a rischio.

Si rende necessaria la ricerca della struttura dati corretta al fine di risolvere il problema in maniera efficiente e meno costosa.

A questo scopo è stato utilizzato un tipo di struttura dati a grafo, dove un nodo può rappresentare: persone, strutture, trasporti pubblici e gli archi rappresentano i contatti tra di essi.
Queste relazioni vengono valutate tramite delle apposite regole.


Codice Sorgente Github

Requisiti

Allo scopo di eseguire un corretto calcolo, questa applicazione richiede la conoscenza di alcuni dettagli, tra i quali:

Requisiti Contatto

  • Tempo di esposizione
  • Data del contatto
  • Distanza approssimativa tra i due elementi

Requisiti Nodo

  • Tipo del nodo (è una persona, trasporto pubblico..)
Forniti questi dati e marcati i nodi conosciuti come infetti, l'applicazione restituisce la probabilità di ogni nodo di essere infetto

Analisi dei requisiti

Il problema è stato ridotto ai minimi termini ed è stato impostato in maniera espandibile.

Dati strettamente necessari per la risoluzione del problema:


Tempo di esposizione

(float)
Rappresenta il tempo di esposizione in minuti
Si utilizza il tipo di dato float poiché è rilevante per un intervallo di tempo che va da un minimo di 10 secondi ad un massimo di 10 ore (espresso in minuti)

Distanza approssimativa

(float)
Rappresenta la distanza in metri tra le due persone per un particolare contatto.
La scelta del tipo di dato float è data dalla scala che si utilizza per il calcolo dell'infezione.
Poichè la distanza di sicurezza è di un metro, si utilizzano i metri per effettuare un calcolo efficiente.

Data del contatto

(string)
Contiene il timestamp del contatto.
Viene memorizzata in una stringa rispettando il formato: yyyy-MM-dd-hh:mm

Concetto di espandibilità

In particolare ci si riferisce ad espandibilità nell'ottica della definizione di nodi personalizzati e Regole differenti per gli scopi più disparati.
Alcuni esempi contenuti all'interno della demo:

Glossario: