Tesi etd-05082023-190621 |
Link copiato negli appunti
Tipo di tesi
Tesi di laurea magistrale
Autore
MAMMOLITI, GIUSEPPE
Indirizzo email
g.mammoliti@studenti.unipi.it, giuseppemammoliti21@gmail.com
URN
etd-05082023-190621
Titolo
Modellazione di un database a grafo rappresentante una rete di telecomunicazione in fibra ottica per un'azienda telco e analisi della sua robustezza.
Dipartimento
INFORMATICA
Corso di studi
DATA SCIENCE AND BUSINESS INFORMATICS
Relatori
relatore Prof. Rossetti, Giulio
tutor Dott. Di Francescantonio, Pietro
tutor Dott. Di Francescantonio, Pietro
Parole chiave
- analisi della robustezza.
- rete in fibra ottica
- scienza delle reti
Data inizio appello
26/05/2023
Consultabilità
Completa
Riassunto
Nella seguente tesi svolta in collaborazione con il team di Data Intelligence di NTT DATA, andremo a “informatizzare” e analizzare attraverso tecniche proprie della scienza delle reti una rete di telecomunicazioni in fibra ottica per uno dei maggiori player telco internazionali.
L’azienda committente era interessata a sapere quali fossero le strutture più importanti all’interno della rete e che effetti avrebbe avuto un loro eventuale malfunzionamento come, ad esempio, un attacco informatico o un guasto a livello fisico. Inoltre, ci era stato chiesto di capire come l’eliminazione di queste strutture o dei collegamenti tra di esse avrebbe potuto influenzare la quantità di cavo necessario per arrivare dalle sorgenti dell’informazione ai nodi finali di interesse strategico del business, questa seconda richiesta ci è stata fatta per poter capire in caso di malfunzionamento quali sarebbero state le ripercussioni sulle prestazioni della rete e se fosse possibile “snellire” la rete mantenendo le prestazioni inalterate.
Dopo l’anonimizzazione dei dati e del loro conseguente caricamento sul DBMS Neo4j, dedicato al trattamento e all’analisi di dati con struttura a grafo, abbiamo in primo luogo esplorato e cercato di “conoscere” meglio i dati a nostra disposizione con l’ausilio sia di Neo4j che del linguaggio di programmazione Python 3 attraverso l’ambiente di sviluppo Jupyter Noteboook.
Conseguentemente, abbiamo applicato alla rete diversi algoritmi appartenenti alla famiglia della Community Detection per capire da quante e quali comunità fosse composta la nostra rete, per poter poi selezionare i "cluster" di nodi su cui condurre le analisi, per questo scopo l'algoritmo più adeguato, nel nostro caso, è risultato essere il Weakly Connected Component.
Successivamente, siamo passati a capire quali fossero le strutture più "importanti" all’interno della rete comparando diversi algoritmi di centrality e individuando nella Betweenness Centrality l’algoritmo adatto per le nostre esigenze.
A questo punto, abbiamo utilizzato l’algoritmo di Minimum Weighted Spanning Tree per trovare i percorsi che utilizzassero la minor quantità di cavo possibile per collegare ogni nodo sorgente appartenente alla comunità presa in esame e gli altri nodi appartenenti alla comunità. Infine, abbiamo confrontato le prestazioni dell’algoritmo eseguito sulla comunità di riferimento dopo aver eliminato diverse percentuali di nodi in termini di Betweenness cumulata. Per il confronto, abbiamo tenuto conto sia dei nodi raggiunti dai nodi sorgente attraverso l’algoritmo sia dei metri di cavo impiegati per raggiungere dai nodi sorgente i nodi di tipo 4, che corrispondono ai nodi di interesse del business per cui il loro non raggiungimento pregiudicherebbe l’erogazione dei servizi del provider.
L’azienda committente era interessata a sapere quali fossero le strutture più importanti all’interno della rete e che effetti avrebbe avuto un loro eventuale malfunzionamento come, ad esempio, un attacco informatico o un guasto a livello fisico. Inoltre, ci era stato chiesto di capire come l’eliminazione di queste strutture o dei collegamenti tra di esse avrebbe potuto influenzare la quantità di cavo necessario per arrivare dalle sorgenti dell’informazione ai nodi finali di interesse strategico del business, questa seconda richiesta ci è stata fatta per poter capire in caso di malfunzionamento quali sarebbero state le ripercussioni sulle prestazioni della rete e se fosse possibile “snellire” la rete mantenendo le prestazioni inalterate.
Dopo l’anonimizzazione dei dati e del loro conseguente caricamento sul DBMS Neo4j, dedicato al trattamento e all’analisi di dati con struttura a grafo, abbiamo in primo luogo esplorato e cercato di “conoscere” meglio i dati a nostra disposizione con l’ausilio sia di Neo4j che del linguaggio di programmazione Python 3 attraverso l’ambiente di sviluppo Jupyter Noteboook.
Conseguentemente, abbiamo applicato alla rete diversi algoritmi appartenenti alla famiglia della Community Detection per capire da quante e quali comunità fosse composta la nostra rete, per poter poi selezionare i "cluster" di nodi su cui condurre le analisi, per questo scopo l'algoritmo più adeguato, nel nostro caso, è risultato essere il Weakly Connected Component.
Successivamente, siamo passati a capire quali fossero le strutture più "importanti" all’interno della rete comparando diversi algoritmi di centrality e individuando nella Betweenness Centrality l’algoritmo adatto per le nostre esigenze.
A questo punto, abbiamo utilizzato l’algoritmo di Minimum Weighted Spanning Tree per trovare i percorsi che utilizzassero la minor quantità di cavo possibile per collegare ogni nodo sorgente appartenente alla comunità presa in esame e gli altri nodi appartenenti alla comunità. Infine, abbiamo confrontato le prestazioni dell’algoritmo eseguito sulla comunità di riferimento dopo aver eliminato diverse percentuali di nodi in termini di Betweenness cumulata. Per il confronto, abbiamo tenuto conto sia dei nodi raggiunti dai nodi sorgente attraverso l’algoritmo sia dei metri di cavo impiegati per raggiungere dai nodi sorgente i nodi di tipo 4, che corrispondono ai nodi di interesse del business per cui il loro non raggiungimento pregiudicherebbe l’erogazione dei servizi del provider.
File
Nome file | Dimensione |
---|---|
TesiGIUS...OLITI.pdf | 1.93 Mb |
Contatta l’autore |