Validation and analysis of mobility models

150
Facoltà di Ingegneria Corso di laurea in Ingegneria Informatica Tesi di laurea Magistrale in Ingegneria Informatica Validation and analysis of mobility models Relatore Candidato Prof. Luca Becchetti Umberto Griffo Correlatore Prof. Leonardo Querzoni A/A 2011/2012

description

 

Transcript of Validation and analysis of mobility models

Page 1: Validation and analysis of mobility models

Facoltà di Ingegneria Corso di laurea in Ingegneria Informatica

Tesi di laurea Magistrale in

Ingegneria Informatica

Validation and analysis of mobility models

Relatore Candidato

Prof. Luca Becchetti Umberto Griffo Correlatore

Prof. Leonardo Querzoni

A/A 2011/2012

Page 2: Validation and analysis of mobility models

2

Indice

Introduzione ..................................................................................................... 4

User Mobility .................................................................................................... 8

1.1 Tecnologie ................................................................................................................. 9

1.2 Tracce di mobilità .................................................................................................. 12

1.2.1 CRAWDAD ................................................................................................... 13

1.2.2 SocioPattern ................................................................................................... 14

1.2.3 SocialDIS ........................................................................................................ 17

1.2.4 MACRO .......................................................................................................... 20

Mobility Models ............................................................................................. 27

2.1 Individual mobility models .................................................................................. 29

2.1.1 Random Walk (RW)...................................................................................... 29

2.1.2 Random Waypoint (RWP) ........................................................................... 30

2.1.3 Random Direction (RD) .............................................................................. 32

2.1.4 Truncated Lèvi Walk (TLW) ....................................................................... 33

2.1.5 Boundless Simulation Area (BD) ............................................................... 34

2.1.6 Gauss-Markov (GM) .................................................................................... 36

2.1.7 Probabilistic Random Walk (PRW)............................................................ 38

2.1.8 Weighted Waypoint (WW) .......................................................................... 40

2.2 Group mobility models ........................................................................................ 41

2.2.1 Exponential Correlated Random ................................................................ 41

2.2.2 Column ........................................................................................................... 41

2.2.3 Nomadic Community ................................................................................... 42

2.2.4 Pursue .............................................................................................................. 42

2.2.5 Reference Point Group (RPG) ................................................................... 43

Grafi dinamici................................................................................................. 44

3.1 Definizione del grafo dinamico dei contatti ...................................................... 44

3.2 Definizione del grafo aggregato dei contatti ..................................................... 47

3.3 Indicatori statistici/metriche................................................................................ 47

3.3.1 Indicatori/metriche su grafo aggregato ..................................................... 47

3.3.2 Indicatori/metriche su grafo dinamico ..................................................... 51

Page 3: Validation and analysis of mobility models

3

3.4 Rappresentazioni di grafi dinamici...................................................................... 55

3.4.1 Graph Exchange XML Format (GEXF) .................................................. 56

3.4.2 Dynamic Network Format (DNF) ............................................................. 57

Sistema per l'analisi di grafi dinamici............................................................. 64

4.1 Gephi Platform ...................................................................................................... 64

4.1.1 Gephi Dynamic API ..................................................................................... 67

4.2 DNF Dynamic ....................................................................................................... 68

4.3 DNF Importer ....................................................................................................... 71

4.4 Mobility Model Generator ................................................................................... 72

4.4.1 Mobility Simulator ......................................................................................... 72

4.4.2 Random Waypoint Mobility Model Generator ........................................ 73

4.4.3 Truncated Lèvi Walk Mobility Model Generator .................................... 74

4.5 Indicatori statistici/Metriche ............................................................................... 76

4.5.1 Weighted Clustering Coefficient e Strength ............................................. 76

4.5.2 Flooding time ................................................................................................. 77

4.5.3 Inter-contact time ed Intra-contact time ................................................... 79

4.5.4 Conditional probability Distribution of link's existence ......................... 80

4.5.5 Link's existence variability ........................................................................... 80

4.5.6 Pearson correlation matrix........................................................................... 81

4.6 Ulteriori script e riferimenti ................................................................................. 83

Validazione sperimentale dei modelli di mobilità .......................................... 84

5.1 Comparazione con i dati dell'esperimento SocialDIS ..................................... 86

5.1.1 Modelli nella loro formulazione originaria ................................................ 86

5.1.2 Modelli con aree di simulazione scalate di un fattore 10 ...................... 103

5.2 Comparazione con i dati dell'esperimento MACRO ..................................... 116

5.2.1 Modelli nella loro formulazione originaria .............................................. 116

5.2.2 Modelli con aree di simulazione scalate di un fattore 10 ...................... 130

5.3 Sintesi dei risultati ottenuti ................................................................................. 141

Conclusioni .................................................................................................. 143

6.1 Proposte di sviluppo future ............................................................................... 144

Bibliografia ................................................................................................... 147

Page 4: Validation and analysis of mobility models

4

Introduzione

I modelli di mobilità riproducono i movimenti di utenti mobili assegnando a

ciascuno di essi una posizione, una velocità ed un'accelerazione che cambiano nel

tempo. Nel lavoro svolto in questa tesi è stata condotta un'estesa analisi statistica

volta a indagare l'efficacia di due importanti modelli di mobilità nel riprodurre il

comportamento di tracce reali. A tale scopo è stato fatto uso di tracce di mobilità

raccolte in due esperimenti sociali svolti in due differenti contesti: l'esperimento

SocialDIS, svoltosi a partire dal 17/10/2011 al primo piano del Dipartimento di

Ingegneria informatica automatica e gestionale Antonio Ruberti della Sapienza

Università di Roma, e l'esperimento NeonMACRO, effettuato il 20 Giugno 2012, in

occasione della mostra d'arte NEON, presso il museo d'arte contemporanea di Roma

MACRO.

Tramite una piattaforma RFID-based sono stati tracciati i contatti di

prossimità tra persone in entrambi gli esperimenti. A partire da questi dati, sono stati

costruiti dei grafi dinamici che descrivono l'evoluzione temporale delle interazioni

sociali tra individui, usando un formalismo che consente di memorizzarli più

efficientemente di quanto fosse possibile in passato. Tale formalismo, ideato e

sviluppato in questo lavoro, permette una rappresentazione notevolmente compatta

ed efficiente in termini di occupazione di memoria e manipolabilità.

Per analizzare l'efficacia dei modelli nel riprodurre tracce compatibili con il

reale comportamento di agenti mobili, si sono analizzati e confrontati i grafi dinamici,

ottenuti a partire dagli esperimenti sociali sopra citati, con quelli generati a partire dai

modelli di mobilità Random Waypoint e Truncated Lévy Walk. A tal fine sono stati

sviluppati diversi moduli software basati sul framework Gephi [11] (http://gephi.org),

in particolare per:

simulare la dinamicità temporale del grafo dei contatti con elevate prestazioni,

in termini di tempo di calcolo e quantità di memoria allocata;

importare nella piattaforma Gephi grafi che adottano il nuovo formalismo di

memorizzazione;

Page 5: Validation and analysis of mobility models

5

generare grafi dinamici a partire dal Random Waypoint Mobility Model e dal

Truncated Lévy Walk Mobility Model;

misurare le proprietà statiche (Graph Density, Cluster Coefficient, Weighted

Clustering Coefficient, Strength, Modularity) e dinamiche (Inter-Intra

Contact Time, Conditional probability of link's existence, Link's existence

variability, Matrix correlation) dei grafi dinamici da confrontare.

I grafi dinamici costruiti sono stati analizzati sia in forma aggregata che in

forma dinamica, rispettivamente aggregando le interazioni a distanza ravvicinata per

intervalli di tempo che vanno dalle 2 ore (nel caso NeonMACRO) alle 12 ore (nel

caso SocialDIS), e valutando l'evoluzione dei contatti secondo per secondo.

Le prime analisi condotte mostrano che nel caso SocialDIS tipicamente gli

individui hanno contatti di prossimità prevalentemente con altri individui con cui

hanno stretto un legame d'amicizia e raramente con altri individui sconosciuti,

mentre nel caso NeonMACRO le persone tendono a comunicare soprattutto con

quelle che appartengono alla stessa comitiva e sporadicamente con tutte le altre.

Questo comportamento tipico degli individui, riscontrato negli esperimenti,

non viene catturato dai modelli di mobilità RWP e TLW i quali sono stati

opportunamente configurati per riprodurre in modo realistico il movimento delle

persone nei due differenti contesti. In particolare, una differenza fondamentale

emerge confrontando i risultati forniti dalle metriche statiche applicabili sui grafi

aggregati e dalle metriche dinamiche applicabili su quelli non aggregati. Gli agenti che

si muovono secondo questi due modelli di mobilità tendono a comunicare con quasi

tutti gli altri agenti e tendono a produrre intervalli tra contatti successivi che

mediamente risultano eccessivamente lunghi.

Successivamente si sono investigate importanti differenze temporali indotte dai

modelli e presenti anche nelle tracce reali. I modelli RWP e TLW mostrano inoltre

significative correlazioni spaziali tra contatti distinti, sia simulando quanto avviene in

SocialDIS che nel NeonMacro. Analizzando gli schemi delle comunicazioni in

SocialDIS si è riscontrato che la correlazione spaziale tra contatti distinti risulta

essere esigua, mentre risulta essere leggermente maggiore in NeonMACRO.

Infine, attraverso l'implementazione di un semplice protocollo di flooding si sono

investigate le proprietà diffusive dei grafi prodotti dalle tracce reali e le si sono

Page 6: Validation and analysis of mobility models

6

confrontate con quelle dei modelli. E' stato appurato che entrambi i modelli, proprio

per il fatto di generare un elevato numero di comunicazioni che coinvolgono quasi

tutti gli individui, falliscono nel rappresentare il comportamento diffusivo mostrato

dagli esperimenti SocialDIS e NeonMACRO. La totalità dei risultati statistici di

questo studio hanno permesso di chiarire quali sono i limiti dei modelli di mobilità

adottati nella sperimentazione, almeno nel tipo di scenari considerati, in modo da

comprendere quali possano essere le modifiche da apportare per ottenere dei modelli

più realistici.

La tesi è strutturata come segue:

Capitolo 1: vengono illustrate quali tecnologie consentono la raccolta di

tracce di mobilità nei casi reali, le più recenti tracce di mobilità collezionate e

rese disponibili dal mondo accademico e quelle invece ottenute dagli

esperimenti che sono stati condotti nell'ambito del lavoro di tesi.

Capitolo 2: viene data la definizione dei dataset sintetici e i modelli di

mobilità, fornendo di questi ultimi una classificazione e successivamente

illustrando quelli più usati per riprodurre il comportamento di dispositivi

mobili in reti ad hoc.

Capitolo 3: viene data la definizione dei grafi dinamici dei contatti e come

possono essere costruiti a partire dai dati collezionati nei casi reali e da quelli

ottenuti nei casi simulati con i modelli di mobilità adottati. In seguito

vengono definiti gli indicatori statistici/metriche che sono stati implementati

per poter condurre l'analisi statistica (trattata nel Capitolo 5), le limitazioni del

formato attualmente più utilizzato per la scrittura di grafi dinamici su file e il

nuovo formato che è stato ideato per superarle.

Capitolo 4: vengono presentati i moduli software sviluppati sulla piattaforma

Gephi con lo scopo di simulare la dinamicità temporale del grafo dei contatti,

importare grafi dinamici memorizzati secondo un nuovo formalismo,

generare grafi dinamici a partire dai modelli di mobilità e calcolare gli

indicatori statistici/metriche.

Page 7: Validation and analysis of mobility models

7

Capitolo 5: vengono illustrati e motivati i risultati dell'analisi e validazione

sperimentale condotta confrontando i comportamenti degli individui tracciati

negli esperimenti SocialDIS e NeonMACRO, con i comportamenti degli

individui i cui movimenti sono stati dettati dai modelli di mobilità Random

Waypoint e Truncated Lévy Walk.

Capitolo 6: vengono presentate le considerazioni finali e i possibili sviluppi

futuri.

Page 8: Validation and analysis of mobility models

8

Capitolo 1

User Mobility

La crescente diffusione e popolarità di dispositivi equipaggiati con interfacce di rete

wireless, come ad esempio gli smartphone di ultima generazione, rende possibile

collezionare nuove sorgenti dati, che descrivono il movimento e comportamento di

individui nei più disparati ambienti e contesti. L'accesso a tali collezioni di dati,

permette di investigare sulle interazioni delle reti sociali e sull'evoluzione di processi

dinamici, come la diffusione di un'informazione, la formazione di un'opinione, o un

processo epidemico.

Esistono due tipi di data set usati per valutare processi e protocolli applicabili

alle reti mobili: dataset empirici (o Empirical dataset), collezionati catturando i dati dai

comportamenti reali dei dispositivi mobili, ovvero memorizzando le reali tracce di

mobilità dei dispositivi mobili, o dataset sintetici (o Synthetic dataset), creati usando i

modelli di mobilità, che provano a riprodurre il comportamento dei dispositivi mobili

senza usare tracce di mobilità reali.

I dati provenienti dal mondo reale consentono di capire gli schemi di

comportamento che gli esseri umani adottano nelle loro attività. Quando si vogliono

collezionare tali dati, le caratteristiche che interessa conoscere sono: posizione,

direzione, velocità e tempo di pausa. Esistono diverse tecnologie che permettono di

ottenere dati accurati sulle posizioni dei dispositivi, come i sensori GPS-based o

Radio-based, ed esistono gli accelerometri per catturare i valori di velocità, direzione

e tempo di pausa.

Queste tecnologie possono essere classificate in base a quanto accuratamente

riescono ad individuare la posizione di un dispositivo. Ad esempio utilizzando le reti

cellulari GSM/UMTS, la posizione dell'utente può essere determinata tramite varie

tecniche che permettono la sua localizzazione con un errore di massimo 50-150m,

mentre con le tecnologie GPS, si arriva ad un errore massimo di 10-100m.

Page 9: Validation and analysis of mobility models

9

Esiste un approccio alternativo per collezionare dati sui movimenti degli

individui, basato solo sulla raccolta dei contatti che avvengono tra di loro. Vengono

dunque raccolte le tracce dei contatti al posto delle tracce di mobilità, omettendo tutti

i dati relativi a posizione, direzione, velocità e tempi di pausa, in modo da simulare

solo le comunicazioni tra dispositivi.

Per quanto concerne il lavoro svolto in questa tesi, è trovato interessante

questo secondo approccio, ovvero collezionare dati generati da reti dinamiche di

contatti (o dynamic contact network), ossia grafi che rappresentano le interazioni

face-to-face o di prossimità tra individui. Catturando trace di mobilità, basate sui

contatti reali, si possono osservare i veri comportamenti di tali individui.

Nei prossimi sottoparagrafi saranno illustrate, quali tecnologie consentono la

raccolta di tracce di mobilità nei casi reali, le più recenti tracce di mobilità raccolte e

rese disponibili dal mondo accademico e quelle invece ottenute dagli esperimenti che

sono stati condotti nell'ambito del lavoro di tesi.

1.1 Tecnologie

Collezionare dataset realistici e di grandi dimensioni su attività e interazioni umane è

un processo difficile e costoso. Al fine di costruire dataset empirici, ossia tracciare i

comportamenti umani, sono stati usati dispositivi mobili cellulari o smartphone,

laptop con schede di rete wireless e sensori wireless (ad esempio iMote), utilizzando

reti di comunicazione di tipo Bluetooth e WiFi [30],[31],[32].

L'uso delle reti WiFi risulta essere, come dimostrato negli esperimenti

condotti dall'Università di Dartmouth [33] e da quella di San Diego [41] , inaccurato

nel costruire tracce di mobilità realistiche tra dispositivi mobili. Utilizzando la

tecnologia WiFi i dati sulle interazioni device-to-device vengono raccolti assumendo

che i dispositivi mobili, che entrano nel raggio di comunicazione dello stesso AP

(access point), possono comunicare direttamente tra di loro, ossia i contatti vengono

registrati al tempo in cui i due dispositivi condividono lo stesso AP.

Sfortunatamente, questa assunzione non è realistica, perché due dispositivi

collegati allo stesso access point non è detto che siano uno nel raggio di copertura

dell'altro, e viceversa, possono essere nei rispettivi raggi di copertura e non

condividere lo stesso AP. In quest'ultimo caso l'interazione non viene registrata

rendendo i dati raccolti poco realistici.

Page 10: Validation and analysis of mobility models

10

Inoltre un'altra problematica relativa alla tecnologia Wifi consiste nel fatto

che i dispositivi non sono sempre situati nello stesso punto dove si trova il

proprietario, pertanto i dati ottenuti non esprimono sempre i comportamenti di

mobilità degli individui. La tecnologia Bluetooth, utilizzata nell'esperimento [34]

condotto presso l'università di Toronto, dove le tracce di mobilità sono state

collezionate da 20 cellulari distribuiti a gruppi di studenti, permette di collezionare

contatti senza che i dispositivi debbano essere nel raggio di comunicazione dell'AP,

ma allo stesso tempo richiede che il cellulare sia trasportato dai soggetti e che esso

abbia una batteria con un'autonomia sufficiente per la durata dell'intero esperimento.

Se i cellulari vengono ricaricati, si possono condurre lunghi esperimenti, ma

ovviamente per essere ricaricato, il cellulare deve essere fermo e probabilmente

distante dal proprietario, ottenendo la stessa problematica illustrata per il caso WiFi.

Tracce di mobilità sono state collezionate anche con l'uso di sensori Intel iMote,

utilizzando sempre la tecnologia Bluetooth.

Essi registrano un contatto quando un dispositivo Bluetooth qualsiasi (sia un

altro iMote che un PDA) entra nel suo raggio di copertura. Tramite questa tecnologia

sono state raccolte tracce di mobilità in contesti differenti [30], ad esempio durante la

conferenza IEEE INFOCOM 2005 di Miami [48], dove 41 iMote sono stati

trasportati dai partecipanti per 3 giorni, o presso un laboratorio di ricerca della

Università di Cambrige, dove sono stati registrati i comportamenti e le tracce di

mobilità di 12 studenti di dottorato.

Utilizzando le tecnologie Bluetooth e Wifi si possono raccogliere dati che

rivelano proprietà strutturali e temporali di schemi di comportamento sociali, ma

oltre che per i problemi già illustrati, queste tecnologie non sono adatte a rilevare

contatti di prossimità (o face-to face) tra dispositivi, dal momento che possiedono

una risoluzione spaziale massima di 10 metri e temporale di 2-5 minuti che non ci

permette di stabilire se due individui comunicano uno di fronte all'altro a distanza

ravvicinata (ad esempio 1 metro).

Tali limitazioni possono essere superate attraverso l'uso dei dispositivi RFID

(Radio Frequency Identification) [35],[65] RFID, una tecnologia per l'identificazione

automatica di oggetti, animali o persone, basata sulla capacità di memorizzazione di

dati da parte di particolari dispositivi elettronici (detti tag o transponder) e sulla

capacità di questi di rispondere "all'interrogazione" a distanza, da parte di appositi

Page 11: Validation and analysis of mobility models

11

apparati fissi o portatili chiamati reader a radiofrequenza, comunicando (o

aggiornando) le informazioni in essi contenute.

I tag RFID sono dei dispositivi dalle piccole dimensioni, facilmente

indossabili da individui, che permettono di stabilire con accuratezza se questi sono in

prossimità l'uno dell'altro. Questo perché i dispositivi possono scambiarsi pacchetti

radio a bassa frequenza solo quando due persone si trovano ad una distanza che va

da 1 a 1.5 m e sono una di fronte all'altra, in quanto il corpo umano costituisce una

barriera a radio frequenze per la frequenza portante usata per la comunicazione.

In tale contesto, la tecnologia RFID è stata adottata ed utilizzata dalla

piattaforma SocioPatterns (http://www.sociopatterns.org) [36], un framework sperimentale

RFID-based che permette di raccogliere dati sulle interazioni face-to-face tra

individui che interagiscono a distanza ravvicinata. Durante gli esperimenti

SocioPatterns [37],[38],[39],[40] i partecipanti indossano dei piccoli tag RFID.

Quando gli individui indossano i tag continuamente vengono inviati pacchetti

dati in broadcast. Quando una relazione di prossimità (o contatto) viene rilevata, il

dispositivo invia un messaggio ad alta potenza. Questo pacchetto dati contiene un

time stamp, l'id della stazione (RFID reader) che lo ha ricevuto e l'id dei tag che

hanno partecipato nell'interazione. Il messaggio ricevuto dagli RFID reader,

posizionati in modo fisso nell'ambiente, viene memorizzano localmente dal reader ed

inoltrato ad un server centrale tramite rete LAN (Local Area Network), in modo da

processare le informazioni in modalità online o offline.

I tag RFID e I reader RFID usati negli esperimenti SocioPatterns, e negli

esperimenti condotti nella tesi, sono stati creati ed ottenuti dal progetto OpenBeacon

(http://www.openbeacon.org/). In figura 1.1 viene mostrata l'immagine di un tag RFID.

Page 12: Validation and analysis of mobility models

12

Fig.1.1: Viene mostrato come si presenta un tag RFID.

1.2 Tracce di mobilità

Studiare le interazioni sociali di prossimità e gli schemi di comportamento tra

individui, analizzando tracce di mobilità reali, permette di fare luce su diversi

fenomeni studiati in varie aree di ricerca. A tal fine può risultare utile analizzare

collezioni di dati raccolte e rese disponibili dal mondo accademico, oppure, come è

stato fatto nel lavoro di tesi, condurre esperimenti dove vengono collezionate tracce

di contatti utilizzando una piattaforma RFID-based.

Nei prossimi quattro sottoparagrafi saranno illustrati rispettivamente, i data

sets forniti dalla Community Resource for Archiving Wireless Data di Dartmouth

(CRAWDAD) [43], i data sets raccolti durante gli esperimenti SocioPatterns [36], i dati

collezionati nel progetto SocialDIS [44] presso il Dipartimento di Ingegneria

informatica automatica e gestionale Antonio Ruberti della Sapienza Università di

Roma, e quelli ottenuti nel progetto MACRO [45] svoltosi presso il museo d'arte

contemporanea di Roma MACRO. Questi ultimi due data set sono stati collezionati

utilizzando i dispositivi ottenuti dal progetto OpenBeacon (http://www.openbeacon.org/),

Page 13: Validation and analysis of mobility models

13

in collaborazione con il Wireless Sensor Network group [46] del Dipartimento di

Ingegneria informatica automatica e gestionale Antonio Ruberti della Sapienza

Università di Roma.

1.2.1 CRAWDAD

La Community Resource for Archiving Wireless Data di Dartmouth (CRAWDAD) [43] è

un gruppo di ricerca, che ha costruito un repository (raggiungibile al seguente sito

http://crawdad.cs.dartmouth.edu/data.php), dove vengono fornite trace di mobilità

a chiunque lavori nell'ambito delle reti wireless o con dispositivi mobili.

Questa raccolta contiene decine di dataset, ma solo quelli che descriveremo

raccolgono tracce di contatti, utili per l'analisi della mobilità di individui.

Cambridge/Haggle

Nell'articolo [48] è stato descritto un esperimento che ha coinvolto 41 partecipanti

presso la conferenza INFOCOM 2005 a Miami. Nello studio è stato mostrato che le

distribuzioni degli intervalli di tempo durante il quali due nodi possono comunicare,

hanno un andamento di tipo power-law. Per collezionare le tracce di contatti è stata

utilizzata la tecnologia Bluetooth, di cui sono forniti i dispositivi Intel iMote.

Tali dispositivi, costituiti da un processore ARM, una radio Bluetooth e una

memoria flash, sono stati confezionati e distribuiti a volontari, che si sono impegnati

a trasportarli durante il loro spostamenti per tutta la durata della conferenza. Le

tracce dei contatti degli individui sono state collezionate eseguendo la procedura di

inquiry, ossia l'identificazione, da parte di un dispositivo, dei vicini che si trovano nel

suo raggio di copertura.

Lo stato di inquiry dura cinque secondi, dopo i quali il dispositivo entra in

modalità standby per 120 secondi, più ±12 secondi, valore scelto estraendo un

numero casuale da una distribuzione uniforme. Il numero di secondi casuali serve ad

evitare che due dispositivi possano eseguire l'inquiry simultaneamente senza riuscire a

vedersi l'uno con l'altro. Quando viene rilevato un contatto, vengono registrati gli

indirizzi MAC dei due dispositivi che hanno comunicato, il tempo in cui avviene

l'interazione e il tempo in cui la comunicazione termina.

Page 14: Validation and analysis of mobility models

14

MIT/Reality Mining

Nathan Eagle nell'articolo [49], per ottenere gli indirizzi MAC di cellulari Bluetooth

ha sviluppato l'applicazione BlueAware, un software che registra i timestamp e gli

indirizzi MAC dei dispositivi che si trovano in prossimità l'uno dell'altro, nello

specifico di 60 cellulari con sistema operativo Symbian.

L'applicazione riceve dal dispositivo Bluedar, un cellulare posizionato

nell'ambiente di studio che scansiona tutti i dispositivi visibili nel raggio di 25m, gli

indirizzi MAC, attraverso una rete 802.11b. L'esperimento Reality Mining ha

collezionato dati da 100 smartphone Nokia 6600 per nove mesi, scaricabili sia dal

repository del CRAWDAD, sia dal sito del progetto (http://reality.media.mit.edu).

1.2.2 SocioPattern

La Piattaforma RFID-based SocioPatterns ha collezionato tracce di mobilità,

disponibili sul sito web http://www.sociopatterns.org/dataset/, in diversi ambienti e

contesti. Bisogna tenere presente, che la piattaforma SocioPatterns non effettua un

tracciamento delle traiettorie e delle localizzazioni spaziali accurato, ma si focalizza

sul raccogliere accuratamente i contatti di prossimità tra individui, basandosi sulle

proprietà topologiche e temporali della mobilità dei nodi. Questa piattaforma rileva e

registra i contatti tra nodi solo attraverso lo scambio di pacchetti dati a bassa potenza,

come descritto nel paragrafo 1.2.

Infectious SocioPatterns dynamic contact networks.

All'esibizione scientifica Infectus: Stay Away presso la Science Gallery di Dublino,

Irlanda, dal 17 aprile al 17 giugno 2009, dove hanno partecipato circa 30000

visitatori, vengono mostrate opere artistiche raffiguranti i meccanismi di contagio di

un virus. In questa occasione è stato collezionato un dataset contenente le reti

dinamiche di contatti giornaliere.

Dal listato 1.1, si osserva che ciascun file è costituito da righe nella forma

“𝑡 𝑖 𝑗“, dove 𝑖 e 𝑗 sono gli ID anonimi delle persone che sono entrate in contatto, e

l'intervallo durante il quale il contatto è attivo è [ 𝑡 − 20𝑠, 𝑡 ]. Se in un dato

intervallo ci sono più contatti attivi, nel file verranno viste più righe che cominciano

con lo stesso valore di 𝑡. Il tempo è misurato in secondi ed espresso nel formato

UNIX time. Questo dataset è la controparte dinamica della rete di contatti aggregata

Page 15: Validation and analysis of mobility models

15

giornalmente, disponibile in formato GML (Graph Modelling Language) [48], un

formato di file di testo che rappresenta grafi con una sintassi veramente semplice.

Nel listato 1.2 ne viene fornito un semplice esempio, dove si definisce un grafo

costituito da tre nodi A, B e C collegati da due archi che collegano B ad A e C ad A.

Primary school.

In una scuola elementare a Lione, Francia, dal 1 al 2 Ottobre 2009, sono stati

raccolti dati sulle interazioni face-to-face tra 232 bambini e 10 insegnanti distribuiti in

10 aule. I dataset comprendono due reti pesate di contatti avvenuti tra studenti ed

insegnati, ciascuna per ognuno dei due giorni. Ciascuna rete di contatti giornaliera è

costituita da: i nodi, che sono gli individui e gli archi, che rappresentano le interazioni

face-to-face.

I nodi hanno un attributo che indica la classe di appartenenza dell'individuo,

ad esempio gli insegnanti hanno assegnato il valore "Teacher". Gli archi tra il nodo A

e il nodo B hanno due pesi associati: durata, che è il tempo totale per cui A e B

hanno avuto un contatto durante una singola giornata, misurato in secondi;

contatore, che è il numero di volte che il contatto tra A e B è avvenuto durante una

giornata scolastica.

Le reti sono scaricabili come due file GEXF (Graph Exchange XML Format,

http://gexf.net/), uno per ogni giorno di raccolta. Questo formato sarà descritto in

modo più approfondito nel capitolo 3, quando verrà illustrato un nuovo formalismo

ideato e sviluppato nel lavoro di tesi.

Hypertext 2009 dynamic contact network.

Alla ventesima edizione della ACM Conference on Hypertext and Hypermedia

(HT09) a Torino, dal 29 giugno al 1 luglio 2009, dove il team del SocioPatterns

project ha installato l'applicazione Live Social Semantics [39]. I partecipanti alla

conferenza hanno volontariamente indossato dei radio badge che monitorano i loro

contatti di prossimità. Il dataset pubblicato sul sito del progetto, che rappresenta la

rete dinamica di contatti di ~110 partecipanti, è costituito da due file:

Contact List: è una lista separata da tabulazioni che rappresenta i contatti attivi

durati intervalli di 20 secondi. Ciascuna riga del file ha la forma “𝑡 𝑖 𝑗“, dove 𝑖 e 𝑗

sono gli ID anonimi delle persone che sono entrate in contatto, e l'intervallo

Page 16: Validation and analysis of mobility models

16

durante il quale il contatto è attivo è [ 𝑡 − 20𝑠, 𝑡 ]. Se in un dato intervallo ci

sono più contatti attivi, nel file verranno viste più righe che cominciano con lo

steso valore di 𝑡. Il tempo è misurato in secondi ed espresso nel formato UNIX

time.

Contact Intervals: è un file in formato JSON (http://www.json.org/) che contiene

un dizionario, dove ciascuna chiave è l'ID di una persona e il corrispondente

valore è il dizionario dei vicini di quella persona. Il dizionario dei vicini ha una

chiave con l'ID della persona e per ogni chiave, il valore relativo è la lista di

intervalli temporali durante i quali il corrispondente contatto è attivo. Nel listato

1.3 viene mostrato un esempio.

1240913019 78577671 77922321

1240913019 78577671 96403467

1240913019 77922321 96403467

1240913039 78577671 77922321

1240913039 77922321 96403467

1240913059 78577671 77922321

1240913059 77922321 96403467

1240913079 78577671 77922321

1240913079 77922321 96403467

1240913099 96403467 77922321

1240913099 96403467 78577671

1240913099 77922321 78577671

1240913179 77922321 96403467

Listato.1.1: Viene mostrato un frammento del file contenente la lista di contatti

dinamici del 28/04/2009, collezionati durante l'esibisione Infectus: Stay Away.

graph

[

node

[

id A

]

node

[

id B

]

node

[

id C

]

edge

[

Page 17: Validation and analysis of mobility models

17

source B

target A

]

edge

[

source C

target A

]

]

Listato.1.2: Questo semplice codice mostra come definire un grafo di tre nodi e due

archi.

"1144": {

"1336": [[203800, 203820]],

"1214": [[192300, 192320], [192400, 192420], [192500, 192600],

"1215": [[207600, 207620]],

"1155": [[181620, 181640]],

"1204": [[194040, 194060]],

"1149": [[44920, 44940], [54840, 54860], [86680, 86700 [88360, 88380]],

"1228": [[100680, 100700]],

"1191": [[195320, 195340]],

"1360": [[106560, 106580], [106620, 106700], [146640, 146660]]

},

Listato.1.3: Esempio rappresentazione di grafo dinamico tramite il formato JSON.

1144 è la chiave che identifica una persona. Il valore associato alla chiave contiene la

lista degli ID dei suoi vicini. Per ogni chiave rappresentante l'ID del vicino e

associato come valore la lista degli istanti temporali in cui c'è stato il corrispettivo

contatto.

1.2.3 SocialDIS

Il primo esperimento che è stato condotto, chiamato da ora in poi SocialDIS,

si è svolto al primo piano del Dipartimento di Ingegneria informatica automatica e

gestionale Antonio Ruberti della Sapienza Università di Roma. A partire dal

17/10/2011 sono stati tracciati per quattro giorni, in modo assolutamente anonimo, i

movimenti e i contatti di prossimità tra gli studenti che si sono offerti volontari.

Hanno aderito all'esperimento circa 120 studenti, che hanno indossato un tag

RFID attivo per tutta la durata della loro permanenza nel dipartimento. Come viene

mostrato in figura 1.2, sono stati installati 20 lettori RFID al primo piano

dell'edificio, distribuendoli in tutte le aule, nella segreteria, nella sala studio, nella

Page 18: Validation and analysis of mobility models

18

presidenza e nel dispaccio (stanza dove vengono venduti cibi e bevande agli

studenti).

Fig.1.2: La figura mostra come gli RFID reader, identificati dai pallini neri, siano

posizionati nelle in tutte le stanze e nei corridoi del primo piano del primo piano del

Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti

della Sapienza Università di Roma. I pallini azzurri identificano gli studenti che si

trovano in prossimità dei lettori di tag RFID ad un determinato istante temporale.

I tag RFID indossati dagli studenti, periodicamente diffondono in broadcast

pacchetti radio a bassa frequenza contenenti informazioni riguardo, la loro posizione

e i contatti ravvicinati che hanno con uno o più individui. I dispositivi, che sono stati

fatti indossare agli individui, sono stati sviluppati dal progetto OpenBeacon

(http://www.openbeacon.org).

Quando un tag RFID rileva un contatto con un altro tag, ossia due studenti si

trovano uno di fronte all'altro ad una distanza che va da 1 a 1.5 m, invia un

messaggio ad alta potenza verso il reader più vicino. Questo pacchetto dati contiene

un time stamp, l'id del reader che lo ha ricevuto e l'id dei tag che hanno partecipato

nell'interazione. Il messaggio ricevuto dai reader viene memorizzato localmente ed

inoltrato tramite rete LAN (Local Area Network) ad un server centrale, che

colleziona e memorizza i dati, processabili successivamente offline. Alla fine

Page 19: Validation and analysis of mobility models

19

dell'esperimento è stato collezionato un dataset di 250 MB, contenente tutte le

interazioni avvenute durante l'esperimento, visualizzabili sotto forma di grafo pesato

in figura 1.3.

Fig.1.3: Vengono mostrate le interazioni sociali tra gli studenti durante l'esperimento

SocialDIS. La grandezza e il colore di un nodo indica il numero di vicini. I nodi

piccoli e verdi hanno poche relazioni con gli altri nodi, mentre quelli grandi e blu

hanno tante relazioni con gli altri nodi. Lo spessore dell'arco indica quanto

frequentemente due persone interagiscono. Un arco sottile indica poche interazioni

tra due persone, mentre un arco spesso indica che ci sono state molte interazioni tra

due persone.

Page 20: Validation and analysis of mobility models

20

Nel grafo ciascun nodo rappresenta un visitatore e ciascun arco rappresenta il

contatto avvenuto tra due individui. La grandezza ed il colore di ciascun nodo e il

peso ed il colore di ciascun arco rappresentano la rispettiva frequenza, ossia il

rapporto tra il numero di secondi in cui esso esiste e la durata totale dell'esperimento.

Un esempio di informazione che si può ottenere da tale dataset è: Il tag con

id xxxx ha incontrato il tag con id yyyy nella stanza Alpha oppure il tag con id xxxx è

vicino alla stanza Beta. In alcun modo possiamo risalire alla vera identità della

persona a cui è associato il tag con id xxxx.

Inoltre a ciascun studente è stato chiesto di fornirci le seguenti informazioni

personali in forma anonima:

Età

Sesso (maschio/femmina)

Status (corso di studi e anno accademico)

Con le trace di contatto che sono state ottenute dall'esperimento possiamo

analizzare le relazioni tra individui: analizzare gli spazi condivisi (aule, corridoi,

segreteria), analizzare le relazioni tra studenti, ad esempio individuando la formazione

di comunità o cluster.

Nel capitolo 5 si vedrà, utilizzando le metriche definite e descritte nel capitolo

3, se i modelli di mobilità (descritti nel capitolo 2) generano grafi dinamici, con

proprietà topologiche e temporali vicine a quelle possedute dal grafo dinamico

ottenuto dal dataset empirico relativo all'esperimento condotto.

Per quanto concerne il tracciamento della mobilità degli studenti, precisiamo

che, non effettuiamo un tracciamento delle traiettorie e delle localizzazioni spaziali

accurato, ma raccogliamo solamente i contatti di prossimità tra individui. Possiamo

solamente conoscere la posizione dello studente, ossia in che stanza o corridoio si

trova, in base a quale lettore RFID riceve il segnale ad alta potenza inviato dal tag.

1.2.4 MACRO

Il 20 Giugno 2012 è stato effettuato un secondo esperimento simile a SocialDIS,

presso il museo d'arte contemporanea di Roma MACRO, chiamato da ora in poi

NeonMACRO. Durante la mostra d'arte NEON, sono stati tracciati in modo

completamente anonimo i movimenti dei visitatori (ad esempio, quale opera un

Page 21: Validation and analysis of mobility models

21

visitatore sta guardando e per quanto tempo), i contatti di prossimità tra i visitatori

che hanno accettato di partecipare all'esperimento.

I circa 120 visitatori aderenti all'iniziativa, hanno indossato un tag RFID

attivo per tutta la durata della loro visita nella sala Enel del museo. Come viene

mostrato in figura 1.4, sono stati installati 8 lettori RFID nella sala espositiva,

posizionandoli vicino le opere d'arte principali. I tag RFID indossati dai visitatori,

come nell'esperimento SocialDIS, periodicamente diffondono in broadcast pacchetti

radio a bassa frequenza contenenti informazioni riguardo, la loro posizione e i

contatti ravvicinati che hanno con uno o più soggetti. Anche in questo caso, i

dispositivi sono stati ottenuti dal progetto OpenBeacon (http://www.openbeacon.org).

Fig.1.4: La figura mostra come gli RFID reader, identificati dai pallini neri, siano

posizionati le opere d'arte esibite al museo d'arte contemporanea di Roma MACRO.

Page 22: Validation and analysis of mobility models

22

Quando due visitatori si trovano uno di fronte all'altro ad una distanza che va

da 1 a 1.5 m, il rispettivo tag indossato rileva il contatto ed invia un messaggio ad alta

potenza verso il reader più vicino. Il pacchetto dati inviato, contiene un time stamp,

l'id del reader che lo ha ricevuto e l'id dei tag che hanno partecipato nell'interazione.

Il messaggio ricevuto dai reader viene, anche questa volta, memorizzato

localmente ed inoltrato tramite rete LAN (Local Area Network) ad un server

centrale, collocato in quella che viene chiamata "Area", un open space del museo

dove i visitatori possono rilassarsi, conoscere altre persone e condividere idee.

Il server colleziona e memorizza i dati, che saranno successivamente

processati ed analizzati offline. Alla termine dell'esperimento è stato raccolto un

dataset di 10 MB. In figura 1.5 possiamo visualizzare, sottoforma di grafo pesato,

tutte le interazioni tra visitatori avvenute durante l'esperimento.

Fig.1.5: Vengono mostrate le interazioni sociali tra le persone durante l'esperimento

NeonMACRO. I visitatori più sociali sono rappresentati da cerchi grandi e di colore

scuro. Lo spessore degli archi dipende dalla frequenza con cui avviene l'interazione

tra due visitatori.

Page 23: Validation and analysis of mobility models

23

Ciascun nodo rappresenta un visitatore e ciascun arco rappresenta il contatto

avvenuto tra due individui. La grandezza di ciascun nodo e il peso di ciascun arco

rappresentano la rispettiva frequenza, ossia il rapporto tra il numero di secondi in cui

esso esiste e la durata totale dell'esperimento.

Questo permette di visualizzare immediatamente nel grafo quali siano i

visitatori più socievoli e quelli meno socievoli. A ciascun visitatore è stato chiesto di

fornire le seguenti informazioni in forma anonima:

Età

Sesso (maschio/femmina)

Titolo di studio

Area professionale

Nazionalità (Italiano o non Italiano)

Gruppo (se un visitatore è entrato nella sala accompagnato da altre persone, a

ciascun membro del gruppo viene associato l'identificativo del gruppo )

La raccolta di queste ulteriori informazioni ha permesso di effettuare delle

semplici ed immediate analisi sul comportamento dei visitatori. In figura 1.6 si

possono visualizzare le interazioni tra gruppi di visitatori. In figura 1.7 si può

osservare, il grafo pesato rappresentante tutte le interazioni tra i visitatori (classificati

per età) e le opere d'arte, mentre in figura 1.8 il grafo pesato raffigura tutte le

interazioni tra i visitatori (classificati per titolo di studio) e le opere d'arte.

Nel capitolo 5 si vedrà, utilizzando le metriche definite e descritte nel capitolo

2, se i modelli di mobilità (descritti nel capitolo 2) generano grafi dinamici, con

proprietà topologiche e temporali vicine a quelle possedute dal grafo dinamico

ottenuto dal dataset empirico relativo all'esperimento condotto.

Anche in questo caso il tracciamento della mobilità dei visitatori, non

raccoglie le traiettorie e le localizzazioni spaziali in maniera accurata, ma raccoglie

solamente i contatti di prossimità tra individui. Si possono solamente conoscere la

posizione del visitatore, ossia in che posizione della sala Enel si trova (o che opera

d'arte stia guardando), in base a quale lettore RFID riceve il segnale ad alta potenza

inviato dal tag indossato.

Page 24: Validation and analysis of mobility models

24

Fig.1.6: Il grafo mostra le interazioni fra i gruppi di visitatori. Ciascun nodo

rappresenta un gruppo costituito dalle persone entrate in sala accompagnate.

Page 25: Validation and analysis of mobility models

25

Fig.1.7: Il grafo mostra le interazioni tra i visitatori e le opere d'arte. I pallini scuri e

grandi rappresentano le opere d'arte, mentre i pallini colorati più piccoli

rappresentano i visitatori, che sono stati classificati in base alla loro età, compresa tra

0-9, 10-19, 20-29, 30-39, 40-49, 50-59, 60-69, 70-79, 80 e più anni.

Page 26: Validation and analysis of mobility models

26

Fig.1.8: Il grafo mostra le interazioni tra i visitatori e le opere d'arte. I pallini scuri e

grandi rappresentano le opere d'arte, mentre i pallini colorati più piccoli

rappresentano i visitatori, che sono stati classificati in base al titolo di studio (Master,

Bachelor, High School, Ph.D., Primary School e Mid School).

Page 27: Validation and analysis of mobility models

27

Capitolo 2

Mobility Models

Nel precedente capitolo sono state descritte le tecnologie con le quali

vengono collezionati i dataset empirici, ossia dati che mostrano i comportamenti reali

dei dispositivi mobili (nel nostro caso tag RFID). In questo capitolo verrà definito

cosa sono invece i dataset sintetici (o Synthetic dataset), dati generati usando i modelli di

mobilità, ed saranno illistrativi modelli che tentano di riprodurre il comportamento

dei dispositivi mobili, senza usare tracce di mobilità reali.

I Synthetic data sono secondo il McGraw-Hill Dictionary of Scientific and

Technical Terms [12] "qualunque raccolta di dati applicabile a una data situazione,

che non sia ottenibile tramite una misurazione diretta". Catturare i movimenti di

individui (o nodi mobili) permette di osservare gli schemi di comportamento presenti

in sistemi di vita reale. Il processo di tracciamento però, è un'operazione difficile da

fare quando viene coinvolto un gran numero di persone e l'osservazione viene

eseguita per lunghi periodi di tempo.

I protocolli e le applicazioni per le reti mobili non sono facilmente modellabili e le

loro performance non sono facilmente valutabili se non si conoscono i movimenti

degli individui, che verranno chiamati da ora user trace. Se si vogliono produrre delle

user trace senza ricorrere a complesse infrastrutture per collezionare i dati (ad esempio

la piattaforma SocioPatters illustrata nel capitolo 1), è necessario utilizzare i synthetic

models. I Synthetic models rappresentano realisticamente il comportamento di nodi

mobili senza aver bisogno di catturare user trace dal mondo reale.

Tracy Camp nell'articolo [13] presenta diversi modelli di mobilità, che sono stati

utilizzati per valutare le performance di protocolli per reti ad hoc. L'autore enfatizza

il bisogno di sviluppare modelli di mobilità accurati per rappresentare realisticamente

i movimenti di utenti mobili, esplorando le limitazioni delle strategie adottate dai

modelli attualmente utilizzati. Egli classifica i modelli di mobilità in due tipi: individual

mobility models e group mobility models.

Page 28: Validation and analysis of mobility models

28

Gli Individual mobility models o memoryless models [14],[15] descrivono nodi le cui

azioni sono indipendenti l'uno dall'altro. Questi semplici modelli sono i più usati per

valutare reti mobili wireless, in cui ogni dispositivo è indipendente dagli altri e quindi

non esistono correlazioni nei comportamenti.

I group mobility models [16],[17],[18] sono invece più complessi e meno utilizzati,

e rappresentano il comportamento di nodi dipendenti l'uno dall'altro. Nei prossimi

paragrafi saranno decritti i seguenti Individual mobility models, i più famosi ed utilizzati

nel simulare il comportamento delle reti mobili ad hoc:

1. Random Walk Mobility Model: modello in cui i nodi mobili seguono direzioni

casuali con velocità scelte in modo casuale.

2. Random Waypoint Mobility Model: modello che tiene conto di un tempo di

pausa, prima che il nodo cambi direzione e velocità.

3. Random Direction Mobility Model: modello in cui i nodi mobili devono arrivare

alla fine dell'area di simulazione prima di poter cambiare la direzione e la

velocità.

4. Truncated Lévy Walk Mobility Model: modello dove le human walks del caso reale

sono approssimate con quelle che vengono chiamate, Lévy walks.

5. Boudless Simulation Area Mobility Model: modello che trasforma l'area di

simulazione da rettangolare 2D a forma toroidale.

6. Gauss-Markov Mobility Model: modello in cui gli schemi di mobilità possono

essere resi più o meno casuali regolando un parametro.

7. Versione probabilistica del Random Walk Mobility Model: modello che utilizza un

insieme di probabilità per determinare la prossima posizione di un nodo

mobile.

8. Weighted Waypoint Mobility Model: modello in cui i nodi mobili scelgono la

propria destinazione secondo una certa probabilità, che dipende dalla

posizione corrente, dal tempo e dalla "popolarità" della zona da raggiungere.

Illustreremo anche i seguenti group mobility models:

1. Exponential Correlated Random Mobility Model: modello dove i movimenti

seguono una funzione di movimento.

2. Column Mobility Model: modello dove un insieme di nodi forma una linea che si

muove uniformemente lungo una specifica direzione.

Page 29: Validation and analysis of mobility models

29

3. Nomadic Community Mobility Model: modello dove un insieme di nodi si muove

da un luogo ad un altro, mantenendo una certa libertà di movimento

all'interno del gruppo.

4. Pursue Mobility Model: modello dove un insieme di nodi insegue un

determinato nodo.

5. Reference Point Group Mobility Model: modello dove i movimenti delle comunità

sono basati sul percorso che attraversa un centro logico.

2.1 Individual mobility models

Verrano descritti ora i modelli di mobilità in cui ciascun nodo ha un comportamento

indipendente rispetto a quello degli altri nodi.

2.1.1 Random Walk (RW)

Il Random Walk Mobility Model è stato ideato ed illustrato per la prima volta da

Einstein nel 1926 [50]. Il modello si basa sul moto browniano, ossia sul movimento

disordinato e casuale delle particelle (aventi diametro dell'ordine del micrometro)

presenti in fluidi o sospensioni fluide. In questo modello di mobilità, viene

inizialmente definita un'area rettangolare di dimensione 𝑋𝑚𝑎𝑥 × 𝑌𝑚𝑎𝑥 ed il numero

totale di nodi 𝑁.

Ciascun nodo si muove dalla sua posizione corrente alla sua posizione

successiva scegliendo casualmente una direzione e una velocità con cui viaggiare. Il

valore della velocità viene scelto da una distribuzione e può essere compreso tra un

valore minimo e un valore massimo 𝑠𝑝𝑒𝑒𝑑𝑚𝑖𝑛, 𝑠𝑝𝑒𝑒𝑑𝑚𝑎𝑥 . Anche la direzione

viene scelta casualmente da una distribuzione uniforme con valori compresi tra

0, 2𝜋 .

Ogni passo di simulazione termina dopo un tempo prestabilito t o dopo una

certa distanza d, alla fine delle quali ciascun nodo sceglie una nuova direzione e

velocità. Del Random Walk Mobility Model sono state derivate altre versioni, chiamate

d-D walks, dove d rappresenta il numero di dimensioni dell'area di simulazione.

Quello che abbiamo descritto è la versione 2-D. Questo modello è memoryless perché

non tiene traccia della posizione e della velocità passata dei nodi mobili. La velocità e

la direzione correnti di un nodo mobile, sono indipendenti da quelle passate. In

Page 30: Validation and analysis of mobility models

30

figura 2.1 (ottenuta dal sito http://paginas.fe.up.pt/~ee03058/stat_art.html) osserviamo

che questa caratteristica può generare movimenti umani irrealistici.

Fig.2.1: Esempio di come si muove un nodo mobile usando il Random Walk

Mobility Model versione 2-D.

Se il tempo 𝑡 o la distanza 𝑑, che definiscono quanto dura un passo della

simulazione, sono troppo corti, i nodi si muovono solo in una piccola parte dell'area

di simulazione, generando uno schema di movimento adatto all'analisi di reti semi

statiche. Pertanto se si vogliono invece analizzare reti dinamiche, dobbiamo scegliere

grandi valori per 𝑡 e 𝑑.

2.1.2 Random Waypoint (RWP)

Uno dei modelli di mobilità più popolari ed utilizzati è il Random Waypoint model

(RWP). Questo modello di mobilità è un semplice modello stocastico che descrive

come si muovono i nodi in una rete mobile in una data area. In questo modello di

mobilità viene definita un'area rettangolare di dimensione 𝑋𝑚𝑎𝑥 × 𝑌𝑚𝑎𝑥 e stabilito il

numero totale di nodi 𝑁. Ciascun nodo viene casualmente posizionato nell'area in un

punto (𝑥, 𝑦), dove 𝑥 e 𝑦 sono entrambi uniformemente distribuiti rispettivamente su

0, 𝑋𝑚𝑎𝑥 e 0, 𝑌𝑚𝑎𝑥 . A ciascun nodo vengono assegnati un punto di arrivo o

destinazione (𝑥0, 𝑦0), casualmente scelto tra i punti dell'area, e una velocità v, che è

Page 31: Validation and analysis of mobility models

31

casualmente scelta da una distribuzione uniforme in un intervallo compreso tra

𝑚𝑖𝑛𝑠𝑝𝑒𝑒𝑑, 𝑚𝑎𝑥𝑠𝑝𝑒𝑒𝑑 . Un nodo inizia a muoversi verso la destinazione con

velocità v. Arrivato al punto di arrivo (𝑥0, 𝑦0), il nodo rimane li per un tempo p,

chiamato waiting time, che è casualmente scelto da una distribuzione uniforme.

Terminato il waiting time, vengono scelte una nuova destinazione e una nuova velocità

nello stesso modo e il processo si ripete fino a che non termina la simulazione.

In figura 2.2 (ottenuta dal sito http://www.emeraldinsight.com) come il

comportamento di un nodo in un area di simulazione che misura 1000 x 1000 m.

Fig.2.2: Esempio di come si muove un nodo mobile usando il Random Waypoint

Mobility Model in un'area 1000 x 1000 m.

Se al modello si assegna a ciascun nodo un waiting time pari a zero e

𝑚𝑖𝑛𝑠𝑝𝑒𝑒𝑑, 𝑚𝑎𝑥𝑠𝑝𝑒𝑒𝑑 = 𝑠𝑝𝑒𝑒𝑑𝑚𝑖𝑛, 𝑠𝑝𝑒𝑒𝑑𝑚𝑎𝑥 , il Random Waypoint

Mobility Model diventa simile al Random Walk Mobility Model. Il modello presenta

il seguente problema [13]: ciascun nodo mobile viene posizionato in modo casuale

nell'area di simulazione, non rappresentando in modo realistico il modo in cui i nodi

si distribuiscono quando si muovono. In [13] viene mostrato che nel modello si

attenua il problema della posizione iniziale dopo circa 600 secondi di simulazione e

che esistono tre possibili soluzioni per evitare l'inaccuratezza del modello, dovuta alla

posizione iniziale dei nodi.

La prima soluzione è salvare le posizioni dei nodi al termine di una

simulazione durata più di 600 secondi ed utilizzarle come posizioni iniziali nelle

Page 32: Validation and analysis of mobility models

32

simulazioni successive. La seconda è scegliere la posizione iniziale secondo una

distribuzione di probabilità che rappresenta meglio la realtà che vogliamo simulare.

La terza consiste nello scartare i primi 1000 secondi di simulazione. La terza

soluzione è migliore della prima, perché garantisce che ciascuna simulazione abbia un

inizializzazione esente dal problema appena trattato.

Nel Random Waypoint Mobility Model esiste una correlazione tra la velocità

e il tempo di pausa di un nodo. Ad esempio, se nella simulazione i nodi percorrono

l'area a velocità elevate ed hanno dei tempi di pausa lunghi, vengono prodotte reti più

stabili rispetto al caso in cui, i nodi si muovono lentamente e aspettano poco tempo.

La distribuzione spaziale dei nodi incide sul numero di vicini che essi

possono avere, perché i nodi che sono vicini al bordo dell'area di simulazione, hanno

maggiore probabilità di scegliere una destinazione che si trovi verso il centro

dell'area, dove la probabilità di incontrare nodi cresce, mentre quando si trovano sul

bordo dell'area la probabilità di incontrare nodi decresce. Queste variazioni di densità

(chiamate density wave) del numero medio di vicini in base alla zona, vengono risolte

nel modello descritto nel prossimo paragrafo.

2.1.3 Random Direction (RD)

Il Random Direction Mobility Model (RD)descritto in [52], è stato ideato per evitare le

variazioni del numero medio di vicini che si hanno in base alla zona dell'area di

simulazione raggiunta da un nodo mobile, che avvengono nel modello RWP. I

quest'ultimo modello è stato visto che la probabilità con cui un nodo sceglie una

nuova destinazione localizzata nel centro dell'area di simulazione, o che richiede

l'attraversamento di essa, è alta. Pertanto il modello RD cerca di evitare il più

possibile di diminuire questa probabilità, facendo in modo che i nodi si trovino con

maggiore probabilità vicino i bordi dell'area di simulazione.

Come visto modello precedentemente illustrato, anche ora viene definita

un'area rettangolare di dimensione 𝑋𝑚𝑎𝑥 × 𝑌𝑚𝑎𝑥 ed il numero totale di nodi 𝑁.

Ciascun nodo viene casualmente posizionato nell'area in un punto (𝑥, 𝑦), dove 𝑥 e 𝑦

sono entrambi uniformemente distribuiti rispettivamente su 0, 𝑋𝑚𝑎𝑥 e 0, 𝑌𝑚𝑎𝑥 .

A ciascun nodo viene assegnata una velocità v, casualmente scelta da una

distribuzione uniforme in un intervallo compreso tra 𝑚𝑖𝑛𝑣, 𝑚𝑎𝑥𝑣 e un angolo di

direzione, scelto casualmente da una distribuzione uniforme con valori compresi tra

Page 33: Validation and analysis of mobility models

33

0, 2𝜋 , come avviene nel modello RW. Ciascun nodo dopo aver scelto la direzione,

la segue fino ad arrivare al bordo dell'area di simulazione con velocità 𝑣.

Quando un nodo raggiunge il bordo si ferma per un tempo chiamato waiting

time, casualmente scelto da una distribuzione uniforme. Terminato il waiting time,

vengono scelte una nuova destinazione e una nuova velocità nello stesso modo e il

processo si ripete fino a che non termina la simulazione.

Dato che i nodi restano per molto tempo sui bordi dell'area di simulazione, la

distanza media tra i nodi risulta maggiore rispetto agli altri modelli, per questo

motivo un pacchetto dati o un informazione, raggiunge un nodo attraversando un

numero medio di hop maggiore rispetto agli altri modelli. Dunque la rete ottenuta

dalla simulazione risulta partizionata.

Per diminuire tale problema, è stata ideata una versione modificata del

modello RD, descritta in [51], in cui i nodi mobili continuano a scegliere casualmente

una direzione, ma non devono raggiungere necessariamente il bordo dell'area di

simulazione affinchè si fermino ed aspettino il waiting time, per poi ripartire per una

nuova direzione. Questa modifica rende il modello RD identico al modello RW con il

waiting time.

2.1.4 Truncated Lèvi Walk (TLW)

Gli schemi di mobilità degli esseri umani vengono tipicamente approssimati

con il modello RW (descritto nel paragrafo 2.1.1) o RWP (illustrato nel paragrafo

2.1.2). Attraverso delle misurazioni fatte in natura si è osservato che le traiettorie

seguite dagli animali sono approssimabili a un Lévy flight [19], definito da Schlesinger

[60], come il più lungo viaggio che una particella segue in linea retta, da un luogo ad

un altro, senza cambiare direzione o tempo di pausa.

Queste osservazioni sono state poi generalizzate al caso umano nello studio

descritto in [20], dove, catturando tramite tecnologia GPS le user trace di 44

volontari distribuiti in diversi ambienti outdoor (campus universitari, metropolitane,

parchi), si è riscontrato che le human walks hanno delle forti correlazioni statistiche

con le Lévy walks. Gli autori enfatizzato il fatto che le somiglianze possono essere

solo di tipo statistico, perché gli umani si muovono in base all'attività che devono

svolgere o alle loro preferenze, dunque non possono spostarsi in modo casuale.

Page 34: Validation and analysis of mobility models

34

In figura 2.5 si nota che, le Lévy walks [20] sono un insieme di tanti flight corti

e rari flight lunghi e che le tracce di mobilità risultano essere più realistiche di quelle

ottenute dai modelli di mobilità RW e RWP.

Nello studio è stato scoperto che, le flight distribution e le waiting time distribution

dei partecipanti all'esperimento, sono truncated power-law distribution, e che la Inter contac

time (ITC) distribution delle human walk mostra un comportamento di tipo power-law

[22].

Fig.2.5: Esempio di user trace ottenuta da (a) Levy walks, (b) RWP e (c) RW.

Usando tali risultati, Hong in [21] ha sviluppato il Truncated Levy Walk model (TLW),

ossia una variante del modello RWP (illustrato nel paragrafo 2.1.2), con le seguenti

caratteristiche:

Le lunghezze dei flight seguono una truncated power law con esponente 𝛼:

𝑝 𝑙 ~ 𝑙 − 1+𝛼 , 𝑙 < 𝑙𝑚𝑎𝑥 ;

i waiting times seguono una truncated power law con esponente 𝛽:

𝜓 𝑡 ~𝑡− 1+𝛽 , 0 < 𝑡 < 𝑡𝑚𝑎𝑥 ;

l'angolo di direzione segue una distribuzione uniforme compresa tra 0,2𝜋 ;

la velocità cresce in modo proporzionale rispetto lunghezza del flight;

2.1.5 Boundless Simulation Area (BD)

Il Boundless Simulation Area Mobility Model, non è memoryless, ossia esiste una

relazione tra la direzione e la velocità di un nodo nel tempo passato e la direzione e

velocità del nodo correnti [55]. Definita un area'rettangolare di dimensione 𝑋𝑚𝑎𝑥 ×

𝑌𝑚𝑎𝑥 ed il numero totale di nodi 𝑁, la velocità di un nodo mobile è descritta da un

vettore 𝑣 = 𝑣, 𝜃 , dove v è la velocità e 𝜃 è la direzione. Ciascun nodo viene

Page 35: Validation and analysis of mobility models

35

casualmente posizionato nell'area in un punto (𝑥, 𝑦). Ad ogni passo della

simulazione, di durata ∆𝑡, la velocità e la posizione di ogni nodo viene aggiornata

secondo le seguenti equazioni:

𝑣 𝑡 + ∆𝑡 = 𝑚𝑖𝑛 𝑚𝑎𝑥 𝑣 𝑡 + ∆𝑣, 0 , 𝑉𝑚𝑎𝑥

𝜃 𝑡 + ∆𝑡 = 𝜃 𝑡 + ∆𝜃

𝑥 𝑡 + ∆𝑡 = 𝑥 𝑡 + 𝑣 𝑡 ∗ 𝑐𝑜𝑠𝜃 𝑡

𝑦 𝑡 + ∆𝑡 = 𝑦 𝑡 + 𝑣 𝑡 ∗ 𝑠𝑖𝑛𝜃 𝑡

dove 𝑉𝑚𝑎𝑥 è la massima velocità definita nella simulazione, ∆𝑣 è la variazione di

velocità che è uniformemente distribuita tra −𝐴𝑚𝑎𝑥 ∗ ∆𝑡, 𝐴𝑚𝑎𝑥 ∗ ∆𝑡 , 𝐴𝑚𝑎𝑥 è la

massima accelerazione che può raggiungere un nodo, ∆𝜃 è la variazione di direzione

che è uniformemente distribuita tra −𝛼 ∗ ∆𝑡, 𝛼 ∗ ∆𝑡 , e 𝛼 è la massima variazione di

angolo nella direzione percorsa dal nodo. Dalla figura 2.3 (ottenuta dal sito web

http://www-public.it-sudparis.eu/~gauthier/MobilityModel/mobilitymodel.html) si osserva che

a differenza dei modelli illustrati nei paragrafi precedenti, i nodi possono continuare il

loro percorso superando i confini dell'area di simulazione, riapparendo nel lato

opposto dell'area di simulazione.

Page 36: Validation and analysis of mobility models

36

Fig.2.3: Esempio di come si muove un nodo mobile, che parte dal punto

(≅390,≅290), usando il Boundless Simulation Area Mobility Model in un area di

1000 x 300 m.

In figura 2.4 si vede che questa tecnica crea un area di simulazione toroidale, dove i

nodi possono viaggiare senza confini.

Fig.2.4: La figura mostra che nel Boundless Simulation Area Mobility Model l'area di

simulazione di forma rettangolare, viene trasformata in una forma toroidale.

2.1.6 Gauss-Markov (GM)

Il Gauss-Markov Mobility Model è stato implementato in [56]. A ciascun nodo,

che si muove in un'area rettangolare di dimensione 𝑋𝑚𝑎𝑥 × 𝑌𝑚𝑎𝑥 , viene assegnata

una velocità e una direzione iniziale, che viene aggiornata ad ogni intervallo di tempo

fisso 𝑛. Il valore aggiornato nell'n-esima istanza è calcolato in base al valore della n-1

esima istanza, e al valore di una variabile casuale, usando le seguenti equazioni:

𝑠𝑛 = 𝛼𝑠𝑛−1 + 1 − 𝛼 𝑠 + 1 − 𝛼2 𝑠𝑥𝑛−1

𝑑𝑛 = 𝛼𝑑𝑛−1 + 1 − 𝛼 𝑑 + 1 − 𝛼2 𝑑𝑥𝑛−1

dove 𝑠𝑛e 𝑑𝑛sono, rispettivamente la nuova velocità e la nuova direzione dei nodi

nell'intervallo temporale 𝑛; 𝛼, compresa tra −1, 1 , è usata come parametro per

regolare la casualità; 𝑠 e 𝑑 sono costanti che rappresentano il valore medio di velocità

Page 37: Validation and analysis of mobility models

37

e direzione con 𝑛 → ∞; 𝑠𝑥𝑛−1 e 𝑑𝑥𝑛−1

sono variabili aleatorie prese da una

distribuzione Gaussiana.

Impostando 𝛼 = 0 otteniamo valori totalmente casuali, mentre con 𝛼 = 1

otteniamo un moto lineare. Assegnando valori intermedi ad 𝛼, si ottengono diversi

livelli di casualità. Ad ogni passo della simulazione la posizione successiva di un nodo

viene calcolata in base alla posizione, velocità e direzione corrente, seguendo le

seguenti equazioni:

𝑥𝑛 = 𝑥𝑛−1 + 𝑠𝑛−1 ∗ 𝑐𝑜𝑠𝑑𝑛−1

𝑦𝑛 = 𝑦𝑛−1 + 𝑠𝑛−1 ∗ 𝑠𝑖𝑛𝑑𝑛−1

Dove 𝑥𝑛 , 𝑦𝑛 𝑒 𝑥𝑛−1, 𝑦𝑛−1 sono rispettivamente le coordinate x e y dei nodi

mobili all'n-esimo e all'n-1 esimo intervallo temporale.

In figura 2.5 (dal sito ottenuta dal sito web http://tinyurl.com/8oed5jz) viene

mostrato il comportamento di un nodo in un area di simulazione che misura 700 x

1000 m.

Fig.2.5: Esempio di come si muove un nodo mobile, che parte dal punto

(≅500,≅500), usando il Gauss-Markov Mobility Model in un area di 700 x 1000 m.

Page 38: Validation and analysis of mobility models

38

2.1.7 Probabilistic Random Walk (PRW)

Nella tesi di dottorato di Chiang [57] è stato creato un modello di mobilità, chiamato

Probabilistic Random Walk Mobility Model, che, utilizzando una matrice di probabilità,

determina la posizione di uno specifico nodo mobile, in un'area 𝑋𝑚𝑎𝑥 × 𝑌𝑚𝑎𝑥 , in

base a tre possibili stati: lo stato 0 rappresenta la posizione corrente, lo stato 1

rappresenta la posizione passata e lo stato 2 rappresenta la posizione futura se il nodo

mobile continua a muoversi nella stessa direzione.

La matrice di probabilità usata e la seguente:

𝑃 =

𝑃(0,0) 𝑃(0,1) 𝑃(0,2)𝑃(1,0) 𝑃(1,1) 𝑃(1,2)𝑃(2,0) 𝑃(2,1) 𝑃(2,2)

Dove ciascun valore 𝑃(𝑎, 𝑏) rappresenta la probabilità che un nodo mobile passi

dallo stato 𝑎 allo stato 𝑏. Le coordinate x e y di ciascun nodo vengono aggiornate in

base ai valori della matrice. Ogni nodo si muove casualmente con una velocità media

predefinita. Nella seguente matrice ci sono i valori che Chiang ha usato per calcolare

le variazioni nelle coordinate x e y dei nodi:

𝑃 = 0 0.5 0.5

0.3 0.7 00.3 0 0.7

In figura 2.6 possiamo vedere la matrice illustrata sotto forma di diagramma di flusso.

Per come è configurata la matrice di probabilità, un nodo mobile può andare diretto

verso: nord, sud, est o ovest, senza mai prendersi una pausa (wait time = 0). La

probabilità che il nodo continui a seguire la stessa direzione è più alta della

probabilità che esso la cambi. Inoltre i valori definiti non permettono movimenti tra

la precedente e la prossima posizione senza passare per quella corrente.

Page 39: Validation and analysis of mobility models

39

Fig.2.6: Diagramma di flusso della versione probabilistica del Random Walk Mobility

Model.

Questa implementazione del modello produce dei comportamenti di mobilità più

realistici del modello RW. Ad esempio una persona che deve eseguire vari compiti

giornalieri, tende a muoversi seguendo una direzione semi costante.

Raramente gira improvvisamente intorno a dove era, tornando sui suoi passi,

e quasi mai si muove casualmente sperando eventualmente di finire in uno dei posti

che gli interessano. In figura 2.7 (ottenuta dal sito ottenuta dal sito web http://www-

public.it-sudparis.eu/~gauthier/MobilityModel/mobilitymodel.html) viene illustrato un

esempio di schema di mobilità di un nodo mobile usando la versione probabilistica

del modello RW. Da questa figura si osserva che la user trace ha dei cambiamenti di

direzione molto meno variabili di quelli visti per il modello RW in figura 2.1, dunque

approssima meglio gli schemi di mobilità degli esseri umani.

Page 40: Validation and analysis of mobility models

40

Fig.2.7: Esempio di come si muove un nodo mobile, che parte dal punto

(≅500,≅500), usando il Probabilistic Random Walk Mobility Model in un area di 500

x 560 m.

2.1.8 Weighted Waypoint (WW)

Il Weighted Waypoint Mobility Model (WW) [64] è una versione del modello RWP, in cui

le persone non decidono una destinazione in modo casuale, ma la scelgono in base

ad una certa probabilità, che dipende da quanto gli individui tendono a visitarla. Tutti

i modelli che sono stati illustrati nei paragrafi precedenti non considerano che

all'interno dell'area di simulazione alcune zone sono visitate più spesso rispetto ad

altre.

In [64] è stato dimostrato che se ne viene tenuto conto, ossia si considera

l'esistenza di zone in cui gli individui interagiscono tra di loro per un periodo

prolungato, si possono ottenere delle user trace più accurate rispetto al modello RWP.

I modelli WW ed RWP si differenziano per :

1. Le persone non scelgono casualmente la destinazione: a ciascuna zona

dell'area di simulazione viene assegnato un peso, definito in base alla

probabilità di scegliere quel luogo come destinazione. Tale probabilità può

Page 41: Validation and analysis of mobility models

41

essere calcolata valutando quanto le zone siano "popolari" nell'ambiente che

stiamo tentando di simulare.

2. La probabilità di scegliere una specifica zona come prossima destinazione,

dipende dalla posizione corrente e dal tempo: viene usato un modello

Markoviano per assegnare tali probabilità.

3. Il waiting time in ciascuna zona, è diverso e dipende dalle proprietà specifiche

del luogo.

2.2 Group mobility models

Verranno descritti ora i modelli di mobilità in cui i nodi hanno un comportamento

che dipende da quello degli altri nodi. Tali modelli risultano essere utili per tracciare

user trace che simulano realtà in cui i nodi si muovono in comunità.

2.2.1 Exponential Correlated Random

Questo modello di mobilità proposto in [58] data la posizione di un nodo (o un

gruppo) al tempo 𝑡, tramite funzione di movimento 𝑏 𝑡 , viene determinata la

posizione successiva del nodo (o gruppo) al tempo 𝑡 + 1, con la seguente funzione:

𝑏 𝑡 + 1 = 𝑏(𝑡)𝑒−

1𝜏 + 𝜎 1 − (𝑒−

1𝜏)2𝑟

dove r è una variabile casuale che segue una distribuzione Gaussiana che ha varianza

𝜎, e 𝜏 regola la velocità di cambiamento del nodo dalla posizione precedente a quella

successiva (ad una valore minore di 𝜏 corrisponde un cambiamento più rapido). Il

problema principale di questo particolare modello è la difficoltà di assegnare il valore

più corretto ai parametri in modo da ottenere lo schema di mobilità che vogliamo.

2.2.2 Column

Il Column Mobility Model (http://www.disca.upv.es/misan/mobmodel.htm) è un modello che

rappresenta un insieme di nodi mobili che si muovono lungo una data linea (o

colonna). Inizialmente viene definita una reference grid, ossia una colonna iniziale di

nodi, dove ciascun nodo viene messo in relazione con un punto di riferimento. I

nodi si possono muovere attorno al loro punto di riferimento seguendo le regole

dettate da un particolare Individual mobility models (ad esempio viene consigliato di

Page 42: Validation and analysis of mobility models

42

usare il modello RW, descritto nel paragrafo 2.1.1). Il nuovo reference point per un

determinato nodo viene definito come:

𝑛𝑒𝑤𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑐 𝑒𝑝𝑜𝑖𝑛𝑡= 𝑜𝑙𝑑𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑐 𝑒𝑝𝑜𝑖𝑛𝑡

+ 𝑎𝑑𝑣𝑎𝑛𝑐𝑒𝑣𝑒𝑐𝑡𝑜𝑟

dove 𝑜𝑙𝑑𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑐 𝑒𝑝𝑜𝑖𝑛𝑡 è il punto di riferimento precedente e 𝑎𝑑𝑣𝑎𝑛𝑐𝑒𝑣𝑒𝑐𝑡𝑜𝑟 un

offset angolare scelto in modo casuale che sposta la griglia di riferimento. Quando la

griglia viene ruotata con un angolo casuale (compreso tra 0 e 𝜋) e spostata ad una

distanza casuale, i nodi mobili, che si muovono seguendo il loro punto di riferimento,

seguono la griglia e continuano la loro rotazione attorno al punto.

2.2.3 Nomadic Community

Il Nomadic Community Mobility Model (http://www.disca.upv.es/misan/mobmodel.htm) è un

modello che rappresenta comunità di nodi che si muovono collettivamente da un

punto ad un altro [59]. Ogni comunità o gruppo di nodi, che ha associato un punto

di riferimento in comune, si muove attorno al proprio reference point ma, all'interno di

ogni gruppo, ciascun nodo mantiene una propria "area personale", dove si muove in

modo casuale. Questo modello può essere usato ad esempio per simulare scenari

dove una classe di studenti visitano un museo d'arte. Gli alunni della classe si

sposteranno da un punto ad un altro insieme, mentre nel punto in cui si trovano si

possono muovere individualmente come vogliono (ad esempio secondo un Individual

mobility models). Rispetto al modello Column, i nodi all'interno del gruppo sono meno

vincolati nella possibilità di movimento.

2.2.4 Pursue

Nel Pursue Mobility Model definito in (http://www.disca.upv.es/misan/mobmodel.htm) e in

[59], uno dei nodi della rete viene selezionato come nodo target. Il nodo prescelto,

che si muove secondo uno degli Individual mobility models, viene seguito dagli altri nodi

mobili, eseguendo dei movimenti in direzione di esso, determinati da un

randomvector , ossia un offset ottenuto seguendo uno degli Individual mobility models

(ad esempio il modello RW, descritto nel paragrafo 2.1.1). La nuova posizione di

ciascun nodo viene calcolata utilizzando la seguente equazione:

newposition = oldposition + acceleration target − oldposition + randomvector

Page 43: Validation and analysis of mobility models

43

dove acceleration target − oldposition è l'informazione relativa al nodo che viene

inseguito e randomvector rappresenta l'offset applicato ad ogni nodo.

Dunque, per calcolare la prossima posizione di ogni nodo, questo modello utilizza la

posizione corrente del nodo, un vettore casuale e il valore dell'accelerazione relativa

al nodo inseguito.

2.2.5 Reference Point Group (RPG)

Il Reference Point Group Mobility Model (RPG) definito in [58] rappresenta il

movimento casuale di un gruppo di nodi mobili. Gli spostamenti del gruppo si

basano sul percorso seguito da quello che è definito il centro logico del gruppo. Il

centro logico del gruppo viene utilizzato per calcolare i movimenti del gruppo

attraverso un group motion vector, 𝐺 𝑀, che può essere predefinito o scelto in modo

casuale.

Ogni nodo si muove casualmente seguendo il proprio reference point pre-

definito, il cui spostamenti dipendono dal movimento del gruppo. Quando di un

nodo viene calcolato un nuovo reference point al tempo 𝑡 + 1, 𝑅𝑃(𝑡 + 1), questo

viene combinato con un random vector, 𝑅 𝑀, per rappresentare lo spostamento

casuale di ogni nodo rispetto al relativo reference point.

Dunque, il vettore 𝑅 𝑀 viene usato per calcolare il nuovo reference point di

ogni nodo al tempo t+1. Successivamente la nuova posizione di ogni nodo viene

stabilita sommando il random motion vector, 𝑅 𝑀, al nuovo reference point.

Page 44: Validation and analysis of mobility models

44

Capitolo 3

Grafi dinamici

Nel presente lavoro sono state generate reti dinamiche di contatti (che

saranno chiamate da ora in poi Dynamic Contact Network o Contact Graph), ricavate sia

da tracce di contatti basate su quello che è avvenuto negli esperimenti SocialDIS e

MACRO, sia da tracce di contatti ottenute a partire dai modelli di mobilità. Nei

seguenti paragrafi verrà descritto: come si definisce un Contact Graph a partire dai casi

reali e dai casi simulati usando modelli di mobilità; gli indicatori statistici definiti ed

implementati per poter analizzare e confrontare le Dynamic Contact Network; le

limitazioni del formato attualmente più utilizzato per la scrittura di grafi dinamici su

file e il nuovo formato che è stato ideato per superarle.

3.1 Definizione del grafo dinamico dei contatti

L'evoluzione dinamica di una rete, può essere modellata introducendo la dimensione

temporale 𝑡, che mostra come la topologia della rete varia nel tempo. Nelle

opportunistic networks, un Contact Graph 𝐺(𝑉, 𝐸) è tipicamente usato per descrivere

una rete dinamica di contatti [8]. In un Contact Graph: 𝑉 è l'insieme di nodi ed 𝐸 è

l'insieme degli archi, dove ciascun arco è rappresentato da, una coppia di nodi, dal

tempo in cui il contatto è iniziato e dalla durata del contatto.

Basandosi su questa definizione fornita da Ferreira [8], viene ridefinito il

Contact Graph come una rete 𝐺(𝑉, 𝐸), in cui ciascun nodo 𝑣 ∈ 𝑉, rappresenta una

persona e ciascun arco 𝑒 ∈ 𝐸, rappresenta un contatto face-to-face avvenuto tra due

individui. Sia 𝑇 = 𝑡0, 𝑡1,… , 𝑡𝑛 l'insieme di tutti gli istanti temporali in cui il grafo

varia nel tempo.

Ad ogni nodo e ogni arco viene associato un Presence Schedule, un insieme

contenente gli istanti di tempo 𝑡 ∈ 𝑇, in cui il nodo (o arco) è presente. Il Presence

Page 45: Validation and analysis of mobility models

45

Schedule di un nodo 𝑣 può essere rappresentato come 𝑃(𝑣), e il Presence Schedule di un

arco 𝑒 può essere rappresentato come 𝑃(𝑒).

A partire da un caso reale (ad esempio gli esperimenti SocialDIS e MACRO),

si può facilmente costruire il Contact Graph dalla traccia di contatti collezionata (come

viene descritto nei paragrafi 1.2.3 e 1.2.4), generando un nodo ogni volta che un tag

RFID viene rilevato per la prima volta da un reader RFID, assegnandogli ciascuna

volta il tempo in cui è stato rilevato (in formato UNIX time) e generando un arco

ogni volta che due individui si trovano uno di fronte all'altro ad una distanza

ravvicinata.

Quando questo accade, viene aggiornato il 𝑃(𝑣) di ciascun 𝑣 ∈ 𝑉 che ha

partecipato nell'interazione e il 𝑃 𝑒 dell'arco 𝑒 ∈ 𝐸 che li connette. Infatti, il tag

RFID indossato dagli individui, quando rileva la comunicazione, invia un messaggio

ad alta potenza verso il reader RFID più vicino. Tale mesaggio contiene il tempo in

cui il contatto è avvenuto (in formato UNIX time) e l'id dei tag che hanno

comunicato. Il peso di ciascun arco del Dynamic Contact Graph ottenuto, è pari alla

frequenza con cui il contatto avviene, ossia il rapporto tra 𝑃 𝑒 e 𝑇 .

A partire dai modelli di mobilità, se si vogliono rilevare i contatti di

prossimità tra persone, ciascuna delle quali ha una propria posizione, direzione,

velocità e tempo di pausa, bisogna considerare che ogni individuo possa vederne un

altro, entro un raggio limitato di visibilità.

Un intersection graph [61] è un grafo formato a partire da una famiglia di insiemi

𝑆𝑖 , con 𝑖 = 0,1,2, … , 𝑛, creando un vertice 𝑣𝑖 per ogni insieme 𝑆𝑖 e connettendo due

vertici 𝑣𝑖 e 𝑣𝑗 con un arco quando i relativi insiemi hanno un'intersezione non nulla,

ovvero 𝑒 = 𝑣𝑖 , 𝑣𝑗 |𝑆𝑖 ∩ 𝑆𝑗 ≠ 0.

Come è possibile vedere in figura 3.1, uno unit disk graph [62] è un intersection

graph costituito da un vertice per ogni cerchio e da un arco ogni volta che due cerchi

s'intersecano. Ciascun cerchio, definito nel piano Euclideo, ha la stessa misura.

Utilizzando il principio su cui si basa la costruzione dello unit disk graph, viene

costruito il Contac Graph come segue: Siano A e B due individui che si muovono

secondo un modello di mobilità, sia (𝑥𝑎 ,𝑦𝑎) la posizione di A e (𝑥𝑏 ,𝑦𝑏) la posizione

di B. Siano 𝑟𝑎e 𝑟𝑏 i rispettivi raggi dei cerchi di A e B.

Definite le seguenti grandezze:

Page 46: Validation and analysis of mobility models

46

𝑥𝑑𝑖𝑓𝑓 = 𝑥𝑎 , − 𝑥𝑏 ,

𝑦𝑑𝑖𝑓𝑓 = 𝑦𝑎 , − 𝑦𝑏 ,

𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒𝑠𝑞𝑢𝑎𝑟𝑒𝑑 = 𝑥𝑑𝑖𝑓𝑓2 + 𝑦𝑑𝑖𝑓𝑓

2

le persone A e B, che si muovono secondo le regole del modello di mobilità, hanno

un contatto se 𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒𝑠𝑞𝑢𝑎𝑟𝑒𝑑 < 𝑟𝑎 + 𝑟𝑏 2.

Fig.3.1: Esempio di unit disk graph, dove tra due nodi esiste un arco che li

congiunge, se e solo se i rispettivi cerchi s'intersecano.

Se in ogni istante di simulazione applichiamo questa verifica ad ogni coppia di nodi,

ogni volta che viene rilevato un contatto, assegniamo al Presence Schedule, di ciascun

nodo e dell'arco che li congiunge, il tempo in cui la comunicazione è avvenuta,

ottenendo in questo modo un Contact Graph 𝐺(𝑉, 𝐸). Il peso di ciascun arco 𝑒 ∈ 𝐸, è

pari alla frequenza con cui il contatto avviene, ovvero il rapporto tra 𝑃 𝑒 e 𝑇

Page 47: Validation and analysis of mobility models

47

3.2 Definizione del grafo aggregato dei contatti

I grafi dei contatti possono essere prodotti sia in forma aggregata, che in forma

dinamica. Sia 𝐺(𝑉, 𝐸), un Contact Graph e sia 𝑇 = 𝑡0, 𝑡1, … , 𝑡𝑛 , l'insieme di tutti gli

istanti temporali in cui 𝐺 varia nel tempo. Si ottiene un Contact Graph aggregato

rispetto un intervallo di tempo 𝑘1, 𝑘2 , con 0 < 𝑘2 − 𝑘1 = K ≤ 𝑇, assegnado a

ciascun arco 𝑒 ∈ 𝐸 un peso pari alla frequenza con cui il contatto avviene, ovvero il

rapporto tra 𝑃 𝑒 e 𝐾, senza però associare alcun presence schedule ai nodi/archi del

grafo.

3.3 Indicatori statistici/metriche

Nei prossimi sotto-paragrafi verranno definiti gli indicatori statistici (o metriche) che

sono stati implementati per poter analizzare e confrontare le Dynamic Contact Network

ottenute sia, a partire da casi reali che da casi simulati usando i modelli di mobilità.

Tali indicatori (o metriche) si classificano in due tipi: metriche su grafo aggregato,

ossia indicatori che eseguono misure non considerando i Presence schedules, e metriche

su grafo dinamico , ovvero indicatori che effettuano misure considerando i Presence

schedules.

3.3.1 Indicatori/metriche su grafo aggregato

Node strength. La Strength [1] di un nodo i, definita come:

𝑆𝑖 = 𝑤𝑖 ,𝑗

𝑁

𝑗𝜖𝑉

dove V è l'insieme dei vicini del nodo, 𝑉 = 𝑁, 𝑤𝑖 ,𝑗 è il peso dell'arco che connette

il nodo i al nodo j, misura la "forza" di un nodo in base alla somma dei pesi delle sue

connessioni. In un grafo pesato, la strength di un nodo è la somma dei pesi degli archi

incidenti al nodo; in-strength e out-strength sono definite per i grafi pesati diretti,

similarmente al in- e out-degree. In questo caso la strength è la frequenza attesa, con la

quale un nodo comunica con i suoi vicini.

Weighted Clustering Coefficient. Il clustering misura quanto i vicini di un nodo

tendono ad essere collegati tra di loro, ovvero quanto tendono con esso a formare

una clique (grafo completo).

Page 48: Validation and analysis of mobility models

48

Il local clustering di un nodo i è misurato con un coefficiente 𝐶𝑖 , introdotto da

Watts e Strogatz per le analisi delle small-world networks [2], definito come rapporto tra il

numero attuale di archi tra il nodo i e i propri vicini e il numero massimo di archi che

connettono tra do loro i suoi vicini.

Pertanto è definita come:

𝐶𝑖 =2 𝑒𝑖

𝑑𝑣(𝑑𝑣 − 1)

Dove dv è il degree del nodo i. Questa misura và calcolata solo per i nodi con 𝑑𝑣 >

1, perché per quelli con 𝑑𝑣 = 1 è pari a 0.

Il clustering coefficient del grafo è definito come la media di tutti i local cluster coefficient:

𝐶 =1

𝑁 𝐶𝑖𝑖

In figura 3.2 si osserva che, nel caso di weighted graph, il semplice cluster coefficient può

sovrastimare la misura del clustering [2],[1], pertanto il local cluster coefficient viene

ridefinito come:

𝐶𝑖𝑊 =

2

𝑆𝑖(𝑑𝑣 − 1)

𝑤𝑖 ,𝑗 + 𝑤𝑖,𝑘

2𝑗 ,𝑘

Dove 𝑆𝑖 è la Strength del nodo i, 𝑤𝑖 ,𝑗 e 𝑤𝑖 ,𝑘 sono rispettivamente i pesi degli archi che

connetto il nodo i ai suoi vicini j e k che sono tra di loro interconnessi.

Fig.3.2: Esempio che mette a confronto il valore del cluster coefficient, calcolato per il

nodo 𝑣, con la rispettiva versione pesata. In questo caso particolare, il nodo 𝑣 ha

comunicato con una frequenza maggiore, con il nodo 𝑗, dunque anche se 𝑣 fa parte

Page 49: Validation and analysis of mobility models

49

di una 4-clique, ne fa meno parte rispetto al caso non pesato. 𝐶𝑣 = 0.5 risulta essere

in questo caso una sovrastima rispetto a 𝐶𝑣𝑊 = 0.25.

Modularity. Suddividere una rete in partizioni (o cluster) contenenti un elevato

numero di archi al loro interno e pochi archi che le connettono l'una all'altra, viene

detto Community Detection. La modularity misura la qualità del partizionamento, ovvero

quanto bene la struttura di un grafo è stata suddivisa in moduli (chiamati anche

gruppi, cluster o community).

Grafi con alta modularity hanno connessioni dense tra i nodi appartenenti allo

stesso modulo e sparse tra i nodi appartenenti a moduli differenti. La modularity è

rappresentata dalla differenza tra il numero di archi contenuti nei cluster di uno

specifico partizionamento del grafo e il numero atteso di archi contenuti nei cluster

di un grafo random, avente la stessa node degree distribution del grafo per cui viene

calcolata tale metrica [23],[24].

In questo modo è possibile stabilire se effettivamente il numero di archi

interni ad una community sia maggiore di quanto ci si aspetterebbe da un grafo

casuale. Consideriamo un partizionamento 𝑉 = (𝑉1, 𝑉2, … , 𝑉𝑘) di un grafo 𝐺(𝑉, 𝐸).

La modularity 𝑄 è un punteggio assegnato al clustering definito come:

𝑄 =1

2𝑚 𝐴𝑢 ,𝑣 −

𝑑𝑢𝑑𝑣

2𝑚

𝑢 ,𝑣∈𝑉𝑖

𝑘

𝑖=1

Dove 𝑚 = #𝑎𝑟𝑐𝑕𝑖, 𝐴𝑢 ,𝑣 = 1 𝑠𝑒 𝑢, 𝑣 ∈ 𝐸 e 0 altrimenti, 𝑑𝑢𝑑𝑣 sono il degree dei

rispettivi nodi 𝑢 e 𝑣, 𝑑𝑢𝑑𝑣

2𝑚 è il numero atteso di archi tra in nodi 𝑢 𝑒 𝑣 nel grafo

random. Questa misura è un valore scalare compreso tra -1 e 1 e nel caso di reti

pesate è definita come [25]:

𝑄 =1

2𝑚 𝐴𝑖𝑗 −

𝑘𝑖𝑘𝑗

2𝑚 𝛿 𝐶𝑖 , 𝐶𝑗

𝑖,𝑗

Dove 𝐴𝑖𝑗 rappresenta il peso dell'arco tra i nodi 𝑖 e 𝑗, 𝑘𝑖 = 𝐴𝑖𝑗𝑗 è la somma dei

pesi degli archi incidenti al vertice 𝑖, 𝐶𝑖 è la community a cui il vertice 𝑖 viene

assegnato, la funzione 𝛿 𝐶𝑖 , 𝐶𝑗 è uguale a 1 se 𝐶𝑖 = 𝐶𝑗 (𝑢 𝑒 𝑣 appartengono alla

stessa community) e zero altrimenti ed 𝑚 =1

2 𝐴𝑖𝑗𝑖,𝑗 .

Page 50: Validation and analysis of mobility models

50

Calcolare la modularity per grafi di grandi dimensioni, non è un processo

banale in termini di tempo di calcolo. In [63] è stato definito il Louvain Method, un

algoritmo approssimato che permette di calcolare la metrica su grafi di grandi

dimensioni in tempi relativamente rapidi. Ad esempio, impiega solo due minuti per

analizzare una rete di due milioni di nodi. In figura 3.3 viene schematizzato il metodo

Louvain, costituito da due fasi, ripetute iterativamente.

Fig.3.3: vengono mostrate in modo schematico le due fasi del Louvain Method. Si

ripetono così i due passi fino a che non si rilevano più cambiamenti a fronte di nuove

iterazioni e la massimizzazione della modularity è raggiunta.

Nella prima fase ciascun nodo viene associato ad una propria comunità. Per

ognuno di essi si verifica se il valore di modularità migliora inserendolo nel gruppo di

ciascuno dei suoi vicini. In caso positivo il nodo viene inserito nel cluster del vicino,

altrimenti ognuno rimane nel proprio cluster di partenza. Questa operazione viene

ripetuta fino a che non è più possibile migliorare il valore della modularity. La

seconda fase, aggrega i nodi appartenenti alla stessa community e costruisce una

nuova rete, dove i nodi sono le community. Questi due passi vengono ripetuti

iterativamente fino a che il valore della modulatiry converge a un valore stazionario,

che risulta essere il massimo valore raggiungibile.

Density. La densità di un grafo 𝐺(𝑉, 𝐸), che assume valori compresi tra 0 e 1,

misura il rapporto tra il numero di archi che esistono nell'insieme 𝐸 e il massimo

Page 51: Validation and analysis of mobility models

51

numero possibile di archi che possono esistere tra tutti i nodi 𝑣 ∈ 𝑉. Pertanto la

densità viene calcolata nel caso di grafo non diretto (che non può avere cicli) come

segue:

2 𝐸

𝑉 ( 𝑉 − 1)

Mentre nel caso di grafo diretto, viene calcolata come segue:

𝐸

𝑉 ( 𝑉 − 1)

Se il numero di archi di un grafo si avvicina al numero massimo possibile, allora il

grafo viene considerato denso, viceversa, se il grafo contiene pochi archi, viene

considerato sparso. Un grafo completo ha tutti i possibili archi, dunque ha una

densità pari a 1.

3.3.2 Indicatori/metriche su grafo dinamico

Flooding time. Il processo di diffusione di un messaggio in un Contact Graph

𝐺(𝑉, 𝐸), è simulato supponendo che, ogni entità che può essere diffusa su una rete

di contatti, può essere modellata come un messaggio. Il processo è simulato in uno

scenario ideale, dove ciascun nodo ha un'infinita quantità di risorse e il ritardo di

trasmissione del messaggio non viene considerato.

Sia 𝑇 = 𝑡0, 𝑡1, … , 𝑡𝑛 , l'insieme di tutti gli istanti temporali in cui il grafo

varia nel tempo, viene definito un semplice protocollo di flooding, dove ∀𝑡𝑖 ∈ 𝑇, con

0 ≤ 𝑖 ≤ 𝑛, un nodo 𝑣 invia il messaggio a tutti i vicini e a loro volta i vicini di 𝑣

inviano il messaggio ai relativi vicini.

Al fine di modellare il processo di diffusione di un messaggio, viene definito

un messaggio 𝑀𝑣0,𝑡0 generato da un nodo 𝑣0 (chiamato seed) al tempo 𝑡0. Il nodo

𝑣0 viene scelto uniformemente fra tutti i nodi 𝑣 ∈ 𝑁𝑛𝑜𝑡 𝑖𝑠𝑜𝑙𝑎𝑡𝑒𝑑 , dove 𝑁𝑛𝑜𝑡 𝑖𝑠𝑜𝑙𝑎𝑡𝑒𝑑 ,

è l'insieme di tutti i nodi della rete non isolati e 𝑡0 è il primo tempo in cui il nodo 𝑣0

appare nella rete dinamica.

Viene utilizzando il protocollo di flooding, definito prima, per simulare un

processo di diffusione di un'informazione. Eseguendo il protocollo 20 volte,

calcolando una media dei risultati ottenuti per ogni simulazione, si può osservare

come in media cresce nel tempo il numero di nodi a cui il messaggio è arrivato. Nel

Capitolo 5 verrà usata tale osservazione per comparare i tempi diffusione di un

Page 52: Validation and analysis of mobility models

52

messaggio, tra le reti ottenute usando i modelli di mobilità e quelle ottenute a partire

dalle tracce di contatti reali.

Inter-contact time. Si tratta dell'intervallo di tempo che intercorre tra due successivi

contatti tra gli stessi nodi. Viene calcolato alla fine di ogni contatto e all'inizio del

successivo. Calcolando la Inter contact time distribution si può scoprire quale è la

probabilità che un contatto, tra due stessi nodi, si ripeta dopo un determinato

numero di secondi.

Intra-contact time (o contact duration). Misura l'intervallo di tempo durante il

quale due nodi possono comunicare; si tratta quindi del tempo che i nodi possono

utilizzare per scambiarsi dati e informazioni. Il numero di questi contatti e la loro

distribuzione sono fattori importanti per determinare la capacità di diffusione di un

messaggio, perché maggiore è il numero di contatti, maggiore è la probabilità che un

messaggio si diffonda in gran parte della rete. Calcolando la Intra contact time

distribution si può osservare quale è la probabilità di avere un contatto che duri un

determinato numero di secondi.

Temporal correlations.

La Conditional probability Distribution of link's existence è un indicatore ideato per

comprendere se, conoscendo l'esistenza passata di un contatto (rappresentato da un

arco del Contact Graph), è possibile avere informazioni riguardo la sua eventuale

esistenza futura.

Sia 𝐺(𝑉, 𝐸), un Contact Graph e sia 𝑇 = 𝑡0, 𝑡1, … , 𝑡𝑛 , l'insieme di tutti gli

istanti temporali in cui 𝐺 varia nel tempo. La probabilità di esistenza di un arco

𝑒 ∈ 𝐸, al tempo 𝑡𝑖 ∈ 𝑇, con 0 ≤ 𝑖 ≤ 𝑛, è definita come:

𝑃𝑒 = 𝑃 𝑋𝑒 𝑡𝑖 = 1 = 𝑃 𝑒

𝑇

dove 𝑃 𝑒 (cardinalità del presence schedule di 𝑒) è il numero di istanti in cui l'arco 𝑒

appare in 𝐺, e 𝑇 è il numero totale d'istanti temporali in cui 𝑒 può apparire.

Definite ora le seguenti probabilità condizionate:

𝑃𝑒,1 = 𝑃 𝑋𝑒 𝑡𝑖 = 1|𝑋𝑒 𝑡𝑖 − 1 = 1

Page 53: Validation and analysis of mobility models

53

𝑃𝑒,0 = 𝑃 𝑋𝑒 𝑡𝑖 = 1|𝑋𝑒 𝑡𝑖 − 1 = 0

𝑃𝑒,1 è la probabilità che l'arco 𝑒 esista al tempo 𝑡𝑖 ∈ 𝑇, con 0 ≤ 𝑖 ≤ 𝑛, sapendo che è

esistito anche al tempo 𝑡𝑖 − 1 ∈ 𝑇, mentre 𝑃𝑒 ,0 è la probabilità che l'arco 𝑒 esista al

tempo 𝑡𝑖 ∈ 𝑇 sapendo che non è esistito al tempo 𝑡𝑖 − 1 ∈ 𝑇.

Supponendo che la 𝑃𝑒 sia costante, si può facilmente stimare 𝑃𝑒 ,1 e 𝑃𝑒,0 nel seguente

modo:

𝑃𝑒 ,1 = 𝑥𝑒 𝑡 = 1 ∩ 𝑥𝑒 𝑡 − 1 = 1 𝑇

𝑡=1

(𝑥𝑒 𝑡 = 1)𝑇𝑡=1

𝑃𝑒 ,0 = 𝑥𝑒 𝑡 = 1 ∩ 𝑥𝑒 𝑡 − 1 = 0 𝑇

𝑡=1

(𝑥𝑒 𝑡 = 0)𝑇𝑡=1

Rapportando 𝑃𝑒 ,1 e 𝑃𝑒 ,0 a 𝑃𝑒 viene verificato se il valore di 𝑃𝑒 , dipenda dal fatto che

l'arco 𝑒 sia esistito o meno negli istanti di tempo precedenti. Pertanto, è possibile

verificare l'eventuale dipendenza temporale, osservando l'andamento dei rapporti

𝑃𝑒,1𝑃𝑒

e 𝑃𝑒 ,0

𝑃𝑒 , al crescere rispettivamente di 𝑃𝑒 ,1 e 𝑃𝑒 ,0.

Distance from stationarity. Nella metrica precedente per poter stimare 𝑃𝑒 ,1 e 𝑃𝑒 ,0 è

stato supposto che 𝑃𝑒 sia sempre costante. In realtà questa probabilità non è detto

che sia sempre uguale, potrebbe invece variare nel tempo. Per questo motivo, è stato

ideato un indicatore che misura la variabilità di 𝑃𝑒 nel tempo, detto Link's existence

variability.

Sia 𝐺(𝑉, 𝐸), un Contact Graph e sia 𝑇 = 𝑡0, 𝑡1, … , 𝑡𝑛 , l'insieme di tutti gli

istanti temporali in cui 𝐺 varia nel tempo. Definita 𝑒𝑝𝑜𝑐𝑎, un sottoinsieme di 𝑇,

costituito da un determinato numero di istanti temporali 𝑡𝑖 ∈ 𝑇, con 0 ≤ 𝑖 ≤ 𝑛, e

definito 𝑁𝐸 = 𝑇

𝑒𝑝𝑜𝑐𝑎 , con 𝑒𝑝𝑜𝑐𝑎 costante, il numero di epoche contenute in

𝑇, si definisce l'insieme delle 𝑒𝑝𝑜𝑐𝑕𝑒 come, 𝐸𝑃𝑂𝐻 = {𝑒𝑝1, 𝑒𝑝2, … , 𝑒𝑝𝑁𝐵}. Per ogni

𝑒𝑝𝑜𝑐𝑎 ∈ 𝐸𝑃𝑂𝐻 viene calcolata la probabilità di esistenza di un arco come:

Page 54: Validation and analysis of mobility models

54

𝑃𝑒 ,𝑖 =

𝑛𝑒 𝑒𝑝𝑖

𝑁𝐸 𝑐𝑜𝑛 𝑖 ∈ 1, … , 𝑁𝐸

dove 𝑛𝑒è il numero di volte che l'arco 𝑒 esiste nell'epoca 𝑒𝑝𝑖 . Analizzando

l'andamento medio di 𝑃𝑒 ,𝑖 nelle varie epoche, è possibile verificare se 𝑃𝑒 ha o meno

un andamento stazionario. Nel Capitolo 5 questa metrica sarà affiancata alla

Conditional probability Distribution of link's existence, con lo scopo di verificare l'eventuale

presenza di dipendenze temporali nelle comunicazioni tra persone, sia nelle reti

costruite usando i modelli di mobilità che in quelle ottenute a partire dalle tracce di

contatti reali.

Spatial correlation. In statistica, il Pearson correlation coefficient, tipicamente denotato

come r, è una misura di correlazione (dipendenza lineare) tra due variabili, 𝑋 e 𝑌,

che assume valori compresi tra +1 e −1. Questa misura, sviluppata da Karl Pearson nel

1880 [3][4], è ampiamente utilizzata per individuare schemi di comportamento,

conosciuti come assortative mixing e disassortative mixing [5][6][7], in dati provenienti da

campi eterogenei come: computer science, ecologia ed epidemiologia. Date due

variabili aleatorie 𝑋 e 𝑌, r è definito come:

r = corr X, Y =cov X, Y

𝜎𝑥𝜎𝑦=

XY − X Y

N

X2 − X 2

N Y2 −

Y 2

N

dove cov(X, Y) è la covarianza tra 𝑋 e 𝑌, 𝜎𝑥 è la deviazione standard di 𝑋 e 𝜎𝑦 è la

deviazione standard di 𝑌. La covarianza misura quanto le due variabili aleatorie

hanno lo stesso comportamento, mentre la deviazione standard misura quanto i

valori di 𝑋 e 𝑌 tendono ad essere vicini o lontani dalla media.

Utilizzando il Pearson correlation coefficient, è stata ideata una metrica con

l'obiettivo di verificare se esiste o meno una correlazione spaziale tra i contatti di una

Dynamic Contact Network 𝐺(𝑉, 𝐸), ovvero se l'esistenza di un contatto, in uno

specifico istante temporale, sia correlata o meno all'esistenza di uno o più contatti

avvenuti nello stesso istante temporale.

Page 55: Validation and analysis of mobility models

55

Definito 𝑇 = 𝑡0, 𝑡1, … , 𝑡𝑛 , l'insieme di tutti gli istanti temporali in cui 𝐺 varia nel

tempo, è posssibile modellare l'esistenza di ciascun arco 𝑒 ∈ 𝐸 per ogni ∀𝑡𝑘 ∈ 𝑇,

con 0 ≤ 𝑘 ≤ 𝑛, tramite la seguente variabile aleatoria:

𝑋𝑘 = 𝑋𝑡𝑘𝑇𝑡

dove:

𝑋𝑡𝑘 = 1 se l′arco 𝑒 esiste al tempo 𝑡𝑘 ∈ T

0 altrimenti

Sia 𝑚 = 𝐸 , la Pearson Correlation Matrix di 𝑚 variabili aleatorie

𝑋1, 𝑋2, … , 𝑋𝑚 è una matrice 𝑚 × 𝑚 è definita come:

𝑃𝐶𝑀 =

𝑟1,1 𝑟1,2 ⋯ 𝑟1,𝑚

⋮ ⋱ ⋮𝑟𝑚 ,1𝑟𝑚 ,2 ⋯ 𝑟𝑚 ,𝑚

dove l'elemento alla posizione 𝑖, 𝑗 è pari a 𝑟𝑖,𝑗 = 𝑐𝑜𝑟𝑟(𝑋𝑖 , 𝑋𝑗 ).

Calcolare la Pearson Correlation Matrix di tutti gli archi del Contact Graph ha un

costo computazionale 𝑂( 𝐸 2 × 𝑇 ), dove 𝑇 è il numero di tutti gli istanti

temporali in cui un arco può esistere. Per ridurlo, è stato deciso di calcolare per ogni

cluster le matrici di correlazione, di dimensione 10 × 10, ciascuna su i primi 10

archi, con peso più alto, estrapolati da ogni cluster, ottenuto partizionando il grafo

secondo la modularity. In questo modo il costo computazionale diventa:

𝑂 𝑛𝑢𝑚𝑐𝑜𝑚𝑚𝑢𝑛𝑖𝑡𝑦 × 102 × 𝑇

dove 𝑛𝑢𝑚𝑐𝑜𝑚𝑚𝑢𝑛𝑖𝑡𝑦 è il numero di cluster identificati usando la modularity.

3.4 Rappresentazioni di grafi dinamici

Per analizzare reti dinamiche di contatti attraverso la piattaforma software Gephi,

descritta nel paragrafo 4.1, si ha bisogno di un formato che permetta di descrivere, in

modo compatto su file, la struttura e le caratteristiche di una Dynamical Contact

Network.

Nei prossimi due paragrafi verranno descritti i limiti del formato attualmente

più utilizzato e il nuovo formato che è stato ideato per superarli.

Page 56: Validation and analysis of mobility models

56

3.4.1 Graph Exchange XML Format (GEXF)

Il formato più comunemente usato per descrivere in modo compatto la

struttura e le caratteristiche di una rete di contatti dinamica, è il Graph Exchange XML

Format (GEXF, http://gexf.net/). Nel listato 3.1 è possibile vedere un esempio di file

GEXF, che descrive un grafo statico formato da due nodi, collegati da un arco.

L'attributo mode può valere static o dynamic, static se il grafo non si evolve nel tempo,

dynamic nel caso opposto. L'attributo defauleddgetype può valere directed, o undirected, o

mixed, directed se il grafo è diretto, undirected se il grafo non è diretto e mixed se è

entrambe le cose. A ciascun nodo/arco si possono associare degli attributi.

<gexf xmlns="http://www.gexf.net/1.2draft" version="1.2">

<meta lastmodifieddate="2009-03-20">

<creator>Gexf.net</creator>

<description>A hello world! file</description>

</meta>

<graph mode="static" defaultedgetype="directed">

<nodes>

<node id="0" label="Hello" />

<node id="1" label="Word" />

</nodes>

<edges>

<edge id="0" source="0" target="1" />

</edges>

</graph>

</gexf>

Listato 3.1: Esempio di rappresentazione di un piccolo file che descrive un grafo statico contenente 2 nodi e un arco che li collega.

Nel listato 3.2 si vede che un attributo ha un titolo/nome, un valore e un tipo

(string, integer, boolean,…). Il titolo/nome dell'attributo deve essere dichiarato per

tutto il grafo. Se si vuole descrivere un Dynamic Contact Graph, si deve associare

all'intero grafo, a ciascun nodo, a ciascun arco e a ciascun valore dei rispettivi

attributi, una sequenza di intervalli temporali per cui essi esistono. Se lo stesso nodo

o arco esiste in diversi intervalli temporali, si possono definirli e associarli ad esso

utilizzando l'elemento XML <spells> (il listato 3.3 ne mostra un esempio).

<graph defaultedgetype="directed">

<attributes class="node">

<attribute id="0" title="url" type="string"/>

<attribute id="1" title="indegree" type="float"/>

<attribute id="2" title="frog" type="boolean">

<default>true</default>

</attribute>

</attributes>

<nodes>

Page 57: Validation and analysis of mobility models

57

<node id="0" label="Gephi">

<attvalues>

<attvalue for="0" value="http://gephi.org"/>

<attvalue for="1" value="1"/>

</attvalues>

</node>

<node id="1" label="Webatlas">

<attvalues>

<attvalue for="0" value="http://webatlas.fr"/>

<attvalue for="1" value="2"/>

</attvalues>

</node>

</nodes>

<edges>

<edge id="0" source="0" target="1"/>

</edges>

</graph>

Listato 3.2: Esempio di come si definiscono ed associano attributi ai nodi.

Supponendo ora di dover rappresentare, nel formato GEXF, un grafo dinamico

ottenuto da un esperimento durato circa 7 giorni, ossia circa 604800 secondi.

L'elevato numero di intervalli temporali associati a ciascun nodo/arco, non essendo

rappresentati in modo compatto, creano file di notevoli dimensioni, che risultano

difficilmente manipolabili per i scopi del presente lavoro di tesi. Dato che si

potrebbero condurre esperimenti dalla durata significativamente estesa, è stato deciso

di stilare un nuovo formato che permetta una rappresentazione più compatta e

facilmente manipolabile. Tale formato, che verrà descritto nel prossimo paragrafo, è

stato chiamato Dynamic Network Format (DNF).

<node id="1001">

<spells>

<spell start="1335090239" end="1335090241" />

<spell start="1335090242" end="1335090243" />

<spell start="1335090244" end="1335090249" />

</spells>

</node>

Listato 3.3: Esempio di rappresentazione di un nodo con l'elemento <spells>.

3.4.2 Dynamic Network Format (DNF)

Il Dynamic Network Format (DNF) è un nuovo formato proposto nel presente lavoro

di tesi per rappresentare Dynamic Contact Network, reti che includono informazioni

riguardo la loro evoluzione nel tempo. L'idea che sta alla sua base, che lo rende

veramente efficiente in termini di occupazione di memoria rispetto al GEXF, è quella

di usare gap incrementali tra timestamp (in formato UNIX).

Page 58: Validation and analysis of mobility models

58

Ad esempio, supponendo che il nodo identificato dal numero 1001 esista nei

seguenti timestamp:

1335090242, 1335090243, 1335090246, 1335090247, 1335090249

e che il tempo in cui inizia l'esperimento sia 1335090220, allora il primo gap del

nodo sarà la differenza tra, il primo timestamp che esso ha associato e il tempo iniziale

dell'esperimento, pari a 1335090242 − 1335090220 = 22.

I gaps successivi saranno calcolati rispetto al timestamp che li precede. Ad

esempio, il secondo gap vale 1335090243 − 1335090242 = 1 e l'ultimo gap vale

1335090249 − 1335090247 = 2. Il nodo nel file DNF sarà rappresentato come

segue:

[1001] (22,1,3,1,2)

Inoltre, per ridurre ulteriormente la dimensione del file, DNF gestisce i timestamps

contigui. Questi sono rappresentati dal simbolo "+" seguito dal numero di istanti

continui, escludendo il primo.

Ad esempio il nodo identificato dal numero 1003 esiste nei seguenti timestamps:

1335090249, 1335090251, 1335090252, 1335090253, 1335090254, 1335090259

Allora nel file DNF sarà rappresentato come:

[1003] (29,2, +3,5)

dove "29" è il primo gap tra il timestamp 1335090249 e quello da cui parte

l'esperimento (1335090220), "2" è il gap tra il timestamp 1335090251 e

1335090249, "+3" è un gap contiguo per i timestamps: 1335090251 (escluso),

1335090252, 1335090253, 1335090254; l'ultimo gap "5" è la differenza tra

1335090249 e 1335090254.

Il primo istante di una sequenza di gap (nell'esempio di prima 1335090251)

viene escluso per gestire il relativo gap con il timestamp precedente. Allo stesso modo,

tutto quello che è statodetto per i nodi è valido anche per gli archi. Ad esempio un

Page 59: Validation and analysis of mobility models

59

arco che connette due nodi con identificativo 1010 e 1089 può essere descritto

come segue:

1010,1089 39,1, +7,3, +2,10

Utilizzando la rappresentazione DNF è stata ottenuta una notevole diminuzione della

grandezza dei file, contenenti le tracce di contatti, collezionate negli esperimenti

SocialDIS e MACRO. Nel caso dell'esperimento SocialDis, il file formato GEXF

occupa 40MB, mentre in versione DNF solo 2 MB.

3.4.2.1 Sintassi

Il formato DNF ha una sintassi che permette di definire in modo preciso una

Dynamic Contact Network. Il file è costituito da tre parti chiamate, header, nodes ed

edges, separate da linee vuote. Una linea vuota separa header da nodes e una seconda

linea vuota separa nodes da edges.

Header.

Nell'header vengono inserite le caratteristiche del grafo e le definizioni degli attributi

associati a nodi/archi, come segue: nella prima riga viene definito il tipo di grafo, che

può essere statico o dinamico, la tipologia degli archi, che possono essere diretti o

non diretti (o entrambe le cose), seguendo la seguente sintassi:

𝑔𝑟𝑎𝑝𝑕𝑡𝑦𝑝𝑒: {𝑠𝑡𝑎𝑡𝑖𝑐 | 𝑑𝑦𝑛𝑎𝑚𝑖𝑐}, 𝑑𝑒𝑓𝑎𝑢𝑙𝑡𝑒𝑑𝑔𝑒𝑡𝑦𝑝𝑒: {𝑢𝑛𝑑𝑖𝑟𝑒𝑐𝑡𝑒𝑑 | 𝑑𝑖𝑟𝑒𝑐𝑡𝑒𝑑 | 𝑚𝑖𝑥𝑒𝑑}

nella seconda riga vengono definite le informazioni riguardanti la dinamicità del

grafo, ossia il tempo in cui comincia ad evolversi ed il tempo in cui si ferma, secondo

la seguente sintassi:

𝑑𝑦𝑛𝑎𝑚𝑖𝑐𝑠: {𝑠𝑡𝑎𝑟𝑡 = 𝑣𝑎𝑙𝑢𝑒, 𝑒𝑛𝑑 = 𝑣𝑎𝑙𝑢𝑒, 𝑡𝑖𝑚𝑒𝑢𝑛𝑖𝑡 = 𝑣𝑎𝑙𝑢𝑒}

Se il grafo è dinamico, l'attributo "start" è obbligatorio, mentre l'attributo "end" può

essere omesso. Se il grafo è statico la riga dovrà essere scritta come segue:

𝑑𝑦𝑛𝑎𝑚𝑖𝑐𝑠: {}

Page 60: Validation and analysis of mobility models

60

L'attributo 𝑡𝑖𝑚𝑒𝑢𝑛𝑖𝑡 (non obbligatorio) definisce quanto deve essere lungo un gap.

Ad esempio, se definiamo un 𝑡𝑖𝑚𝑒𝑢𝑛𝑖𝑡 = 5, un gap sarà lontano dal gap che lo

precede di cinque unità di tempo. Dunque se il gap vale ad esempio +3, in realtà

considera 3 × 5 = 15 unità di tempo trascorse dal gap che lo precede. Se il

𝑡𝑖𝑚𝑒𝑢𝑛𝑖𝑡 non viene definito, il suo valore predefinito sarà pari a 1.

Nella terza riga vengono definiti gli eventuali attributi di nodi/archi, seguendo la

seguente sintassi:

𝑛𝑜𝑑𝑒𝑎𝑡𝑡𝑟𝑠: {𝑙𝑎𝑏𝑒𝑙, 𝑎𝑡𝑡𝑟1, 𝑎𝑡𝑡𝑟2, . . . }, 𝑒𝑑𝑔𝑒𝑎𝑡𝑡𝑟𝑠: {𝑙𝑎𝑏𝑒𝑙, 𝑤𝑒𝑖𝑔𝑕𝑡, 𝑎𝑡𝑡𝑟1,𝑎𝑡𝑡𝑟2, . . . }

l'attributo 𝑙𝑎𝑏𝑒𝑙 può essere omesso se è uguale all'id del nodo/arco. Si tiene a

precisare che il tipo di ciascun attributo/campo è considerato una stringa.

Nodes.

In questa parte del file, separata dalla precedente con una riga vuota, è contenuta la

descrizione dei nodi del grafo come segue:

[𝑛𝑜𝑑𝑒𝐼𝐷] {𝑙𝑎𝑏𝑒𝑙_𝑣𝑎𝑙𝑢𝑒, 𝑎𝑡𝑡𝑟1_𝑣𝑎𝑙𝑢𝑒, 𝑎𝑡𝑡𝑟2_𝑣𝑎𝑙𝑢𝑒, . . . } (𝑔𝑎𝑝1, 𝑔𝑎𝑝2, 𝑔𝑎𝑝3, . . . )

dove 𝑙𝑎𝑏𝑒𝑙_𝑣𝑎𝑙𝑢𝑒 è da assegnare solo se nel primo elemento di 𝑛𝑜𝑑𝑒𝑎𝑡𝑡𝑟𝑠 è stato

specificato 𝑙𝑎𝑏𝑒𝑙, altrimenti la riga sarà:

[𝑛𝑜𝑑𝑒𝐼𝐷] {𝑣𝑎𝑙𝑢𝑒_𝑜𝑓_𝑎𝑡𝑡𝑟1,𝑣𝑎𝑙𝑢𝑒_𝑜𝑓_𝑎𝑡𝑡𝑟2, . . . } (𝑔𝑎𝑝1, 𝑔𝑎𝑝2, 𝑔𝑎𝑝3, . . . )

dove i valori degli attributi sono assegnati se e solo se sono stati definiti nella

corrispettiva lista contenuta dell'header, altrimenti la riga dovrà essere come segue:

[𝑛𝑜𝑑𝑒𝐼𝐷] (𝑔𝑎𝑝1, 𝑔𝑎𝑝2, 𝑔𝑎𝑝3, . . . )

dove (𝑔𝑎𝑝1, 𝑔𝑎𝑝2, 𝑔𝑎𝑝3, . . . ) sono presenti se e solo se il grafo è di tipo dinamico.

Edges.

Questa parte del file, separata dalla precedente con una riga vuota, contiene la

descrizione degli archi non diretti del grafo, con la seguente sintassi:

Page 61: Validation and analysis of mobility models

61

[𝑠𝑜𝑢𝑟𝑐𝑒𝐼𝐷, 𝑡𝑎𝑟𝑔𝑒𝑡𝐼𝐷] {𝑙𝑎𝑏𝑒𝑙_𝑣𝑎𝑙𝑢𝑒, 𝑤𝑒𝑖𝑔𝑕𝑡_𝑣𝑎𝑙𝑢𝑒, 𝑎𝑡𝑡𝑟1_𝑣𝑎𝑙𝑢𝑒, 𝑎𝑡𝑡𝑟2_𝑣𝑎𝑙𝑢𝑒, . . . } (𝑔𝑎𝑝1, 𝑔𝑎𝑝2, 𝑔𝑎𝑝3, . . . )

dove i due nodi che identificano l'arco sono separate da "," se non sono diretti,

mentre da ">" se sono diretti. In quest'ultimo caso, il primo nodo è il source e il

secondo è il target. 𝑙𝑎𝑏𝑒𝑙_𝑣𝑎𝑙𝑢𝑒 è presente se e solo se il primo elemento di

𝑒𝑑𝑔𝑒𝑎𝑡𝑡𝑟𝑠 è 𝑙𝑎𝑏𝑒𝑙, altrimenti la riga sarà:

[𝑠𝑜𝑢𝑟𝑐𝑒𝐼𝐷, 𝑡𝑎𝑟𝑔𝑒𝑡𝐼𝐷] {𝑤𝑒𝑖𝑔𝑕𝑡_𝑣𝑎𝑙𝑢𝑒, 𝑣𝑎𝑙𝑢𝑒_𝑜𝑓_𝑎𝑡𝑡𝑟1, 𝑣𝑎𝑙𝑢𝑒_𝑜𝑓_𝑎𝑡𝑡𝑟2, . . . } (𝑔𝑎𝑝1, 𝑔𝑎𝑝2, 𝑔𝑎𝑝3, . . . )

dove 𝑤𝑒𝑖𝑔𝑕𝑡_𝑣𝑎𝑙𝑢𝑒 è presente se e solo se esiste la definizione dell'attributo in

𝑒𝑑𝑔𝑒𝑎𝑡𝑡𝑟𝑠, altrimenti la riga sarà:

[𝑠𝑜𝑢𝑟𝑐𝑒𝐼𝐷, 𝑡𝑎𝑟𝑔𝑒𝑡𝐼𝐷] {𝑙𝑎𝑏𝑒𝑙_𝑣𝑎𝑙𝑢𝑒, 𝑣𝑎𝑙𝑢𝑒_𝑜𝑓_𝑎𝑡𝑡𝑟1, 𝑣𝑎𝑙𝑢𝑒_𝑜𝑓_𝑎𝑡𝑡𝑟2, . . . } (𝑔𝑎𝑝1, 𝑔𝑎𝑝2, 𝑔𝑎𝑝3, . . . )

dove i valori degli attributi sono presenti se e solo se sono stati definiti in

𝑒𝑑𝑔𝑒𝑎𝑡𝑡𝑟𝑠, altrimenti la riga sarà:

[𝑠𝑜𝑢𝑟𝑐𝑒𝐼𝐷, 𝑡𝑎𝑟𝑔𝑒𝑡𝐼𝐷] (𝑙𝑎𝑏𝑒𝑙_𝑣𝑎𝑙𝑢𝑒, 𝑤𝑒𝑖𝑔𝑕𝑡_𝑣𝑎𝑙𝑢𝑒, 𝑔𝑎𝑝1, 𝑔𝑎𝑝2, 𝑔𝑎𝑝3, . . . )

dove (𝑔𝑎𝑝1, 𝑔𝑎𝑝2, 𝑔𝑎𝑝3, . . . ) sono presenti se e solo se il grafo è di tipo dinamico.

3.4.2.2 Esempi

Nei listati 3.4, 3.5, 3.6 e 3.7, vengono mostrati alcuni esempi di file in formato DNF.

graphtype:{static}, defaultedgetype:{undirected}

dynamics:{}

nodeattrs:{}, edgeattrs:{}

[1001]

[1002]

[1003]

[1004]

Page 62: Validation and analysis of mobility models

62

[1001,1002]

[1001,1003]

[1002,1004]

Listato 3.4 Mostra la rappresentazione di un grafo statico, dove ai nodi/archi non sono stati definiti attributi e labels. graphtype:{static}, defaultedgetype:{directed} dynamics:{} nodeattrs:{label,gender,age}, edgeattrs:{label} [1001] {Bob,M,22} [1002] {Melany,F,23} [1003] {Mike,M,20} [1004] {Alice,F,25} [1001,1002] {Bob_Melany} [1001,1003] {Bob_Mike} [1002,1004] {Melany_Alice}

Listato 3.5 Mostra la rappresentazione di un grafo statico, dove a ciascun nodo/arco sono stati definiti ed assegnati degli attributi. graphtype:{dynamic}, defaultedgetype:{mixed} dynamics:{start=1318836335,end=1319208605} nodeattrs:{}, edgeattrs:{} [1001] (10,+3,2,+4) [1002] (11,+2,31) [1003] (9,+10,2) [1004] (12,1,31,+2) [1001>1002] (11,1) [1001,1003] (10,+3) [1002>1004] (12,1,31)

Listato 3.6 Mostra la rappresentazione di un grafo dinamico, senza attributi e con archi di tipo misto. graphtype:{dynamic}, defaultedgetype:{undirected} dynamics:{start=1318836335} nodeattrs:{gender,age}, edgeattrs:{weight} [1001] {M,22} (10,+3,2,+4) [1002] {F,23} (11,+2,31) [1003] {M,20} (9,+10,2) [1004] {F,25} (12,1,31,+2) [1001,1002] {2} (11,1)

Page 63: Validation and analysis of mobility models

63

[1001,1003] {2} (10,+3) [1002,1004] {3} (12,1,31)

Listato 3.7 Mostra un grafo dinamico, con attributi ed archi pesati.

Page 64: Validation and analysis of mobility models

64

Capitolo 4

Sistema per l'analisi di

grafi dinamici

L’obiettivo di questo Capitolo è quello di illustrare: la piattaforma software

adottata per la visualizzazione e la manipolazione di grafi dinamici, i plugin

implementati per importare grafi secondo il formalismo DNF (descritto nel capitolo

precedente), simulare la dinamicità temporale del grafo dei contatti, generare grafi a

partire dai modelli di mobilità (descritti nel Capitolo 3) e calcolare gli indicatori

statistici/metriche (descritte nel Capitolo 3).

4.1 Gephi Platform

Gephi [11] (http://gephi.org) è un framework per l'analisi, manipolazione e

visualizzazione di grafi, che fornisce dei tools per studiare non solo complesse reti

statiche, ma anche grandi reti dinamiche. Gephi è un software open source, basato

sulla piattaforma Netbeans, le cui principali feature permettono di filtrare, navigare,

manipolare e applicare tecniche di clustering su grafi.

Tra i vari tool che il framework offre, la componente Timeline è una semplice

interfaccia che permette di selezionare un determinato intervallo temporale e di

visualizzare ed esplorare il grafo corrispondente. Per la visualizzazione di grandi reti,

esso utilizza un motore di rendering 3D che ne permette la navigazione in tempo

reale, come mostrato in Fig.4.1.

Nelle figure 4.2 e 4.3 viene mostrata l'architettura modulare di Gephi, che

rende facilmente comprensibile ed espandibile il codice, in modo da estendere le sue

funzionalità tramite l'implementazione di plugin. Queste possono usufruire delle

seguenti API (vengono elencate solo quelle usate nell'ambito della tesi) che ciascuno

dei moduli della piattaforma Gephi offre:

Page 65: Validation and analysis of mobility models

65

Graph API: permettono di manipolare la struttura dati rappresentante il

grafo, inteso come collezione di nodi e archi che possono essere diretti, non

diretti o entrambe le cose. Ad esempio, di un grafo è possibile iterare i nodi

o gli archi, ottenere il numero totale di nodi/archi, il degree di ciascun nodo o

creare sottografi (detti viste).

Attributes API: associano a ciascun nodo/arco dati aggiuntivi, chiamati

attributi. Gli attributi possono essere di tipo primitivo (Integer, Boolean,

String, …), di tipo lista o di tipo dinamico.

Import API: permette di importare dati da ogni tipo di supporto (file,

database, streams).

Statistics API: forniscono gli algoritmi che calcolano metriche/statistiche.

Le statistiche tipicamente usano i dati della rete per generare risultati per ogni

nodo/arco (degree, clustering coefficient, hits, …) o globalmente per tutto il

grafo.

Dynamic API: API dedicate ai grafi dinamici, che vengono maggiormente

descritte nel paragrafo successivo.

Generator API: creano grafi a partire da un insieme di proprietà seocondo

degli algoritmi di generazione.

LongTask API: usate dagli altri moduli (Statistics, Generator, Import, …)

per eseguire lunghi task (o processi) in threads separati, supportando la

visualizzazione del loro progresso, la gestione degli errori che possono

generare, e la loro cancellazione.

Oltre ad una vasta gamma di API, Gephi offre anche le rispettive SPI (Service

Provider Interface), che forniscono interfacce java implementabili. Ad esempio, se si

vuole aggiungere una nuova metrica/statistica, o un nuovo importatore, o un

nuovo algoritmo di generazione di grafi, basta sviluppare un plugin che

implementa rispettivamente le interfacce Statistics, o Import o Generator.

Page 66: Validation and analysis of mobility models

66

Fig.4.1: Screenshot di Gephi che mostra il rendering 3D di un grafo.

Fig.4.2: Grafico che mostra l'architettura ad alto livello framework Gephi.

Page 67: Validation and analysis of mobility models

67

Fig.4.3: Grafico che mostra l'architettura ad alto livello della piattaforma Gephi, dal

punto di vista dello sviluppatore di plugin.

4.1.1 Gephi Dynamic API

Le Dynamic API sono state sviluppate, in occasione del GSoC (Google Summer of Code)

2011 dallo studente Cezary Bartosiak, per fornire delle funzioni che permettano di

eseguire query su grafi dimamici.

Le idee principali che vi sono dietro sono:

Interval Tree [9] per la memorizzazione di attributi dinamici, definiti come

DynamicType<T>, dove T e Type possono essere un qualsiasi tipo di dato

supportato da Java. Questi attributi dinamici permettono di associare un

valore tempo variabile a ciascun nodo/arco;

DynamicGraph è la rappresentazione del grafo dinamico che permette di

visualizzarlo e manipolarlo.

Queste API non si sono dimostrate adatte per gli scopi del presente lavoro per i

seguenti motivi:

1. Gephi bug. Sviluppando in un primo momento le metriche dinamiche con le

dynamic API di Gephi, sono stati osservati dei casi in cui il grafo genera, nella

struttura dati proprietaria di Gephi, un'eccezione di tipo null pointer exception.

Page 68: Validation and analysis of mobility models

68

Isolando questi casi, si è provato poi a calcolare metriche dinamiche già

implementate in Gephi (es. #edge al variare del tempo) e l'eccezione si è

ripresentata. L'errore è stato segnalato e successivamente confermato dagli

sviluppatori di Gephi.

2. Elevato tempo d'importazione. Durante l'implementazione del DNF

importer (descritto nel paragrafo 4.3) è stato riscontrato che il tempo di

importazione di un grafo costituito da 116 nodi, 296 archi e 372270 istanti

temporali è di ≅ 38 minuti. Nonostante si siano tentate varie ottimizzazioni,

esiste un "collo di bottiglia" quando vengono processati nodi o archi presenti

per più di 20000 istanti temporali. Effettuando diversi test è stato verificato

che la causa è il metodo addTimeInterval. Questo metodo, fornito dalle dynamic

API di Gephi, assegna un intervallo temporale ad un nodo/arco.

3. Rapida saturazione della JVM heap memory. Le metriche sviluppate

secondo il paradigma delle dynamic API saturano velocemente l'heap memory

della JVM, settato a 1,5 Gbyte.

Dato che il bug riscontrato nell'esecuzione delle metriche dinamiche non dipende

dalle motivazioni provvisorie che ci sono state fornite dagli sviluppatori di Gephi,

che i tempi di calcolo sono troppo elevati e che l'heap memory satura velocemente, è

stato sviluppato un modulo proprietario per simulare la dinamicità del grafo,

chiamato DNF Dynamic (illustrato nel paragrafo più sotto).

4.2 DNF Dynamic

Per superare le limitazioni (descritte più sopra) delle Dynamic API, è stato

ideato ed implementato un nuovo modulo che simula la dinamicità temporale del

grafo dei contatti con prestazioni elevate in termini di tempo di calcolo e quantità di

memoria allocata. L'idea alla sua base è quella di non assegnare ad ogni nodo/arco

una lista di TimeInterval per rappresentare il relativo presence schedule, ma associare una

lista di Long contenente tutti i timestamp (formato UNIX time) in cui essi occorrono.

Questa semplice modifica ha ridotto drasticamente i tempi d'importazione di un

grafo rappresentato su file nel formato DNF. Ad esempio, per importare un grafo

costituito da 116 nodi, 296 archi e 372270 istanti temporali, siamo passati da ≅ 38

minuti a 3 millisecondi. In figura 4.4 viene mostrato il class diagram del plugin.

Page 69: Validation and analysis of mobility models

69

Fig.4.4: Viene mostrato il Class diagram delle principali classi che costituiscono il

modulo DNF Dynamic. Per una migliore leggibilità del grafico non vengono

mostrati i metodi della classe Int2ObjectLinkedOpenHashMap.

Per poter simulare la dinamicità del grafo dei contatti, ossia sapere se in un

determinato timestamp uno specifico nodo/arco esiste, viene eseguito un

preprocessamento, in cui si costruisce la seguente struttura dati: Una

Int2ObjectLinkedOpenHashMap [10] che ha per chiavi l'id dei nodi o degli archi e come

valore un LongLinkedOpenHashSet [10] contenente i timestamps in cui essi occorrono.

L'Int2ObjectLinkedOpenHashMap e il LongLinkedOpenHashSet sono rispettivamente, un

hash map ed un hash set, progettati e sviluppati da Sebastiano Vigna [10], per essere

significativamente più performanti in termini di memoria allocata e tempi di calcolo

Page 70: Validation and analysis of mobility models

70

rispetto a quelle fornite dal Java Collection Framework. Il DNF Dynamic offre i

seguenti metodi per interrogare la struttura dati:

getNodePresenceSchedule: di un nodo restituisce rispettivo presence schedule,

rappresentato da un array di zero e uno, uno se il nodo occorre in un

determinato timestamp, zero nel caso opposto.

getEdgePresenceSchedule: di un arco restituisce rispettivo presence schedule,

rappresentato da un array di zero e uno, uno se l'arco occorre in un

determinato timestamp, zero nel caso opposto.

getSnapshotGraph: restituisce una vista (o sottografo) del grafo dinamico

per un determinato timestamp.

node_in_time: verifica l'occorenza di un nodo ad un determinato

timestamp. Restituisce True se esiste, False altrimenti.

edge_in_time: verifica l'occorenza di un arco ad un determinato timestamp.

Restituisce True se esiste, False altrimenti.

getEdgeTimes: restituisce la lista dei timestamps in cui l'arco esiste.

getNodeTimes: restituisce la lista dei timestamps in cui il nodo esiste.

getMostFrequencyEdgeID: restituisce l'id dell'arco che occorre più

frequentemente nel tempo.

getNMostFrequencyEdgeID: restituisce i primi 10 archi che occorrono

più frequentemente nel tempo (in ordine decrescente).

Abbandonando l'uso delle Dynamic API di Gephi e adottando invece il

nuovo modulo implementato, si riescono a sviluppare indicatori statistici/metriche

dinamici efficienti. Ad esempio re-implementando la metrica del Flooding time

utilizzando il DNF Dynamic, applicata ad un grafo costituito da 116 nodi, 296 archi e

372270 istanti temporali, si ottengono gli stessi risultati, passando da ≅ 2 ore di

calcolo e almeno 1Gbyte di heap memory allocata, a ≅ 1,5 minuti di calcolo e meno

di 500Mbyte di heap memory allocata. Il difetto del DNF Dynamic è che può essere

applicato solo a grafi rappresentati nel formato DNF, mentre il pregio è che non è

soggetto al bug (illustrato più sopra) e i tempi di esecuzione delle metriche dinamiche

migliorano significativamente.

Page 71: Validation and analysis of mobility models

71

4.3 DNF Importer

Il primo plugin che è stato sviluppato serve ad importare grafi che adottano il

formato DNF (definito nel capitolo 3). Viene consentito sia di importare grafi in

forma aggregata (senza memorizzare il presence schedule di nodi/archi e assegnando

a ciascun arco un peso pari alla sua frequenza), sia in forma dinamica (memorizzando

i presence schedule di nodi/archi). Analizzando i dati raccolti nell'esperimento

SocialDis, è stato osservato che spesso un contatto tra due individui viene considerato

terminato solo perché questi hanno posizionato in modo scorretto il tag RFID.

Ad esempio, un individuo A può averlo posizionato all'altezza delle gambe e

un individuo B può averlo posizionato all'altezza del petto.

In questo caso la comunicazione face-to-face tra A e B può subire diverse

disconnessioni di pochi secondi, nonostante essi continuino a comunicare uno di

fronte all'altro. Per diminuire gli effetti di questa anomalia è stato deciso di introdurre

una soglia entro la quale una disconnessione non viene considerata come

interruzione del contatto. Tramite la GUI del plugin è possibile decidere il valore

della soglia. Se la durata della disconnessione è inferiore a tale valore, questa non

viene considerata come interruzione.

Il plugin, sviluppato seguendo la guida "How to write an import" [27], è costituito dalle

seguenti classi (mostrate in figura 4.5):

DnfImporter: implementa le SPI FileImporter e LongTask. Utilizza due

hash map, che hanno rispettivamente come chiavi due oggetti di tipo

NodeDraft e EdgeDraft, e come valore i relativi presence schedule. Durante

il parsing del file vengono popolate le hash map e i dati da esse contenuti

vengono inseriti nelle strutture dati, che memorizzano il grafo con i suoi

attributi.

DnfImporterBuilder: implementa FileImporterBuilder, aggiunge il nuovo

formato di file con estensione .dnf e registra la nuova implementazione della

SPI Importer.

IllegalValueException: classe di eccezione che identifica le eccezioni

lanciate a causa di valori errati contenuti nel file dnf.

ValidationType: classe statica che serve a validare il tipo di numero

contenuto in una stringa (Integer, Float, Double, Long).

Page 72: Validation and analysis of mobility models

72

Fig.4.5: Viene mostrato il Class diagram delle principali classi che costituiscono il

DNF Importer. Per rendere leggibile il grafico non vengono omesse le definizioni

delle variabili e dei metodi delle classi.

4.4 Mobility Model Generator

Al fine di poter effettuare l'analisi illustrata nel Capitolo 5, ossia osservare

quanto i dati generati a partire dai modelli di mobilità siano vicini o lontani dai dati

generati a partire dagli esperimenti condotti nel mondo reale, sono state iplementate

due plugin seguendo la guida "How to write a graph generator" [28], che generano grafi

rispettivamente secondo il RW mobility model e il TLW mobility model.

4.4.1 Mobility Simulator

La piattaforma Gephi non offre delle API per poter simulare modelli di

mobilità, pertanto è stato deciso di sviluppare un modulo che consenta a tutti i

Page 73: Validation and analysis of mobility models

73

plugin, che generano grafi a partire da modelli mobilità, di settare un ambiente di

simulazione, dove i nodi, nel tempo, si muovono ed eventualmente collidono. E'

stato ideato un modulo costituito dall'interfaccia IMobilityEnviromentSimulator, dove

sono definiti i metodi, che tipicamente servono a simulare la mobilità dei nodi

secondo un qualsiasi mobility model. Tali metodi servono a:

settare e restituire: posizione, velocità, tempo di pausa, raggio di copertura e

angolo di rotazione di un nodo;

restituire un sottoinsieme costituito dagli id dei nodi la cui distanza da

percorrere è uguale o inferiore alla rispettiva velocità, in modo da conoscere

quali nodi sono arrivati a destinazione;

restituire il sottoinsieme degli id dei nodi la cui velocità è pari a zero, in modo

da sapere quali nodi devono mettersi in pausa;

restituire un sottoinsieme contenente gli id dei nodi la cui velocità è pari a

zero e il cui tempo d'attesa è minore di zero, per sapere quali sono i nodi che

hanno atteso abbastanza tempo e che possono quindi ripartire per una nuova

destinazione;

restituire "vero" se due nodi sono entrati nei rispettivi raggi di copertura,

"falso" altrimenti.

Posizione, velocità, tempo di pausa, raggio di copertura e angolo di rotazione di

ciascun nodo, sono memorizzate nelle Int2DoubleLinkedOpenHashMap [10], che hanno

come chiavi gli id dei rispettivi nodi.

4.4.2 Random Waypoint Mobility Model Generator

Il plugin è costituito dalle seguenti classi (mostrate in figura 4.6):

RWMobilityModel: genera grafi secondo il modello di mobilità RW

(descritto nel Capitolo 2). Il metodo Init assegna a ciascun nodo la posizione

iniziale, la velocità iniziale, il raggio di copertura e il punto di arrivo. Il

metodo generate avvia la simulazione, che consiste di quattro step, che si

ripetono ad ogni iterazione:

1. Verificare per ogni coppia di nodi se questi sono entrati nei rispettivi

raggi di copertura. Se l'esito è positivo viene aggiunta alle due

Object2ObjectLinkedOpenHashMap [10], chiamate map_edgedraft_time

e map_nodedraft_time (che hanno per chiave rispettivamente un

Page 74: Validation and analysis of mobility models

74

EdgeDraft e un NodeDraft e per valore la lista dei timestamp

associati), il tempo in cui è avvenuto il contatto. Aggiornare la

posizione di ciascun nodo e calcolare la distanza che lo separa dal

punto di arrivo.

2. Ai nodi che sono arrivati a destinazione, viene settata la velocità a

zero e viene assegnato un waiting time, il cui valore è scelto

casualmente da una distribuzione uniforme.

3. Ai nodi che sono in attesa viene decrementato il waiting time.

4. Ai nodi per cui il waiting time è arrivato a zero, vengono assegnate

una nuova destinazione e una nuova velocità.

RWMobilityEnviromentSimulator: implementa i metodi definiti

nell'interfaccia IMobilityEnviromentSimulator e un metodo che restituisce un

numero random da una distribuzione uniforme.

RWMobilityModelUI: interfaccia che estende l'interfaccia GeneratorUI.

RWMobilityModelUIImpl: implementa l'interfaccia RWMobilityModelUI e

serve gestire l'interfaccia grafica di configurazione del modello di mobilità.

RWMobilityModelPanel: implementa l'interfaccia grafica del pannello di

configurazione dei parametri (velocità minima e massima, tempo di pausa,

numero di'iterazioni, …), che vengono passati alle variabili del modello di

mobilità.

4.4.3 Truncated Lèvi Walk Mobility Model Generator

Le principali classi del plugin sono le seguenti:

TLWMobilityModel: Genera grafi secondo il modello di mobilità TLW

(descritto nel Capitolo 2). Il metodo Init assegna a ciascun nodo la posizione

iniziale, la velocità iniziale, il raggio di copertura, la direzione e la lunghezza

della flight. Il metodo generate avvia la simulazione, che consiste di 5 step, che

si ripetono ad ogni iterazione:

1. Verificare per ogni coppia di nodi se questi sono entrati nei rispettivi

raggi di copertura. Se l'esito è positivo viene aggiunta alle due

Object2ObjectLinkedOpenHashMap [10], chiamate map_edgedraft_time

e map_nodedraft_time (che hanno per chiave rispettivamente un

EdgeDraft e un NodeDraft e per valore la lista dei timestamp

Page 75: Validation and analysis of mobility models

75

associati), il tempo in cui è avvenuto il contatto. Aggiornare la

posizione di ciascun nodo.

2. Ai nodi che raggiungono i confini dell'area di simulazione viene fatta

cambiare direzione.

3. Ai nodi che sono arrivati a destinazione, viene settata la velocità a

zero e viene assegnato un waiting time, il cui valore è scelto

casualmente da una distribuzione power law (definita nella classe

TLWMobilityEnviromentSimulator).

4. Ai nodi che sono in attesa, viene decrementato il waiting time.

5. Ai nodi per cui il waiting time è arrivato a zero, vengono assegnate

una nuova lunghezza di flight, scelta casualmente da una distribuzione

power law (definita nella classe TLWMobilityEnviromentSimulator) e

una nuova velocità proporzionale alla lunghezza della flight:

𝑓𝑙𝑖𝑔𝑕𝑡 𝑙𝑒𝑛𝑔𝑡 𝑕

10.

TLWMobilityEnviromentSimulator: implementa i metodi definiti

nell'interfaccia IMobilityEnviromentSimulator e un metodo che restituisce un

numero random dalla seguente Power law Distribution: 𝑥1𝑛+1 − 𝑥0

𝑛+1 ∗

𝑦 + 𝑥0𝑛+1

1𝑛+1 dove 𝑦 è una variabile, 𝑛 è la potenza della distribuzione,

𝑥0 e 𝑥1 definiscono il range della distribuzione.

TLWMobilityModelUI: interfaccia che estende l'interfaccia GeneratorUI.

TLWMobilityModelUIImpl: implementa l'interfaccia TLW

MobilityModelUI e serve gestire l'interfaccia grafica di configurazione del

modello di mobilità.

TLWMobilityModelPanel: implementa l'interfaccia grafica del pannello di

configurazione dei parametri (velocità minima e massima, tempo di pausa,

numero di'iterazioni, …), che vengono passati alle variabili del modello di

mobilità.

Page 76: Validation and analysis of mobility models

76

Fig.4.6: Viene mostrato il Class diagram delle principali classi che costituiscono il

Random Waypoint Mobility Model Generator. Per rendere il grafico leggibile non

vengono mostrate le variabili ed i metodi delle classi.

4.5 Indicatori statistici/Metriche

Nei seguenti paragrafi verrà illustrato come gli indicatori statistici/metriche (descritti

in 3.3) sono stati implementati nella piattaforma Gephi. I plugin che verranno visti,

sono stati tutti sviluppati seguendo la guida "How to write a metric " [29].

4.5.1 Weighted Clustering Coefficient e Strength

Viene calcolato per ogni nodo, il Weighted Clustering Coefficient e la strength (descritte

entrambe in 3.3.1). Di entrambi viene calcolata la distribuzione, mentre solo per il

Weighted Clustering Coefficient viene calcolato anche il valore medio. Le classi principali

sono:

WeightedClusterCoefficient: calcola per ciascun nodo il Weighted

Clustering Coefficient e la strength . Questi vengono salvati rispettivamente

Page 77: Validation and analysis of mobility models

77

in due SortedMap, cc_distribution e strength _distribution. La prima ha per chiave il

valore del Weighted Clustering Coefficient calcolato e per valore il numero di

nodi con tale valore. La seconda hash map ha per chiavi i valori della strength

e per valore il numero di nodi con tale valore. Viene utilizzata una terza hash

map per calcolare la distribuzione cumulativa della strength, definita come:

𝐹 𝑆𝑡𝑟𝑒𝑛𝑔𝑡𝑕 = 𝑓𝑟𝑎𝑧𝑖𝑜𝑛𝑒 𝑑𝑖 𝑛𝑜𝑑𝑖 𝑐𝑜𝑛 𝑆𝑡𝑟𝑒𝑛𝑔𝑡 𝑕

𝑀𝑎𝑥𝑆𝑡𝑟𝑒𝑛𝑔𝑡 𝑕 ≥ 𝑆𝑡𝑟𝑒𝑛𝑔𝑡𝑕;

utilizzando la libreria JFreeChart (http://www.jfree.org/jfreechart/) e la classe

ChartUtils (implementata per ottimizzare la visualizzazione dei grafici)

abbiamo costruito i grafici di tali distribuzioni.

WeightedClusterCoefficientBuilder: che implementa StatisticsBuilder,

regista la nuova metrica nella piattaforma Gephi.

WeightedClusterCoefficientUI: implementa l'interfaccia StatisticsUI. E' la

classe che fornisce i parametri, definiti nel pannello di configurazione,

all'istanza della statistica. Definisce anche il nome, categoria e posizione della

statistica nella GUI di scelta di Gephi

weightedClusterCoefficientPanel: implementa l'interfaccia grafica del

pannello di configurazione del parametro, che permette di scegliere la

tipologia di grafo (diretto o non diretto). Il valore viene passato alla variabile

isDirected della classe WeightedClusterCoefficient.

4.5.2 Flooding time

Simula il protocollo di flooding (descritto in 3.3.2), utilizzando la struttura dati ed i metodi

offerti dal DNF Dynamic (illustrato in 4.2), calcola la distribuzione tempo discreta,

che mostra come in media si propaga un informazione nella rete dinamica. Il plugin

è costituito dalle seguenti classi (mostrate in figura 4.7):

DnfFloodingTime: Dopo aver istanziato la struttura dati, che rappresenta il

grafico dinamico dei contatti, calcola il protocollo di flooding per il numero di

volte definito dalla variabile total_number_of_iteration. I risultati di ciascuna

iterazione vengono salvati in una SortedMap, Mean_Time_to_spread, che ha

come chiave il tempo in cui viene calcolata la diffusione del messaggio e

come valore un array contenente il numero di nodi infetti per ciascuna

iterazione. Grazie a questa struttura dati si possono generare, utilizzando la

Page 78: Validation and analysis of mobility models

78

libreria JFreeChart (http://www.jfree.org/jfreechart/) e la classe ChartUtils

(sviluppata per ottimizzare la visualizzazione dei grafici), un grafico che

mostra come varia nel tempo il numero medio di nodi che hanno ricevuto

l'informazione.

DnfFloodingTimeBuilder: che implementa StatisticsBuilder, regista la

nuova metrica nella piattaforma Gephi.

DnfFloodingTimeUI: implementa l'interfaccia StatisticsUI. E' la classe che

deve passare i parametri, definiti nel pannello di configurazione, all'istanza

della statistica. Stabilisce anche il nome, categoria e posizione della statistica

nella GUI di scelta di Gephi

DnfFloodingTimePanel: implementa l'interfaccia grafica del pannello di

configurazione. Tale pannello permette di scegliere quante volte iterare

l'algoritmo. Il valore viene passato alla variabile total_number_of_iteration della

classe DnfFloodingTime.

Fig.4.7: Viene mostrato il Class diagram delle principali classi che costituiscono il

Page 79: Validation and analysis of mobility models

79

plugin DNF Flooding Time. Viene mostrata solo la gerarchia delle classi omettendo

la definizione delle variabili e dei metodi.

4.5.3 Inter-contact time ed Intra-contact time

Questo plugin calcola e grafica la Inter ed Intra contact time distribution (definite in 3.3.2)

in tempi significativamente rapidi, grazie alla struttura dati costruita dal modulo DNF

Dynamic. Le principali classi sono:

Dnf_Inter_Intra_contactTime: La classe utilizza le seguenti strutture dati:

l'ArrayList arr_durate memorizza le durate di tutti i contatti in modo da

calcolarne facilmente la media; l'ArrayList arr_durate_interval memorizza le

durate di tutti gli intervalli di tempo che intercorrono tra il contatto di due

stessi nodi, in modo da calcolarne la media; una SortedMap duration_to_count,

che ha per chiave la durata di un contatto e per valore il numero di contatti

che hanno avuto tale durata; una SortedMap interval_duration_to_count, cha ha

per chiave il tempo dopo il quale due stessi nodi hanno un contatto e per

valore il numero di intervalli con tale durata; due SortedMap per calcolare la

distribuzione cumulativa di entrambe le grandezze, definita come:

𝐹 𝑑𝑢𝑟𝑎𝑡𝑎 = 𝑓𝑟𝑎𝑧𝑖𝑜𝑛𝑒 𝑑𝑖 𝑛𝑜𝑑𝑖 𝑐𝑜𝑛 𝐷𝑢𝑟𝑎𝑡𝑎

𝑀𝑎𝑥𝐷𝑢𝑟𝑎𝑡𝑎 ≥ 𝑑𝑢𝑟𝑎𝑡𝑎; uilizzando la

libreria JFreeChart (http://www.jfree.org/jfreechart/) e la classe ChartUtils (che

ottimizza la visualizzazione dei grafici) vengono costruiti i grafici di tali

distribuzioni.

Dnf_Inter_Intra_contactTimeBuilder: che implementa StatisticsBuilder,

regista la nuova metrica nella piattaforma Gephi.

Dnf_Inter_Intra_contactTimeUI: implementa l'interfaccia StatisticsUI. E'

la classe che, chiuso il pannello grafico, istanzia la statistica. Specifica anche il

nome, categoria e posizione della statistica nella GUI di scelta di Gephi

Dnf_Inter_intra_contactTimePanel: implementa l'interfaccia grafica, che

mostra la definizione della metrica.

Page 80: Validation and analysis of mobility models

80

4.5.4 Conditional probability Distribution of link's existence

Per calcolare le due distribuzioni di probabilità condizionata (descritte in

3.3.2), che variano al crescere rispettivamente dei rapporti 𝑃𝑒 ,1

𝑃𝑒 e

𝑃𝑒 ,0𝑃𝑒

, sono

state implementate le seguenti classi:

DnfConditionalProbabilityDistribution: nella classe sono utilizzate le

seguenti strutture dati: l'ArrayList arr_P_1To1 per calcolare la probabilità

congiunta 𝑃𝑒 ,1; l'ArrayList arr_P_1To0 per calcolare la probabilità congiunta

𝑃𝑒 ,0; due SortedMap, probability_distribution_1 e probability_distribution_0, per

calcolare per ciascun arco 𝑒 rispettivamente i rapporti, 𝑃𝑒 ,1

𝑃𝑒 e

𝑃𝑒 ,0𝑃𝑒

; due

SortedMap per calcolare la distribuzione cumulativa di entrambe le

grandezze. Le probabilità congiunte sono state calcolate utilizzando i metodi

forniti dal modulo DNF Dynamic, che permettono di conoscere in tempi

rapidi i presence schedule degli archi. Inoltre, tramite la libreria JFreeChart

(http://www.jfree.org/jfreechart/) e la classe per configurare i grafici, ChartUtils,

vengono costruiti i grafici delle due distribuzioni cumulative.

DnfConditionalProbabilityDistributionBuilder:

che implementa StatisticsBuilder, regista la nuova metrica nella piattaforma

Gephi.

DnfConditionalProbabilityDistributionUI: implementa l'interfaccia

StatisticsUI. E' la classe che istanzia la metrica e definisce nome, categoria,

posizione della statistica nella GUI di scelta di Gephi

4.5.5 Link's existence variability

Come abbiamo detto in 3.3.2, si ha bisogno di analizzare l'andamento medio della

probabilità 𝑃𝑒 , ∀𝑒 ∈ 𝐸, nelle varie epoche, in modo da verificare se 𝑃𝑒 ha o meno un

andamento stazionario. E' stata, dunque, implementata un plugin che utilizza il

modulo DNF Dynamic, le cui classi principali sono le seguenti:

DnfLinkExistenceVariability: vengono usate le seguenti strutture dati: una

SortedMap EpochToProb, che ha come chiave l'epoca e come valore la

rispettiva probabilità di occorrenza di un arco; una SortedMap

Page 81: Validation and analysis of mobility models

81

Mean_Epoch_to_Probs, che ha come chiave l'epoca e come valore un array

contenente la probabilità di esistenza di ciascun arco del grafo; un HashMap

indicies, che mappa gli archi a id diversi, da quelli assegnati in automatico da

Gephi; l'ArrayList di archi randomEdges, contiene l'insieme di venti archi scelti

in modo casuale (se scelto in fase di configurazione). In base alla scelta fatta

dall'utente nel pannello di configurazione (calcolo per ogni 𝑒 ∈ 𝐸, oppure per

l'arco più frequente, oppure per un campione di venti archi scelti

casualmente), viene costruito un grafico, che mostra l'andamento medio della

probabilità di occorrenza dei contatti nelle varie epoche. Questo grafico è

stato generato usando la libreria JFreeChart (http://www.jfree.org/jfreechart/) e la

classe per configurare i grafici, ChartUtils.

DnfLinkExistenceVariabilityBuilder: regisrta la statistica nella piattaforma

Gephi.

DnfLinkExistenceVariabilityUI: E' la classe che deve passare i parametri,

definiti nel pannello di configurazione, all'istanza della statistica. Inoltre

definisce nome, categoria, posizione della statistica nella GUI di scelta di

Gephi.

DnfLinkExistenceVariabilityPanel: implementa l'interfaccia grafica del

pannello di configurazione. Questo pannello permette di scegliere la

dimensione dell'epoca e scegliere su quali archi eseguire il calcolo: per ogni

𝑒 ∈ 𝐸, oppure per l'arco più frequente, oppure per un campione di venti

archi scelti casualmente. Questi valori verranno passati alla classe che

implementa la metrica, ossia DnfLinkExistenceVariability.

4.5.6 Pearson correlation matrix

Al fine di calcolare le Pearson correlation matrix (3.3.1) degli archi appartenenti

alle community di nodi, classificate secondo la modularity, oltre alla piattaforma Gephi,

viene utilizzato R (http://www.r-project.org/), un linguaggio e un ambiente per calcolare

e graficare statistiche. Il plugin genera per ogni matrice 10 × 10 un file CSV

(Comma Separated Value, di cui è possibile vedere un esempio nel listato 4.1), dove

ciascuna riga contiene i pearson coefficient (separati da virgola) delle rispettive coppie di

archi.

Page 82: Validation and analysis of mobility models

82

Se non esiste, viene creata una sottocartella nella directory principale dei

plugin, chiamata PearsonCorrelationFile, dove vengono generati i file CSV delle matrici,

uno script R, che esegue il plot delle matrici di correlazione, e una sotto-directory Img

che conterrà tali plot. Terminato il calcolo della metrica, lo script R andrà eseguito

nel suo ambiente, in modo da ottenere i grafici. Per un corretto utilizzo della metrica

viene precisato che, ogni volta che viene eseguita, il contenuto della directory

PearsonCorrelationFile viene cancellato, pertanto si consiglia vivamente di copiarlo in

un'altra cartella se si ha bisogno di tenere memoria dei risultati ottenuti.

Le principali classi che costituiscono il plugin sono:

DnfPearsonCorrelationMatrix: classe che implementa la metrica. Utilizza le

seguenti strutture dati: due array, presenceSchedule_1 e presenceSchedule_2, che

contengono i presence schedule (calcolati con il modulo DNF Dynamic) delle

coppie di archi per cui viene calcolato il Pearson correlation coefficient; la matrice

PearsonCorrelationMatrix, che memorizza la matrice di correlazione di ciascuna

community, individuata tramite modularity; Una HashMap community_nodes,

che ha per chiave l'id della community e per valore la lista degli id dei nodi

che vi appartengono; una HashMap edges_indicies, che ha per chiave un

oggetto di tipo arco e come valore il suo id associato, in modo da popolare la

matrice di correlazione; una SortedMap matrixID_edgeID, che ha per chiave

e per valore l'id degli archi che fanno parte della matrice, in modo da avere

una corrispondenza tra gli id degli archi e il nome delle colonne della matrice.

L'HashMap community_nodes è stata popolata classificando i nodi tramite

Modularity, metrica statica già implementata in Gephi, che viene richiamata e

configurata come mostrato nel listato 4.2.

PearsonCorrelation: classe statica che fornisce un metodo chiamato

getPearsonCorrelation. Questo metodo riceve come parametro due insiemi di

numeri, rappresentati da due array di tipo double e restituisce il corrispettivo

coefficiente di Pearson.

DnfPearsonCorrelationMatrixBuilder: regista la metrica nella piattaforma

Gephi.

DnfPearsonCorrelationMatrixUI: definisce nome, categoria, posizione

della statistica nella GUI di scelta di Gephi ed istanzia la classe che

implementa la metrica, ossia DnfPearsonCorrelationMatrix.

Page 83: Validation and analysis of mobility models

83

"1435","1157","1144","108"

"1435",1.0000000000000002,-0.004644311277613875,-0.004664103902419727,-0.004238661614100853

"1157",-0.004644311277613875,1.0000000000000002,0.024809329925701857,-0.00552389267393271

"1144",-0.004664103902419727,0.024809329925701857,1.0000000000000002,-0.005547433803850121

"108",-0.004238661614100853,-0.00552389267393271,-0.005547433803850121,1.0,-0.005862655269643211

Listato 4.1 Mostra un estratto di una matrice di correlazione in formato csv.

Modularity mod = new Modularity();

mod.setRandom(true);

mod.setUseWeight(true);

mod.setResolution(1.0);

mod.execute(graphModel, attributeModel);

Listato 4.2 Mostra un pezzo di codice estratto dalla classe DnfPearsonCorrelationMatrix, dove viene istanziata e configurata la metrica statica Modularity. Passando alla metrica il valore true al parametro random e il valore 1.0 al parametro resolution, si ottiene la massima precisione possibile nel classificare i nodi del grafo.

4.6 Ulteriori script e riferimenti

Dato che Gephi non permette di graficare i risultati di una singola metrica calcolata

su grafi differenti, oltre ai moduli software che sono stati descritti nei precedenti

paragrafi, è stato implementato un semplice script ausiliario detto MultipleChart, che

offre la possibilità di graficare in un unico time series chart più dataset.

Tramite riga di comando è possibile decidere il tipo di grafico che si vuole ottenere

(esiste un tipo per ogni metrica che è stata implementata), la scala (normale o

logaritmica a base 10), ed i file da cui estrarre i valori da graficare (che sono generati e

salvati automaticamente ogni volta che si esegue una metrica in Gephi, nella cartella

principale dei plugin chiamata savedata). Utilizzando le classi fornite dalla libreria

JFreeChart (http://www.jfree.org/jfreechart/) vengono generati i grafici che possono

essere ridimensionati e successivamente salvati.

Per chi fosse interessato, tutto il materiale sviluppato e descritto in questo capitolo è

disponibile su richiesta, scrivendo al seguente indirizzo mail: [email protected]

Page 84: Validation and analysis of mobility models

84

Capitolo 5

Validazione sperimentale

dei modelli di mobilità

In questo capitolo verra illustrata l'analisi che condotta al fine di verificare

quanto i dati generati dai modelli di mobilità siano vicini o lontani dai dati ottenuti da

due esperimenti che abbiamo compiuto in contesti reali.

In questi esperimenti (illustrati nel paragrafo 1.2), chiamati SocialDIS e

NeonMACRO, sono stati collezionati attraverso una piattaforma RFID-based i

contatti di prossimità avvenuti tra le persone che hanno partecipato. I dataset sintetici

sono stati generati a partire dai modelli di mobilità Random Waypoint (RWP) e

Truncated Lévy Walk (TLW). Tali modelli sono stati scelti scartando gli altri per i

seguenti motivi:

1. Nel paragrafo 2.1.1 si osserva che il Random Walk Mobility Model si basa sul

moto browniano, dunque genera user trace poco realistiche, dove il

movimento degli individui è dettato solo dal caso.

2. Il Random Waypoint Mobility Model è quello più usato per generare schemi di

mobilità realistici per individui che si muovono in particolari contesti, come

ad esempio, conferenze o visite ad un museo [13]. Pertanto risulta

ragionevole adottarlo.

3. Il Random Direction Mobility Model non è adatto perché, in tale modello, le

persone si fermano ed attendono un determinato tempo prima di ripartire,

solo ai confini dell'area di simulazione. La versione modificata (illustrata nel

paragrafo 2.1.3) che evita questo difetto, se considera anche il tempo di

pausa, è identica al Random Waypoint Mobility Model, dunque è stato deciso di

scartare il suo utilizzo.

4. Il Truncated Lévy Walk Mobility Model è stato adottato perché, come il RWP, è

uno dei modelli più utilizzati per simulare i movimenti di dispositivi mobili

Page 85: Validation and analysis of mobility models

85

in reti mobili ad hoc e perché le tracce di mobilità generate risultano essere

più realistiche di quelle ottenute dal modello RW.

5. Il Boudless Simulation Area Mobility Model non è adatto allo scopo perché, nei

casi reali che abbiamo tracciato, le persone non possono superare i confini

dell'area in cui si muovono attraversando in modo assolutamente irrealistico

le mura e riapparire nel punto opposto dell'area.

6. Il Gauss-Markov Mobility Model, se propriamente configurato, fornisce dei

pattern di mobilità realistici, ma ha lo stesso problema del Random Direction

Mobility Model che abbiamo definito più sopra.

7. Anche se la versione probabilistica del Random Walk Mobility Model fornisce

delle user trace che si avvicinano molto a quelle del mondo reale (come visto

in figura 2.7), risulta difficoltoso scegliere i giusti parametri per la matrice di

probabilità, perché per settarli si ha bisogno di informazioni di cui al

momento non disponiamo.

8. Il Weighted Waypoint Mobility Model è una versione del RWP che genera tracce

di mobilità tipicamente più accurate, le quali tengono conto del fatto che le

persone non scelgono in modo casuale dove dirigersi. I nodi mobili

decidono dove andare tramite una matrice di probabilità tempo variante [64].

Come per la versione probabilistica del modello RW, risulta difficile

assegnare le giuste probabilità a tale matrice, in quanto bisogna conoscere ed

analizzare in modo approfondito delle user trace molto più dettagliate,

rispetto a quelle ottenute dai casi reali che sono stati studiati.

Nei due paragrafi di questo capitolo verranno illustrate le seguenti analisi:

Si confronteranno statisticamente le tracce di contatti collezionate a partire

dagli esperimenti SocialDIS e NeonMACRO, con quelle ottenute a partire dai

modelli di mobilità nella loro versione originale;

Si analizzerà il comportamento dei due modelli, nel caso in cui venga

aumentata, di uno specifico fattore, la dimensione dell'area di simulazione;

Page 86: Validation and analysis of mobility models

86

5.1 Comparazione con i dati dell'esperimento SocialDIS

5.1.1 Modelli nella loro formulazione originaria

L'esperimento SocialDIS si è svolto in un'area rettangolare di circa 90𝑚 𝑥 30𝑚,

dove, per circa quattro giorni, sono state catturate le tracce dei contatti di 116

studenti. Come si può osservare dalla figura 1.2, i lettori RFID sono stati distribuiti

nelle aule, nella segreteria, nella sala studio, nella presidenza, nel dispaccio (stanza

dove vengono venduti cibi e bevande agli studenti), ma non sono stati installati nel

cortile, situato nella zona centrale del primo piano dell'edificio. Dunque, l'area dove

vengono registrate le interazioni tra studenti assume una forma a "ferro di cavallo".

Quest'area, per essere compatibile con i parametri 𝑋𝑚𝑎𝑥 e 𝑌𝑚𝑎𝑥 , da fornire ai

modelli di mobilità, è stata approssimata ad un rettangolo di circa 133𝑚 𝑥 11𝑚. Per

tentare di simulare le interazioni avvenute in SocialDIS, nei modelli di mobilità sono

stati usati 116 nodi con un raggio di visibilità di 1𝑚, disposti in un'area rettangolare

di 133𝑚 𝑥 11𝑚 ed sono stati configurati i parametri di lunghezza dei percorsi,

velocità dei nodi e tempo di pausa, per produrre dataset che possano avere delle

caratteristiche simili a quelle dello specifico scenario considerato. Per il RW model

viene assegnata ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s.

Per il TLW model, le flight lengths (𝑙) e i waiting times (𝑡) seguono le

truncated power laws 𝑝 𝑙 ~ 𝑙 − 1+𝛼 , 𝑙 < 𝑙𝑚𝑎𝑥 e 𝜓 𝑡 ~𝑡− 1+𝛽 , 0 < 𝑡 < 𝑡𝑚𝑎𝑥 , con

𝛼 = 0.8, 𝛽 = 0.3, 𝑙𝑚𝑎𝑥 = 133, 𝑡𝑚𝑎𝑥 = 3600𝑠 (1𝑕), con angoli di rotazione presi

da una distribuzione uniforme e velocità dei nodi proporzionale alle flight lengths.

Per entrambi i modelli simulazione viene è stata fatta durare 42200𝑠 (12𝑕), ossia

per la massima quantità di tempo che uno studente può trascorrere in facoltà durante

una singola giornata.

Allo stesso modo, sono stati considerati solamente i primi 42200𝑠 (12𝑕)

dell'evoluzione del Contact Graph generato nell'esperimento SocialDIS. Durante

l'importazione di questo grafo, la soglia entro la quale una disconnessione non viene

considerata come interruzione del contatto (parametro configurabile nel DNF

Importer) è stata fissata a tre. Nelle tabelle 5.1.1-1 e 5.1.1-2 vengono mostrate le

statistiche calcolate sui tre grafi aggregati che non considerano i Presence schedules

associati a ciascun nodo/arco e dove il peso di ciascun arco è pari alla sua frequenza.

Page 87: Validation and analysis of mobility models

87

Da essi si nota che nei dataset sintetici si presentano un numero maggiore di

interazioni tra individui distinti rispetto allo specifico caso reale e che i Contact Graph,

generati secondo i modelli RWP e TLW, sono significativamente densi e coesi. In

figura 5.1.1.1, comparando le Strength distribution dei due dataset sintetici con quella

del dataset SocialDIS, si osserva che non si presentano somiglianze: la strength dei

nodi, che si muovono secondo i modelli di mobilità, è maggiore perché essi

interagiscono mediamente con un numero superiore di vicini.

Dataset # Edges Average

degree

Average

strength

Graph

density

SocialDIS 171 3,28 0,008 0,03

TLW 5.405 93,19 0,952 0,81

RWP 6.617 114 0,919 0,99

Tabella 5.1.1-1: Vengono mostrati: il numero di archi, il degree medio, il degree

medio pesato (o strength ) e la densità del grafo. SocialDIS è il dataset ottenuto

dall'esperimento sociale reale, mentre TLW ed RWP sono synthetic dataset generati

rispettivamente simulando il Random Waypoint Mobility Model e il Truncated Lévy Walk

Mobility Model.

Dataset Average Clustering

Coefficient

Average Weighted

Clustering Coefficient

SocialDIS 0,435 0,297

TLW 0,861 0,867

RWP 0,992 0,992

Tabella 5.1.1-2: Cluster coefficient medio (pesato e non pesato), calcolato su tre

dataset: SocialDIS è il dataset ottenuto dall'esperimento sociale reale, mentre TLW ed

RWP sono synthetic dataset generati rispettivamente simulando il Random Waypoint e

il Truncated Lévy Walk models.

Page 88: Validation and analysis of mobility models

88

Fig. 5.1.1.1: Node Strength distribution con F(Strength) = frazione di nodi con

(Strength/Max Strength) >= Strength. Comparazione della distribuzione di tre

dataset, uno collezionato nell'esperimento SocialDIS e due generati dai modelli di

mobilità, entrambi con 116 nodi con un contact detection range di 1𝑚: Per il RW model

abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s, e il

TLW model, le flight lengths e i pause times seguono le truncated power laws con

𝛼 = 0.8, 𝛽 = 0.3.

Pertanto risulta evidente che i due modelli di mobilità falliscono nel riprodurre le

proprietà strutturali del grafo dinamico dei contatti in forma aggregata. Vengono

analizzate ora le proprietà temporali delle interazioni sociali. Ogni contatto che

avviene tra due individui è caratterizzato dalla sua durata (detta Intra Contact Time) e

da quanto tempo trascorre prima che esso riaccada (detto Inter Contact Time).

Nelle figure 5.1.1.2 e 5.1.1.3 vengono comparate rispettivamente la Inter

Contact Time distribution e la Intra Contact Time distribution, calcolate sui i dati raccolti

durante l'esperimento SocialDIS e su quelli ottenuti a partire dai modelli di mobilità

RWP e TLW. La Intra Contact Time distribution e la Inter Contact Time distribution, in tutti

e tre i casi, ha, come ci si aspettava, un andamento di tipo power law.

Dalla figura 5.1.1.2, si nota che l'Inter contact time distribution del SocialDIS ha

un andamento e una forma simile a quella relativa al modello RWP, presentando però

Page 89: Validation and analysis of mobility models

89

valori totalmente differenti e un andamento diverso rispetto alla distribuzione relativa

al modello TLW.

Fig. 5.1.1.2: Comparazione dell' Inter Contact Time distribution di tre dataset, uno

collezionato nell'esperimento SocialDIS e due generati dai modelli di mobilità,

entrambi con 116 nodi con un contact detection range di 1𝑚: Per il RW model abbiamo

assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s, e il TLW

model, le flight lengths e i pause times seguono le truncated power laws con 𝛼 = 0.8,

𝛽 = 0.3.

In figura 5.1.1.3 viene mostrato che la Intra contact time distribution del

SocialDIS ha un andamento simile a quella del modello RWP, mentre è discordante

rispetto a quella del modello TLW. Questi due fatti vengono suffragati dai dati

mostrati nella tabella 5.1.1-3, dove si vede che entrambi i modelli di mobilità, rispetto

ai dati del SocialDIS, presentano un numero elevato di contatti mediamente di lunga

durata e un numero minore di intervalli mediamente di maggiore durata, dunque ci si

accorge che i contatti tra individui sono frequenti, ma che lo stesso contatto tra due

individui si ripresenta sporadicamente.

Page 90: Validation and analysis of mobility models

90

Tali modelli non considerano un comportamento tipico degli studenti,

ovvero che essi tendono a ricomunicare frequentemente con i propri amici e a

comunicare di rado con studenti che non conoscono.

Dataset Average Intra-

contact Time

(seconds)

Average Inter-

contact Time

(seconds)

# Contact # Interval

SocialDIS 3,0 129,9 5.345 3.758

TLW 42,2 1.731,4 55.213 1.347

RWP 68,9 6.804,9 32.600 474

Tabella 5.1.1-3: La tabella mostra la durata media di un contatto tra due nodi e

dell'intervallo di tempo che intercorre tra due successivi contatti tra gli stessi nodi, il

numero di contatti e il numero di intervalli. SocialDIS è il dataset ottenuto

dall'esperimento sociale reale, mentre TLW ed RWP sono synthetic dataset generati

rispettivamente simulando il Random Waypoint e il Truncated Lévy Walk Model.

Fig. 5.1.1.3: Comparazione dell' Intra Contact Time distribution di tre dataset, uno

collezionato nell'esperimento SocialDIS e due generati dai modelli di mobilità,

entrambi con 116 nodi con un contact detection range di 1𝑚: Per il RW model abbiamo

Page 91: Validation and analysis of mobility models

91

assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s, e il TLW

model, le flight lengths e i pause times seguono le truncated power laws con 𝛼 = 0.8,

𝛽 = 0.3.

Utilizzando reti dinamiche di contatti, come quella ottenuta dall'esperimento

SocialDIS, e quelle fornite dai modelli di mobilità RWP e TLW, è possibile simulare

il processo di diffusione di un'informazione. E' stato simulato tale processo diffusivo

calcolando la metrica Flooding time (definita in 3.3.2), in modo da scoprire che ruolo

assume la topologia dinamica della rete sulla diffusione di un'informazione.

In figura 5.1.1.4 viene mostrato l'andamento medio di 20 esecuzioni di questa

metrica nel caso SocialDIS considerando tutta la durata dell'esperimento, ossia circa

370000 𝑠 (4 𝑔𝑖𝑜𝑟𝑛𝑖). Si osservano delle rapide di diffusioni del messaggio dopo

circa 22000 secondi (che corrispondono alle 15:30 del giorno 17/10/2011), dopo

circa 99000 secondi (che corrispondono alle 12:55 del giorno 18/10/2011) e dopo

circa 180000 secondi, (che corrispondono alle 11:25 del giorno 19/10/2011).

Fig. 5.1.1.4: Distribuzione tempo discreta che mostra come in media si propaga un

informazione nella rete dinamica di contatti ottenuta dall'esperimento SocialDIS.

Page 92: Validation and analysis of mobility models

92

Pertanto, sembrerebbe che questi siano gli orari in cui le interazioni tra

studenti risultano più probabili. Successivamente è stato calcolato il flooding time per le

reti di contatti dinamiche ottenute dai modelli di mobilità. A causa dell'elevato

numero di interazioni che avvengono in tali modelli, risulta chiaro dalla figura 5.1.1.5

e dallo studio condotto in [26], che i due modelli falliscono nel rappresentare il

comportamento diffusivo del caso reale.

Fig. 5.1.1.5: Comparazione della Flooding time distribution di tre dataset, uno

collezionato nell'esperimento SocialDIS e due generati a partire dai modelli di

mobilità, entrambi con 116 nodi con un contact detection range di 1𝑚: Per il RW model

abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s, e il

TLW model, le flight lengths e i pause times seguono le truncated power laws con

𝛼 = 0.8, 𝛽 = 0.3.

Riscontrato che i modelli di mobilità non sono stati efficaci nel simulare

realisticamente il fenomeno diffusivo accaduto in SocialDIS, viene verificato invece

se esistono delle correlazioni statistiche tra i contatti tracciati a partire dal caso reale e

quelli ottenuti a partire i modelli di mobilità. L'andamento delle Conditional probability

Page 93: Validation and analysis of mobility models

93

Distribution of link's existence (definite nel paragrafo 3.3.2), illustrate nelle figure 5.1.1.6

e 5.1.1.7, mostra il fatto che esiste una leggera similarità tra l'andamento della

distribuzione del SocialDIS e quello della distribuzione del modello RW, per quanto

concerne la probabilità condizionata 𝑃𝑒 ,1, ossia la probabilità che un contatto,

rappresentato dall'arco 𝑒, esista in un determinato tempo, sapendo che è esistito al

tempo immediatamente precedente.

Osservando l'andamento delle due Conditional probability Distribution of link's

existence nel caso SocialDIS, si scopre che se un determinato contatto avviene al

tempo 𝑡 − 1 con alta probabilità lo stesso contatto avverrà al tempo 𝑡, mentre se il

contatto non avviene al tempo 𝑡 − 1 con alta probabilità questo non si ripeterà al

tempo 𝑡.

Questo risultato induce a pensare che potrebbe esistere una dipendenza

temporale che ha caratteristiche di tipo markoviano.

Fig. 5.1.1.6: Conditional Probability distribution dove F(𝑥) = percentuale di archi con

𝑃𝑒,0/Pe ≥ x. Comparazione della Conditional Probability distribution di tre dataset,

uno collezionato nell'esperimento SocialDIS e due generati dai modelli di mobilità,

entrambi con 116 nodi con un contact detection range di 1𝑚: Per il Random Waypoint

model abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 1.0

Page 94: Validation and analysis of mobility models

94

m/s, e il Truncated Lévy Walk model, le flight lengths e i pause times seguono le

truncated power laws con 𝛼 = 0.8, 𝛽 = 0.3.

Fig. 5.1.1.7: Conditional Probability Distribution dove dove F(𝑥) = percentuale di

archi con 𝑃𝑒 ,1/Pe ≥ x. Comparazione della Conditional Probability distribution di tre

dataset, uno collezionato nell'esperimento SocialDIS e due generati dai modelli di

mobilità, entrambi con 116 nodi con un contact detection range di 1𝑚: Per il Random

Waypoint model abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01

e 0.8 m/s, e il Truncated Lévy Walk model, le flight lengths e i pause times seguono le

truncated power laws con 𝛼 = 0.8, 𝛽 = 0.3.

Come ci si aspetta, sulla base dei risultati ottenuti nell'analisi dei contact time, in figura

5.1.1.6 si nota che entrambi i modelli di mobilità sottostimano la probabilità 𝑃𝑒 ,0, vale

a dire che se un contatto non avviene al tempo 𝑡 − 1 quasi certamente questo non si

ripeterà al tempo 𝑡.

Invece, in figura 5.1.1.7 si osserva che la probabilità 𝑃𝑒,1 viene sovrastimata

perché i mobility models presentano un maggiore numero di contatti, che hanno un

alta probabilità di esistere al tempo 𝑡 sapendo che sono esistiti anche al tempo 𝑡 − 1.

Questo risultato è concorde a quelli precedenti per il fatto che i modelli RWP e TLW

generano comunicazioni tra stessi individui che si ripresentano raramente e che

Page 95: Validation and analysis of mobility models

95

mediamente durano di più, rispetto a quelle generate nel caso SocialDIS. Pertanto il

presence schedule di un arco (o contatto) conterrà lunghi momenti in cui esso esiste,

seguiti da lunghi momenti in cui esso non esiste.

Fig. 5.1.1.8: Distribuzione della probabilità che un arco esista o meno in una

determinata epoca costituita da 2000 secondi. La distribuzione è stata calcolata su

tutti gli archi del grafo.

Nel calcolo della Conditional probability Distribution of link's existence, vengono stimate le

probabilità 𝑃𝑒 ,1 e 𝑃𝑒 ,0 supponendo che 𝑃𝑒 sia costante nel tempo. In realtà questa

probabilità non è detto che sia costante, dunque si vuole misurare la sua variabilità

nel tempo utilizzando la metrica Link's existence variability (definita nel paragrafo 3.3.2).

Page 96: Validation and analysis of mobility models

96

Fig. 5.1.1.9: Distribuzione della probabilità che un arco esista o meno in una

determinata epoca costituita da 2000 secondi. La distribuzione è stata calcolata

sull'arco più frequente del grafo.

Fig. 5.1.1.10: Distribuzione della probabilità che un arco esista o meno in una

determinata epoca costituita da 2000 secondi. La distribuzione è stata calcolata su un

sottoinsieme di 20 archi scelti casualmente.

Page 97: Validation and analysis of mobility models

97

Con questa metrica viene calcolata la probabilità 𝑃𝑒 ,𝑖 , con 𝑖 ∈ 1, … , 𝑁𝐸 (dove 𝑁𝐸

è il numero di epoche costituite ognuna da 2000 secondi), per ciascuno dei tre

dataset, prima per ogni arco 𝑒 (figura 5.1.1.8), poi per l'arco più frequente (figura

5.1.1.9) ed infine per un campione di venti archi scelti casualmente (figura 5.1.1.10).

Dalla figura 5.1.1.8 si nota che in media la probabilità che un arco esista o meno in

una determinata epoca costituita da 2000 secondi, calcolata su tutti gli archi del grafo,

risulta essere con buona approssimazione stazionaria.

Questo risultato mostra che la probabilità di esistenza di un arco non varia

molto nel tempo, rafforzando così la validità delle stime effettuate nelle Conditional

Probability Distribution. Si continua a indagare sulle dipendenze temporali che possono

esistere nelle comunicazioni tra persone, verificando se esiste o meno una

correlazione tra i contatti che avvengono tra coppie distinte d'individui, ossia se

l'esistenza di un contatto ad un determinato tempo 𝑡 sia correlata o meno

all'esistenza di uno o più contatti avvenuti nello stesso tempo.

Per effettuare tale verifica viene in aiuto la Pearson Correlation Matrix (definita

nel Capitolo 3). Da ogni community, classificata secondo la modularity, vengono

estrapolati i primi 10 archi con peso più alto (ovvero quelli più frequenti), per i quali

viene calcolata la matrice di correlazione. La modularity tende a classificare in grandi

community i nodi che hanno comunicato poco frequentemente con molti nodi, in

piccole community i nodi che hanno comunicato frequentemente con un numero

ristretto di nodi e in community di dimensione uno ciascun nodo isolato.

Nel grafo mostrato in figura 5.1.1.14, si osserva che nel caso SocialDIS

vengono generate tante piccole community, mentre nei grafi relativi ai modelli di

mobilità mostrati in figura 5.1.1.15, vengono generate poche community, di cui una

molto grande. In particolare, nel modello TLW i nodi vengono classificati in soli tre

gruppi, di cui uno li contiene quasi tutti.

Tale risultato è in linea con il fatto che, rispetto al contesto del SocialDIS, nei

modelli di mobilità si presentano un elevato numero di contatti tra tutti gli individui,

indipendentemente dal fatto che essi abbiano o meno un legame di amicizia. Nel

Contact Graph aggregato, creato a partire dal modello TLW, i nodi vengono classificati

in una community dalle dimensioni maggiori, rispetto al modello RWP, perché nel

Page 98: Validation and analysis of mobility models

98

modello TLW avvengono un maggior numero di contatti tra nodi che difficilmente si

reincontrano, dato che questi seguono traiettorie non dettate puramente dal caso.

Se si confrontano le matrici di correlazione di ciascun gruppo di nodi, mostrate nelle

figure 5.1.1.11, 5.1.1.12 e 5.1.1.13, ci si accorge che nel caso reale le correlazioni tra

contatti distinti sono minime, mentre nel caso simulato l'esistenza di un contatto in

un determinato tempo risulta essere correlata temporalmente a quella di altri contatti

avvenuti contemporaneamente.

Fig. 5.1.1.11: Vengono mostrate le matrici di correlazione aventi il maggior numero

di correlazioni tra archi appartenenti alla rispettiva community, classificate calcolando

la Modularity sul grafo aggregato, ottenuto dal dataset SocialDIS. L'intensità del giallo

indica quanto l'esistenza di due archi (o contatti) è correlata nel tempo. Maggiore è

l'intensità, maggiore è la correlazione temporale tra i due archi.

Page 99: Validation and analysis of mobility models

99

Fig. 5.1.1.12: Vengono mostrate le matrici di correlazione aventi il maggior numero

di correlazioni tra archi appartenenti alla rispettiva community, classificate calcolando

la Modularity sul grafo aggregato, ottenuto simulando il Random Waypoint model.

L'intensità del giallo indica quanto l'esistenza di due archi (o contatti) è correlata nel

tempo. Maggiore è l'intensità, maggiore è la correlazione temporale tra i due archi.

Nei dataset sintetici, collezionati a partire dai modelli di mobilità, la probabilità che

coppie di contatti avvengano nello stesso istante temporale è alta perché in ciascuna

community avvengono moltissimi contatti. Inoltre si nota che in tutti e tre i casi, le

community costituite da un minor numero di nodi presentano un numero maggiore

di correlazioni temporali tra contatti.

Page 100: Validation and analysis of mobility models

100

Fig. 5.1.1.13: Vengono mostrate le matrici di correlazione aventi il maggior numero

di correlazioni tra archi appartenenti alla rispettiva community, classificate calcolando

la Modularity sul grafo aggregato, ottenuto simulando il Truncated Lévy Walk model.

L'intensità del giallo indica quanto l'esistenza di due archi (o contatti) è correlata nel

tempo. Maggiore è l'intensità, maggiore è la correlazione temporale tra i due archi.

Questo accade perché, come è stato già spiegato, nei cluster più piccoli sono presenti

i nodi che più frequentemente si sono re-incontrati.

Page 101: Validation and analysis of mobility models

101

Nella valutazione delle matrici di correlazione forse bisognerebbe tener conto

del fatto che nell'esperimento SocialDIS i reader RFID non sono stati collocati nelle

zone ricreative del primo piano del dipartimento, come il cortile o l'area dove si

trovano i distributori automatici di cibi e bevande. Inoltre il numero di partecipanti è

stato veramente esiguo e questo potrebbe mascherare quali siano stati i reali pattern

di comunicazione tra studenti.

Per tali motivi, forse si dovrebbero paragonare le matrici di correlazione,

dopo aver ricondotto l'esperimento in modo più robusto, permettendo così di

analizzare matrici di correlazioni più accurate.

Confrontando i risultati delle varie metriche, risulta chiaro che i mobility models

RWP e TLW, nella loro versione originale, producono tracce di contatti che

statisticamente non presentano somiglianze rispetto ai dati reali raccolti

nell'esperimento SocialDIS e che l'esistenza di ciascun contatto sembra presentare

delle dipendenze temporali che possono essere riconducibili a un processo stocastico

Markoviano.

Page 102: Validation and analysis of mobility models

102

Fig. 5.1.1.14: Mostra le community ottenute calcolando la Modularity sul grafo

aggregato dell'esperimento SocialDIS.

Fig. 5.1.1.15: Il grafo a sinistra mostra mostrate le community ottenute calcolando la

Modularity sul grafo aggregato ottenuto simulando il RW model, mentre il grafo a

destra mostra le community ottenute calcolando la Modularity sul grafo aggregato

ottenuto simulando il TLW model. I numeri sono gli identificativi delle community.

Il comportamento degli individui nel caso SocialDIS si discosta nettamente rispetto a

quello riprodotto dai due modelli di mobilità: gli studenti tipicamente spendono

grandi quantità di tempo in laboratori, in aule dedicate allo studio e in aule dove

seguono lezioni, entrano ed escono dalla facoltà in orari differenti, tendono a

comunicare più frequentemente con i loro amici e seguono dei percorsi dettati dagli

impegni che si sono programmati di assolvere durante la giornata. Nei modelli di

mobilità che sono stati usati, invece, le persone rimangono sempre nell'area di

simulazione, sporadicamente ricomunicano una seconda volta con la stessa persona e

seguono percorsi dettati dal caso (nel caso RWP) o che seguono una Lévy walk (nel

caso TLW).

Inoltre la validità del modello di mobilità TLW è stata verificata in ambienti

outdoor [20] come campus universitari, metropolitane e parchi naturali, dove le

persone si muovono in aree estese (nell'ordine del km), mentre nell'esperimento che

abbiamo condotto gli studenti si muovono in aree relativamente piccole e ricche di

Page 103: Validation and analysis of mobility models

103

ostacoli. Forse anche il modello RWP, come è stato visto dall'analisi temporale, tende

a generare una quantità di interazioni poco realistica se applicato ad aree esigue.

Alla luce di queste considerazioni, nei prossimi due sotto-paragrafi si analizzerà il

comportamento dei due modelli, nel caso in cui aumentiamo di un fattore 10 le

dimensioni dell'area di simulazione.

5.1.2 Modelli con aree di simulazione scalate di un fattore 10

L'efficacia del TLW Mobility Model, nel generare user trace statisticamente

realistiche, è stata collaudata confrontando le tracce di mobilità da essi generate con

quelle collezionate in esperimenti condotti in ambienti di tipo outdoor, dove le

persone si spostano ed interagiscono in luoghi estesi. Considerando aree di grandi

dimensioni, il TLW ed il RWP Mobility Model potrebbero forse simulare in modo

più accurato gli schemi di mobilità degli individui, mostrati nell'esperimento

SocialDIS, dove le interazioni tra studenti avvengono in aree relativamente ridotte.

Verrà analizzato ora se aumentare di un fattore 10 le dimensioni dell'area di

simulazione di entrambi i modelli, aumenti le similarità statistiche con i dati reali.

Nelle simulazioni vengono usati 116 nodi con un raggio di visibilità di 1𝑚, distribuiti

in un'area rettangolare di 1330𝑚 𝑥 110𝑚, e vengono configurati i parametri di

lunghezza dei percorsi, velocità dei nodi e tempo di pausa, con gli stessi valori

dell'analisi precedente.

Per il RW model viene assegnato ai nodi velocità uniformemente distribuite tra

0.01 e 0.8 m/s. Per il TLW model, le flight lengths (𝑙) e i waiting times (𝑡) seguono le

truncated power laws 𝑝 𝑙 ~ 𝑙 − 1+𝛼 , 𝑙 < 𝑙𝑚𝑎𝑥 e 𝜓 𝑡 ~𝑡− 1+𝛽 , 0 < 𝑡 < 𝑡𝑚𝑎𝑥 , con

𝛼 = 0.8, 𝛽 = 0.3, 𝑙𝑚𝑎𝑥 = 133, 𝑡𝑚𝑎𝑥 = 3600𝑠 (1𝑕) e la durata della simulazione è

sempre pari a 42200𝑠 (12𝑕). Nelle tabelle 5.1.2-1 e 5.1.2-2 si osserva che, rispetto

all'analisi precedente, le proprietà strutturali del Contact Graph in forma aggregata,

generato a partire dal modello TLW, tendono ad avvicinarsi a quelle del grafo dei

contatti aggregato relativo all'esperimento SocialDIS, mentre il grafo generato

modello RWP continua ad essere molto impreciso.

In particolare, il modello TLW è quello che presenta maggiori affinità per

quanto riguarda la frequenza media delle interazioni che un nodo mobile ha con i

propri vicini, mentre il modello RWP è quello che rappresenta meglio la formazione

Page 104: Validation and analysis of mobility models

104

dei cluster. Entrambi i modelli generano tracce di contatti aggregate molto più dense

del caso empirico.

Comparando le Strength distribution (mostrate in figura 5.1.2.1) dei due dataset

sintetici con quella del dataset empirico, si nota che l'andamento delle distribuzioni

relative ai due modelli di mobilità sono assolutamente diverse da quella relativa a

SocialDIS.

I modelli sono ancora ben lontani dal riprodurre fedelmente le proprietà strutturali

della Dynamic Contact Network aggregata del dataset empirico, ma si discostano da esse

in modo significativamente ridotto rispetto al caso precedentemente illustrato.

Dataset # Edges Average

degree

Average

strength

Graph

density

SocialDIS 171 3,28 0,008 0,03

TLW 476 10,27 0,007 0,08

RWP 1.600 27,58 0,010 0,24

Tabella 5.1.2-1: Vengono mostrati: il numero di archi, il degree medio, il degree

medio pesato (o strength ) e la densità del grafo. SocialDIS è il dataset ottenuto

dall'esperimento reale, mentre TLW ed RWP sono synthetic dataset generati

rispettivamente simulando il Random Waypoint Mobility Model e il Truncated Lévy Walk

Mobility Model, entrambi con l'area di simulazione scalata di un fattore 10.

Dataset Average Clustering

Coefficient

Average Weighted

Clustering Coefficient

SocialDIS 0,435 0,297

TLW 0,245 0,234

RWP 0,26 0,257

Tabella 5.1.2-2: Cluster coefficient medio (pesato e non pesato), calcolato su tre

dataset: SocialDIS è il dataset ottenuto dall'esperimento reale, mentre TLW ed RWP

sono synthetic dataset generati rispettivamente simulando il Random Waypoint e il

Truncated Lévy Walk models, entrambi con l'area di simulazione scalata di un fattore 10.

Page 105: Validation and analysis of mobility models

105

Fig. 5.1.2.1: Node Strength distribution con F(Strength) = frazione di nodi con

(Strength/Max Strength) >= Strength. Comparazione della distribuzione di tre

dataset, uno collezionato nell'esperimento SocialDIS e due generati dai modelli di

mobilità, entrambi con 116 nodi con un contact detection range di 1𝑚: Per il RW model

abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s, e il

TLW model, le flight lengths e i pause times seguono le truncated power laws con

𝛼 = 0.8, 𝛽 = 0.3.

Per quanto riguarda le proprietà temporali delle interazioni sociali, nelle figure 5.1.2.2

e 5.1.2.3 vengono comparate rispettivamente la Inter Contact Time distribution e la Intra

Contact Time distribution, tra il dataset SocialDIS e i due dataset sintetici.

Dagli andamenti delle due distribuzioni e dai valori contenuti nella tabella

5.1.2-3, si nota che ancora una volta i modelli di mobilità, rispetto al caso SocialDIS,

presentano un numero notevolmente inferiore di intervalli di comunicazione tra due

stessi nodi, che hanno mediamente una durata maggiore.

Dunque si osserva nuovamente che lo stesso contatto tra due persone si

ripresenta con minor frequenza nei modelli di mobilità.

Page 106: Validation and analysis of mobility models

106

Fig. 5.1.2.2: Comparazione dell' Inter Contact Time distribution di tre dataset, uno

collezionato nell'esperimento SocialDIS e due generati dai modelli di mobilità,

entrambi con 116 nodi con un contact detection range di 1𝑚: Per il RW model abbiamo

assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s, e il TLW

model, le flight lengths e i pause times seguono le truncated power laws con 𝛼 = 0.8,

𝛽 = 0.3.

Da questi risultati ci si accorge che, scalando l'area di simulazione di un fattore 10, in

entrambi i modelli di mobilità vengono generati un numero inferiore di contatti

rispetto alle tracce di contatti relative a SocialDIS e che le loro durate sono

mediamente inferiori rispetto al caso in cui gli individui vengono fatti muovere in

aree di simulazione non scalate.

Questo accade perché i nodi che si muovono secondo i mobility models,

muovendosi in aree più ampie, hanno meno probabilità d'incontrarsi e re-incontrarsi.

Pertanto aumentare le dimensioni dell'area di simulazione, sottostima le interazioni

avvenute tra gli studenti che hanno partecipato all'esperimento.

Page 107: Validation and analysis of mobility models

107

Fig. 5.1.2.3: Comparazione dell' Intra Contact Time distribution di tre dataset, uno

collezionato nell'esperimento SocialDIS e due generati dai modelli di mobilità,

entrambi con 116 nodi con un contact detection range di 1𝑚: Per il RW model abbiamo

assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s, e il TLW

model, le flight lengths e i pause times seguono le truncated power laws con 𝛼 = 0.8,

𝛽 = 0.3.

Dataset Average Intra-

contact Time

(seconds)

Average Inter-

contact Time

(seconds)

# Contact # Interval

SocialDIS 3,0 129,9 5.345 3.758

TLW 16,7 1.788,6 1.074 146

RWP 12,8 15.798,1 1.888 9

Tabella 5.1.2-3: La tabella mostra la durata media di un contatto (tra due nodi e

dell'intervallo di tempo che intercorre tra due successivi contatti tra gli stessi nodi), il

numero di contatti e il numero di intervalli. SocialDIS è il dataset ottenuto

dall'esperimento reale, mentre TLW ed RWP sono synthetic dataset generati

rispettivamente simulando il Random Waypoint e il Truncated Lévy Walk Model, entrambi

con l'area di simulazione scalata di un fattore 10.

Page 108: Validation and analysis of mobility models

108

In figura 5.1.2.4 vengono illustrati i risultati della metrica Flooding Time nel

caso in cui consideriamo le aree di simulazione maggiorate; esse mostrano l'incapacità

dei modelli nel rappresentare il comportamento diffusivo del caso reale.

Fig. 5.1.2.4: Comparazione della Flooding time distribution di tre dataset, uno

collezionato nell'esperimento SocialDIS e due generati a partire dai modelli di

mobilità, entrambi con 116 nodi con un contact detection range di 1𝑚: Per il RW model

abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s, e il

TLW model, le flight lengths e i pause times seguono le truncated power laws con

𝛼 = 0.8, 𝛽 = 0.3

In questo caso nel modello TLW l'informazione tende a propagarsi più lentamente

rispetto ai casi SocialDIS e RWP perché, come abbiamo visto dalle statistiche appena

descritte, i nodi hanno una minore probabilità di interagire. Nel modello TLW tali

nodi comunicano poco frequentemente perché muovendosi in aree ampie, tendono a

seguire percorsi molto più lineari rispetto al caso RWP (vedere le motivazioni nel

paragrafo 2.1.4). Questa analisi dimostra l'inadeguatezza dei modelli, forse dovuta al

fatto che essi non tengono conto della non casualità dei percorsi che gli studenti

seguono.

Page 109: Validation and analysis of mobility models

109

Viene valutato ora l'effetto che si ha per quanto concerne le Conditional probability

Distribution of link's existence. Osservando le figure 5.1.2.5 e 5.1.2.6 ci si accorge, come

ci si aspettava sulla base dei risultati ottenuti nell'analisi dei contact time che, entrambi i

modelli di mobilità sottostimano sia la probabilità 𝑃𝑒 ,0 che la probabilità 𝑃𝑒 ,1, vale a

dire che se un contatto non avviene al tempo 𝑡 − 1 quasi certamente questo non si

ripresenterà al tempo 𝑡 e che se un contatto avviene al tempo 𝑡 − 1 quasi certamente

questo non avrà luogo al tempo 𝑡.

Fig. 5.1.2.5: Conditional Probability distribution dove F(𝑥) = frazione di archi con

𝑃𝑒,0/Pe ≥ x. Comparazione della Conditional Probability distribution di tre dataset,

uno collezionato nell'esperimento SocialDIS e due generati dai modelli di mobilità,

entrambi con 116 nodi con un contact detection range di 1𝑚: Per il Random Waypoint

model abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 1.0

m/s, e il Truncated Lévy Walk model, le flight lengths e i pause times seguono le

truncated power laws con 𝛼 = 0.8, 𝛽 = 0.3

La probabilità 𝑃𝑒 ,1 viene questa volta sottostimata perché i mobility models

presentano un minore numero di contatti che hanno un'alta probabilità di esistere al

tempo 𝑡 sapendo che sono esistiti anche al tempo 𝑡 − 1. Questo risultato è in liena

con l'analisi dei contact time per il fatto che i modelli RWP e TLW generano un

Page 110: Validation and analysis of mobility models

110

numero inferiore di comunicazioni che si ripresentano sporadicamente tra stessi

individui, rispetto a quelle generate nell'esperimento SocialDIS.

Fig. 5.1.2.6: Conditional Probability Distribution dove F(𝑥) = frazione di archi con

𝑃𝑒,1/Pe ≥ x. Comparazione della Conditional Probability distribution di tre dataset,

uno collezionato nell'esperimento SocialDIS e due generati dai modelli di mobilità,

entrambi con 116 nodi con un contact detection range di 1𝑚: Per il Random

Waypoint model abbiamo assegnato ai nodi velocità uniformemente distribuite tra

0.01 e 0.8 m/s, e il Truncated Lévy Walk model, le flight lengths e i pause times

seguono le truncated power laws con 𝛼 = 0.8, 𝛽 = 0.3.

Anche in questo caso l'esistenza di ciascun contatto nel tempo sembra presentare

delle dipendenze con caratteristiche markoviane, poichè la probabilità di esistenza di

uno specifico contatto a uno specifico tempo sembra dipendere dalla probabilità che

questo sia avvenuto al tempo immediatamente precedente. Nelle figure 5.1.2.7 e

5.1.2.8 viene mostrata la Link's existence variability, sia calcolata per ogni arco 𝑒 che per

un campione di venti archi scelti casualmente. Tale metrica calcolata per ciascuno dei

tre dataset, mostra come varia nel tempo la probabilità 𝑃𝑒,𝑖 , con 𝑖 ∈ 1, … , 𝑁𝐸 ,

dove 𝑁𝐸 è il numero di epoche costituite ognuna da 2000 secondi.

Page 111: Validation and analysis of mobility models

111

Fig. 5.1.2.7: Distribuzione della probabilità che un arco esista o meno in una

determinata epoca costituita da 2000 secondi. La distribuzione è stata calcolata su

tutti gli archi del grafo.

Fig. 5.1.2.8: Distribuzione della probabilità che un arco esista o meno in una

determinata epoca costituita da 2000 secondi. La distribuzione è stata calcolata su un

sottoinsieme di 20 archi scelti casualmente.

Dalla figura 5.1.2.7 si nota che, per quanto riguarda i modelli di mobilità, la

distribuzione della probabilità che un arco esista o meno in una determinata epoca

Page 112: Validation and analysis of mobility models

112

costituita da 2000 secondi, calcolata su tutti gli archi del grafo, risulta essere

approssimativamente stazionaria. Pertanto, anche in questo caso, la probabilità di

esistenza di un arco varia molto poco nel tempo, rafforzando la validità della stima

calcolata nelle Conditional Probability Distribution.

Come fatto nella precedente analisi (paragrafo 5.1.1), viene verificato se esiste

o meno una correlazione tra i contatti che avvengono tra coppie distinte di persone,

ossia stabilire se l'esistenza di un contatto ad un determinato tempo 𝑡 sia correlata o

meno all'esistenza di uno o più contatti avvenuti nel medesimo tempo.

Si partizionano i grafi dinamici dei contatti in forma aggregata, generati a

partire dai due modelli di mobilità, secondo la modularity. Da ogni partizione si

selezionano i primi 10 archi con peso più alto (ossia quelli più frequenti), per i quali

viene calcolata la matrice di correlazione. Nei grafi mostrati in figura 5.1.2.11, si

osserva che nel caso del modello RWP i nodi vengono classificati in tante piccole

community e in una grossa, ciascuna delle quali (come mostrato nella figura 5.1.2.9)

non presenta correlazioni tra contatti avvenuti contemporaneamente. Lo stesso tipo

di classificazione avviene anche nel caso del modello TLW, dove ciascuna di esse

(come mostrato nella figura 5.1.2.10) non presenta correlazioni tra contatti distinti.

Questa volta il modello TLW non classifica i nodi in una grandissima

community perché, rispetto al caso precedente, i nodi tendenzialmente comunicano

solo con un ristretto numero di nodi. Invece il modello RWP presenta una grande

community, nel suo Contat Graph aggregato partizionato secondo la modularity,

perché rispetto al modello TLW i nodi interagiscono con mediamente con più nodi.

Se confrontiamo le due matrici con quella calcolata per SocialDIS (mostrata in figura

5.1.1.14), ci si accorge che in questo caso i modelli di mobilità mostrano delle

dipendenze temporali esigue, comunque differenti da quelle del caso reale. Questo

accade solo perché in aree di simulazione estese, la probabilità che due persone

comunichino a distanza ravvicinata è veramente bassa, dunque la correlazione

temporale tra contatti è improbabile.

I risultati ottenuti ci mostrano che, anche aumentando l'area di simulazione,

non aumentano le correlazioni statistiche tra i dati generati dai modelli TLW e RWP

e quelli forniti dall'esperimento SocialDIS, confutando l'ipotesi per cui tali modelli

possano risultare validi aumentando le dimensioni dell'ambiente.

Page 113: Validation and analysis of mobility models

113

Fig. 5.1.2.9: Vengono mostrate le matrici di correlazione aventi il maggior numero di

correlazioni tra archi appartenenti alla rispettiva community, classificate calcolando la

Modularity sul grafo aggregato, ottenuto simulando il Random Waypoint model.

L'intensità del giallo indica quanto l'esistenza di due archi è correlata nel tempo.

Maggiore è l'intensità, maggiore è la correlazione temporale tra i due archi.

Page 114: Validation and analysis of mobility models

114

Fig. 5.1.2.10: Vengono mostrate le matrici di correlazione aventi il maggior numero

di correlazioni tra archi appartenenti alla rispettiva community, classificate calcolando

la Modularity sul grafo aggregato, ottenuto simulando il Truncated Lévy Walk model.

L'intensità del giallo indica quanto l'esistenza di due archi è correlata nel tempo.

Maggiore è l'intensità, maggiore è la correlazione temporale tra i due archi.

Page 115: Validation and analysis of mobility models

115

Fig. 5.1.2.11: Il grafo a sinistra mostra mostrate le community ottenute calcolando la

Modularity sul grafo aggregato ottenuto simulando il RW model, mentre il grafo a

destra mostra le community ottenute calcolando la Modularity sul grafo aggregato

ottenuto simulando il TLW model. I numeri sono gli identificativi delle community.

Page 116: Validation and analysis of mobility models

116

5.2 Comparazione con i dati dell'esperimento MACRO

5.2.1 Modelli nella loro formulazione originaria

I 114 visitatori che hanno partecipato all'esperimento NeonMACRO, si sono

mossi in un'area rettangolare di circa 25𝑚 𝑥 47𝑚, dove per circa 8938 𝑠𝑒𝑐𝑜𝑛𝑑𝑖

(2,48 𝑜𝑟𝑒) sono stati registrati tutti i contatti face-to-face che sono avvenuti durante

la mostra d'arte contemporanea. Per simulare le interazioni nei modelli di mobilità

vengono usati 114 nodi con un raggio di visibilità di 1𝑚, distribuiti in un'area

rettangolare di 25𝑚 𝑥 47𝑚, e vengono configurati i parametri di lunghezza dei

percorsi, velocità dei nodi e tempo di pausa, per generare dataset che possano avere

delle caratteristiche simili a quelle ottenute dal mondo reale. Per il RW model vengono

assegnati ai nodi velocità uniformemente distribuite tra 0.01 e 0.7 m/s.

Per il TLW model, le flight lengths (𝑙) e i waiting times (𝑡) seguono le

truncated power laws 𝑝 𝑙 ~ 𝑙 − 1+𝛼 , 𝑙 < 𝑙𝑚𝑎𝑥 e 𝜓 𝑡 ~𝑡− 1+𝛽 , 0 < 𝑡 < 𝑡𝑚𝑎𝑥 , con

𝛼 = 1.6, 𝛽 = 0.8, 𝑙𝑚𝑎𝑥 = 25, 𝑡𝑚𝑎𝑥 = 600𝑠 (10 𝑚𝑖𝑛𝑢𝑡𝑖), con angoli di rotazione

presi da una distribuzione uniforme e velocità dei nodi proporzionale alle flight

lengths. Il numero di secondi di ciascuna simulazione è pari a 8938 𝑠𝑒𝑐𝑜𝑛𝑑𝑖

(2,48 𝑜𝑟𝑒), ossia il tempo per cui è stato deciso di tracciare le interazioni.

Durante l'importazione del dataset empirico, la soglia entro la quale una

disconnessione non viene considerata come interruzione del contatto (parametro

configurabile nel DNF Importer) è stata fissata a tre. Nelle tabelle 5.2.1-1 e 5.2.1-2

vengono mostrate le statistiche calcolate sui tre grafi aggregati (che non considerano

i Presence schedules associati a ciascun nodo/arco e dove il peso di ciascun arco è pari

alla sua frequenza), che mostrano risultati simili a quelli ottenuti nell'analisi del

dataset SocialDIS, ovvero che nei dataset sintetici avvengono un numero maggiore di

interazioni tra individui rispetto al caso reale e che i Dynamic Contact Graph aggregati

generati secondo i modelli RWP e TLW sono notevolmente densi e coesi. Come ci si

aspettava, comparando le Strength distribution dei due dataset sintetici con quella del

dataset NeonMacro (mostrate in figura 5.2.1.1), si scopre che non si presentano

somiglianze. La strength dei nodi che si muovono secondo i modelli di mobilità risulta

essere maggiore, perché essi interagiscono in media con un numero superiore di

Page 117: Validation and analysis of mobility models

117

vicini. Anche in questa analisi risulta evidente che tali modelli falliscono nel

riprodurre le proprietà strutturali del grafo dinamico dei contatti in forma aggregata.

Dataset # Edges Average

degree

Average

strength

Graph

density

NeonMACRO 132 2,316 0,004 0,02

TLW 5394 94,63 1,1 0,83

RWP 6120 107,368 1,2 0,95

Tabella 5.2.1-1: Vengono mostrati: il numero di archi, il degree medio, il degree

medio pesato (o strength ) e la densità del grafo. NeonMACRO è il dataset ottenuto

dall'esperimento reale, mentre TLW ed RWP sono synthetic dataset generati

rispettivamente simulando il Random Waypoint Mobility Model e il Truncated Lévy Walk

Mobility Model.

Dataset Average Clustering

Coefficient

Average Weighted

Clustering Coefficient

NeonMACRO 0,378 0,237

TLW 0,848 0,853

RWP 0,951 0,951

Tabella 5.2.1-2: Cluster coefficient medio (pesato e non pesato), calcolato su tre

dataset: NeonMACRO è il dataset ottenuto dall'esperimento reale, mentre TLW ed

RWP sono synthetic dataset generati rispettivamente simulando il Random Waypoint e

il Truncated Lévy Walk models.

Nelle figure 5.2.1.2 e 5.2.1.3 si confrontano rispettivamente la Inter Contact Time

distribution e la Intra Contact Time distribution, calcolata sul dataset raccolto durante

l'esperimento NeonMACRO e sui due dataset ottenuti a partire dai modelli di

mobilità.

Page 118: Validation and analysis of mobility models

118

Fig. 5.2.1.1: Node Strength distribution con F(Strength) = frazione di nodi con

(Strength/Max Strength) >= Strength. Comparazione della distribuzione di tre

dataset, uno collezionato nell'esperimento SocialDIS e due generati dai modelli di

mobilità, entrambi con 116 nodi con un contact detection range di 1𝑚: Per il RW model

abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.8 m/s, e il

TLW model, le flight lengths e i pause times seguono le truncated power laws con

𝛼 = 0.8, 𝛽 = 0.3.

Dataset Average Intra-

contact Time

(seconds)

Average Inter-

contact Time

(seconds)

# Contact # Interval

NeonMACRO 1,7 51,2 1.325 966

TLW 20,7 645,8 28.187 325

RWP 32,7 1.619,3 19.117 246

Tabella 5.2.1-3: La tabella mostra la durata media di un contatto (tra due nodi e

dell'intervallo di tempo che intercorre tra due successivi contatti tra gli stessi nodi), il

numero di contatti e il numero di intervalli. NeonMACRO è il dataset ottenuto

dall'esperimento reale, mentre TLW ed RWP sono synthetic dataset generati

rispettivamente simulando il Random Waypoint e il Truncated Lévy Walk Model.

Page 119: Validation and analysis of mobility models

119

Fig. 5.2.1.2: Comparazione dell' Inter Contact Time distribution di tre dataset, uno

collezionato nell'esperimento NeonMACRO e due generati dai modelli di mobilità,

entrambi con 114 nodi con un contact detection range di 1𝑚: Per il RW model abbiamo

assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.7 m/s, e il TLW

model, le flight lengths e i pause times seguono le truncated power laws con 𝛼 = 1.6,

𝛽 = 0.8.

Al contrario di quello che è accaduto nel caso del dataset SocialDIS, l'andamento

della Inter e Intra contact time distribution del NeonMACRO si discosta dall'andamento

delle distribuzione ottenute dai due dataset sintetici. Tale differenza è ben evidente

anche nei risultati mostrati nella tabella 5.2.1-3, dove viene constatato un maggiore

numero di contatti tra i nodi dei modelli di mobilità, che però si reincontrano di rado.

Come è successo nel caso SocialDIS, i modelli RWP e TLW non catturano un

comportamento tipico dei visitatori di un museo, i quali tendono a non comunicare

con altri visitatori che non conoscono e ad interagire solo con quelli che conoscono.

Page 120: Validation and analysis of mobility models

120

Fig. 5.2.1.3: Comparazione dell' Intra Contact Time distribution di tre dataset, uno

collezionato nell'esperimento NeonMACRO e due generati dai modelli di mobilità,

entrambi con 114 nodi con un contact detection range di 1𝑚: Per il RW model

abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.7 m/s, e il

TLW model, le flight lengths e i pause times seguono le truncated power laws con

𝛼 = 1.6, 𝛽 = 0.8.

Nell'esperimento SocialDIS simulando la diffusione di un'informazione, è

stato verificato che le reti dinamiche, ottenute a partire dai modelli di mobilità,

falliscono nel rappresentare il processo diffusivo del caso reale. Per verificarlo anche

in questo secondo esperimento, si è calcolata la metrica Flooding sul dataset empirico

del NeonMacro e su quelli relativi ai due modelli di mobilità. Dalla figura 5.2.1.4,

risulta chiaro che anche questa volta i modelli RWP e TLW non sono adeguati per

simulare il comportamento diffusivo del caso reale considerato. Analizzando il

numero di individui raggiunti dal messaggio entro la fine dell'esperimento

NeonMACRO, si osserva che non vengono mai raggiunti tutti i visitatori.

Page 121: Validation and analysis of mobility models

121

Fig. 5.2.1.4: Comparazione della Flooding time distribution di tre dataset, uno

collezionato nell'esperimento NeonMacro e due generati a partire dai modelli di

mobilità, entrambi con 114 nodi con un contact detection range di 1𝑚: Per il RW model

abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.7 m/s, e il

TLW model, le flight lengths e i pause times seguono le truncated power laws con

𝛼 = 1.6, 𝛽 = 0.8.

Il numero di individui raggiunti dall'informazione dipende dal numero di

componenti connesse. Nel caso NeonMACRO si hanno molti cluster isolati, mentre

nel caso dei modelli di mobilità si ha un'unica componente connessa. Per questo

motivo, il messaggio nel caso reale, non arriva a tutti gli individui se il seed appartiene

a un cluster non connesso con tutte le altre community.

Inoltre bisogna considerare il fatto che tutti i visitatori che lasciano il museo

prima dell'arrivo del seed non possono essere infettati a meno che non ritornino nella

sala espositiva una seconda volta, e questo accade di rado.

Nelle figure 5.2.1.5 e 5.2.1.6, è possibile ossservare l'andamento della

Conditional probability Distribution of link's existence applicata ai dati raccolti

nell'esperimento NeonMacro e ai dati collezionati simulando il RW mobility model e

il TLW mobility model. Come era plausibile attendersi, dato che tra i tre dataset non

Page 122: Validation and analysis of mobility models

122

si sono osservate delle similatirà nei contact time, ancora una volta i modelli di mobilità

sottostimano la probabilità per cui un contatto esiste in uno specifico istante

temporale sapendo che è esistito nell'istante precedente e sovrastimano invece la

probabilità per cui un nodo esiste in un determinato istante 𝑡 sapendo che non è

esistito all'istante 𝑡 − 1. Inoltre sembrerebbe che le dipendenze temporali seguano un

processo con caratteristiche di tipo markoviano.

Per valutare la validità della stima appena fatta, anche questa volta, si misura

la variabilità nel tempo della 𝑃𝑒 , utilizzando la metrica Link's existence variabilità. Si

calcola la probabilità 𝑃𝑒,𝑖 , con 𝑖 ∈ 1, … , 𝑁𝐸 (dove 𝑁𝐸 è il numero di epoche

costituite ognuna da 100 secondi), per ognuno dei tre dataset, prima per ogni arco 𝑒

del grafo (figura 5.2.1.7) e poi per un campione di venti archi scelti casualmente

(figura 5.2.1.8). Anche questa volta l'andamento medio della 𝑃𝑒 nelle varie epoche

risulta essere con buona approssimazione stazionario.

Fig. 5.2.1.5: Conditional Probability distribution dove F(𝑥) = frazione di archi con

𝑃𝑒,0/Pe >= x. Comparazione della Conditional Probability distribution di tre dataset,

uno collezionato nell'esperimento NeonMACRO e due generati dai modelli di

mobilità, entrambi con 114 nodi con un contact detection range di 1𝑚: Per il Random

Waypoint model abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01

Page 123: Validation and analysis of mobility models

123

e 0.7 m/s, e il Truncated Lévy Walk model, le flight lengths e i pause times seguono le

truncated power laws con 𝛼 = 1.6, 𝛽 = 0.8.

Si vuole ora verificare se esiste o meno una correlazione tra i contatti che avvengono

tra coppie distinte d' individui, ossia se l'esistenza di un contatto ad un determinato

istante temporale sia correlata o meno all'esistenza di uno o più contatti avvenuti

nello stesso istante.

Si effettua tale verifica calcolando la Pearson Correlation Matrix. Da ogni cluster

classificato secondo la modularity (vededere i grafi ottenuti nelle figure 5.2.1.12 e

5.2.1.13) vengono estrapolati i primi 10 archi più frequenti, per i quali viene calcolata

la matrice di correlazione. Per i motivi già descritti nell'analisi relativa all'esperimento

SocialDIS, i nodi che appartengono ai Contact Graph aggregati, generati dai modelli di

mobilità, tendono ad essere classificati secondo la modularity in pochi e grandi

gruppi, contrariamente a quanto accade per il Contact Graph aggregato generato a

partire dai dati del NeonMACRO, dove i nodi vengono classificati in tante piccole

community, di cui molte isolate.

Fig. 5.2.1.6: Conditional Probability Distribution dove F(x) = frazione di archi con

𝑃𝑒,1/Pe ≥ x. Comparazione della Conditional Probability distribution di tre dataset,

uno collezionato nell'esperimento NeonMACRO e due generati dai modelli di

Page 124: Validation and analysis of mobility models

124

mobilità, entrambi con 114 nodi con un contact detection range di 1𝑚: Per il Random

Waypoint model abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01

e 0.7 m/s, e il Truncated Lévy Walk model, le flight lengths e i pause times seguono le

truncated power laws con 𝛼 = 1.6, 𝛽 = 0.8.

Questo risultato rispecchia il fatto che, rispetto al contesto del NeonMACRO, nei

due modelli di mobilità si presentano un maggiore numero di contatti tra tutti gli

individui indipendentemente dal fatto che essi si conoscano o meno. Inoltre ancora

una volta i nodi che si muovono secondo il modello di mobilità TLW vengono

classificati in una grande community, molto più grande di quelle ottenute nel caso

RWP. Tale fenomeno accade perché nel modello TLW i nodi hanno una minor

probabilità di reincontrarsi, dato che seguono traiettorie meno dettate dal caso.

Nelle figure 5.2.1.9, 5.2.1.10 e 5.2.1.11, è possibile notare che le matrici di

correlazione calcolate sul dataset NeonMACRO e sui dataset ottenuti usando i

modelli di mobilità RW e TLW. Comparando le matrici relative al caso reale con

quelle ottenute dai casi simulati, si osserva che nel primo caso le correlazioni

temporali tra contatti distinti sono presenti solo in una community e scarse (o quasi

assenti) nelle altre, mentre nel secondo caso il modello RWP presenta un buon

numero di correlazioni e il modello TLW ne presenta un numero esiguo. Dall'analisi

che è stata condotta, ci accorgiamo che, anche in questo caso entrambi i modelli di

mobilità generano tracce di contatti che statisticamente non presentano alcuna

somiglianza rispetto alle tracce di contatto del caso reale.

Page 125: Validation and analysis of mobility models

125

Fig. 5.2.1.7: Distribuzione della probabilità che un arco esista o meno in una

determinata epoca costituita da 100 secondi. La distribuzione è stata calcolata su tutti

gli archi del grafo.

Fig. 5.2.1.8: Distribuzione della probabilità che un arco esista o meno in una

determinata epoca costituita da 100 secondi. La distribuzione è stata calcolata su un

sottoinsieme di 20 archi scelti casualmente.

Page 126: Validation and analysis of mobility models

126

Come è stato scoperto nell'analisi svolta nel caso dell'esperimento SocialDIS,

i modelli non riescono assolutamente a riprodurre il comportamento degli individui

dello specifico scenario considerato. In un museo i visitatori tipicamente spendono

una limitata quantità di tempo sul posto, ben al di sotto della massima durata di

apertura permessa, terminata la visita non ritornano una seconda volta, entrano ed

escono dalla sala espositiva in orari differenti, comunicano poco tra di loro a meno

che non si conoscono e seguono dei percorsi quasi predefiniti.

Nei modelli di mobilità adottati, invece, le persone rimangono sempre nella

sala espositiva, comunicano quasi con tutti eseguono percorsi casuali (nel caso RWP)

o percorsi di tipo Lévy walk (nel caso TLW). Come già è stato detto nel paragrafo

5.1, la validità del modello di mobilità TLW è stata verificata in ambienti outdoor

[20], dove le persone si muovo in aree estese, mentre nell'esperimento che abbiamo

condotto i visitatori del museo si muovono in una sala dall'area relativamente

limitata. Lo stesso concetto potrebbe valere anche per il modello RWP.

Come è stato fatto nel sotto-paragrafo 5.1.2 (caso SocialDIS), nel prossimo sotto-

paragrafo, tenendo conto di queste considerazioni, verrà analizzato il comportamento

dei due modelli nel caso in cui aumentiamo di un fattore 10 le dimensioni dell'area di

simulazione.

Page 127: Validation and analysis of mobility models

127

Fig. 5.2.1.9: Vengono mostrate le matrici di correlazione aventi il maggior numero di

correlazioni tra archi appartenenti alla rispettiva community, classificate calcolando la

Modularity sul grafo aggregato, ottenuto dal dataset NeonMACRO. L'intensità del

giallo indica quanto l'esistenza di due archi è correlata nel tempo. Maggiore è

l'intensità, maggiore è la correlazione temporale tra i due archi.

Page 128: Validation and analysis of mobility models

128

Fig. 5.2.1.10: Vengono mostrate le matrici di correlazione aventi il maggior numero

di correlazioni tra archi appartenenti alla rispettiva community, classificate calcolando

la Modularity sul grafo aggregato, ottenuto simulando il Random Waypoint model.

L'intensità del giallo indica quanto l'esistenza di due archi è correlata nel tempo.

Maggiore è l'intensità, maggiore è la correlazione temporale tra i due archi.

Page 129: Validation and analysis of mobility models

129

Fig. 5.2.1.11: Vengono mostrate le matrici di correlazione delle due community,

classificate calcolando la Modularity sul grafo aggregato, ottenuto simulando il

Truncated Lévy Walk model. L'intensità del giallo indica quanto l'esistenza di due archi è

correlata nel tempo. Maggiore è l'intensità, maggiore è la correlazione temporale tra i

due archi.

Fig. 5.2.1.12: Mostra le community ottenute calcolando la Modularity sul grafo

aggregato dell'esperimento NeonMACRO.

Page 130: Validation and analysis of mobility models

130

Fig. 5.2.1.13: Il grafo a sinistra mostra mostrate le community ottenute calcolando la

Modularity sul grafo aggregato ottenuto simulando il RW model, mentre il grafo a

destra mostra le community ottenute calcolando la Modularity sul grafo aggregato

ottenuto simulando il TLW model. I numeri sono gli identificativi delle community.

5.2.2 Modelli con aree di simulazione scalate di un fattore 10

Viene ora verificato, come fatto nel paragrafo 5.1.2, se aumentare di un

fattore 10 le dimensioni dell'area di simulazione, renda le statistiche dei modelli di

mobilità più simili a quelle del caso NeonMACRO. Nelle simulazioni vengono

utilizzati 114 nodi con un raggio di visibilità di 1𝑚, distribuiti in un'area rettangolare

di 240𝑚 𝑥 470𝑚, ed vengono assegnati ai parametri gli stessi valori dell'analisi

precedente. Per il RW model abbiamo assegnato ai nodi velocità uniformemente

distribuite tra 0.01 e 0.7 m/s.

Per il TLW model, le flight lengths (𝑙) e i waiting times (𝑡) seguono le

truncated power laws 𝑝 𝑙 ~ 𝑙 − 1+𝛼 , 𝑙 < 𝑙𝑚𝑎𝑥 e 𝜓 𝑡 ~𝑡− 1+𝛽 , 0 < 𝑡 < 𝑡𝑚𝑎𝑥 , con

𝛼 = 1.6, 𝛽 = 0.8, 𝑙𝑚𝑎𝑥 = 240, 𝑡𝑚𝑎𝑥 = 600𝑠 (10 𝑚𝑖𝑛𝑢𝑡𝑖) e la durata della

simulazione è sempre pari a 8938 𝑠𝑒𝑐𝑜𝑛𝑑𝑖 (2,48 𝑜𝑟𝑒).

Nelle tabelle 5.2.2-1 e 5.2.2-2 si nota che i Contact Graph in forma aggregata,

generati a partire dai modelli RWP e TLW, tendono ad essere più accurati rispetto

alle proprietà strutturali del grafo. Nello specifico, il modello TLW presenta delle

notevoli similarità per quanto riguarda la quantità d'interazioni e la formazione di

cluster. In figura 5.2.2.1, confrontando le Strength distribution, si osserva che la strength

dei nodi (che si muovono secondo il modello TLW) tende ad avvicinarsi a quella dei

Page 131: Validation and analysis of mobility models

131

visitatori del museo. Pertanto si scopre che aumentando l'area di simulazione di un

fattore 10, il TLW Mobility Model riesce a riprodurre in modo più accurato le

proprietà strutturali del dataset NeonMACRO. Il RWP non risulta essere ancora

abbastanza adeguato.

Dataset # Edges Average

degree

Average

strength

Graph

density

NeonMACRO 132 2,2 0,004 0,02

TLW 188 3,3 0,013 0,03

RWP 615 10,7 0,016 0,09

Tabella 5.2.2-1: Vengono mostrati: il numero di archi, il degree medio, il degree

medio pesato (o strength ) e la densità del grafo. NeonMACRO è il dataset ottenuto

dall'esperimento sociale reale, mentre TLW ed RWP sono synthetic dataset generati

rispettivamente simulando il Random Waypoint Mobility Model e il Truncated Lévy Walk

Mobility Model, entrambi con l'area di simulazione scalata di un fattore 10.

Dataset Average Clustering

Coefficient

Average Weighted

Clustering Coefficient

NeonMACRO 0,36 0,24

TLW 0,26 0,22

RWP 0,12 0,12

Tabella 5.2.2-2: Cluster coefficient medio (pesato e non pesato), calcolato su tre

dataset: NeonMACRO è il dataset ottenuto dall'esperimento sociale reale, mentre

TLW ed RWP sono synthetic dataset generati rispettivamente simulando il Random

Waypoint e il Truncated Lévy Walk models, entrambi con l'area di simulazione scalata di

un fattore 10.

Per quanto riguarda le proprietà temporali delle comunicazioni tra persone, nelle

figure 5.2.2.2 e 5.2.2.3 vengono comparate rispettivamente la Inter Contact Time

distribution e la Intra Contact Time distribution, tra il dataset NeonMACRO e i due dataset

sintetici.

Page 132: Validation and analysis of mobility models

132

Fig. 5.2.2.1: Node Strength distribution con F(Strength) = frazione di nodi con

(Strength/Max Strength) >= Strength. Comparazione della distribuzione di tre

dataset, uno collezionato nell'esperimento NeonMACRO e due generati dai modelli

di mobilità, entrambi con 114 nodi con un contact detection range di 1𝑚: Per il RW model

abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.7 m/s, e il

TLW model, le flight lengths e i pause times seguono le truncated power laws con

𝛼 = 1.6, 𝛽 = 0.8.

Da entrambe le figure e dalla tabella 5.2.2-3, si nota che non c'è alcuna

correlazione tra le distribuzioni e che nel modello RWP due stessi nodi non

ricomunicano mai.

Dataset Average Intra-

contact Time

(seconds)

Average Inter-

contact Time

(seconds)

# Contact # Interval

NeonMACRO 1,7 51,2 1.325 966

TLW 17,8 179,2 369 5

RWP 12,0 0 650 0

Tabella 5.2.2-3: La tabella mostra la durata media di un contatto (tra due nodi e

dell'intervallo di tempo che intercorre tra due successivi contatti tra gli stessi nodi), il

Page 133: Validation and analysis of mobility models

133

numero di contatti e il numero di intervalli. NeonMACRO è il dataset ottenuto

dall'esperimento sociale reale, mentre TLW ed RWP sono synthetic dataset generati

rispettivamente simulando il Random Waypoint e il Truncated Lévy Walk Model, entrambi

con l'area di simulazione scalata di un fattore 10.

Fig. 5.2.2.2: Comparazione dell'Inter Contact Time distribution di tre dataset, uno

collezionato nell'esperimento NeonMACRO e due generati dai modelli di mobilità,

entrambi con 114 nodi con un contact detection range di 1𝑚: Per il RW model abbiamo

assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.7 m/s, e il TLW

model, le flight lengths e i pause times seguono le truncated power laws con 𝛼 = 1.6,

𝛽 = 0.8.

Pertanto si nota che lo stesso contatto tra due individui distinti si ripresenta

veramente di rado, se non affatto, nei due modelli di mobilità. Questo ha luogo

perché i nodi che si muovono secondi i mobility models RWP e TLW, spostandosi in

aree più grandi, hanno meno probabilità di comunicare e ricomunicare. Aumentare la

grandezza dell'area di simulazione sottostima le comunicazioni avvenute tra i

visitatori del museo che hanno partecipato all'esperimento. In figura 5.2.2.4 si vede

che il modello RWP non riesce assolutamente a catturare lo schema di diffusione di

un messaggio tra visitatori. In questa figura vengono illustrati i risultati della metrica

Page 134: Validation and analysis of mobility models

134

Flooding Time nel caso in cui consideriamo le aree di simulazione aumentate, le quali ci

fanno rendere conto dell'incapacità dei modelli nel rappresentare il comportamento

diffusivo dello particolare contesto reale.

Fig. 5.2.2.3: Comparazione dell'Intra Contact Time distribution di tre dataset, uno

collezionato nell'esperimento NeonMACRO e due generati dai modelli di mobilità,

entrambi con 114 nodi con un contact detection range di 1𝑚: Per il RW model abbiamo

assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.7 m/s, e il TLW

model, le flight lengths e i pause times seguono le truncated power laws con 𝛼 = 1.6,

𝛽 = 0.8.

In questo caso nel modello TLW l'informazione tende a propagarsi più

lentamente rispetto ai casi NeonMACRO e RWP, perché come si è osservato dai

risultati delle statistiche appena descritte, i nodi hanno una minore probabilità di

interagire.

Nel modello TLW tali nodi comunicano sporadicamente perché spostandosi

in grandi aree, tendono a seguire percorsi molto più lineari rispetto al caso RWP

(vedere le motivazioni nel paragrafo 2.1.4). Questa analisi dimostra l'inadeguatezza

Page 135: Validation and analysis of mobility models

135

dei modelli, forse dovuta al fatto che essi non tengono conto della non casualità dei

percorsi che gli i visitatori di un museo seguono durante la mostra d'arte.

Fig. 5.2.2.4: Comparazione della Flooding time distribution di tre dataset, uno

collezionato nell'esperimento NeonMACRO e due generati a partire dai modelli di

mobilità, entrambi con 114 nodi con un contact detection range di 1𝑚: Per il RW

model abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.7

m/s, e il TLW model, le flight lengths e i pause times seguono le truncated power laws

con 𝛼 = 1.6, 𝛽 = 0.8

Si analizzano ora gli effetti che si hanno per quanto riguarda la Conditional probability

Distribution of link's existence. Osservando le figure 5.2.2.5 e 5.2.2.6, si evince che i

modelli RWP e TLW sottostimano entrambe le probabilità condizionate. Nello

specifico la sottostima risulta maggiore nel caso RWP, perché come è stato

constatato dall'analisi delle contat time distribution, in esso i nodi non si reincontrano

mai. Inoltre notiamo che anche questa volta sembra esistere una dipendenza

temporale con caratteristiche di tipo markoviano riguardo l'esistenza di ciascun nodo,

dunque il presence schedule di un arco (o contatto) che avviene secondo i modelli di

mobilità, contiene lunghi periodi in cui esso non esiste e lunghi periodi in cui esso

esiste.

Page 136: Validation and analysis of mobility models

136

Fig. 5.2.2.5: Conditional Probability distribution dove F(𝑥 = frazione di archi con

𝑃𝑒,0/Pe ≥ x. Comparazione della Conditional Probability distribution di tre dataset,

uno collezionato nell'esperimento NenoMACRO e due generati dai modelli di

mobilità, entrambi con 114 nodi con un contact detection range di 1𝑚: Per il Random

Waypoint model abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01

e 0.7 m/s, e il Truncated Lévy Walk model, le flight lengths e i pause times seguono le

truncated power laws con 𝛼 = 1.6, 𝛽 = 0.8

Fig. 5.2.2.6: Conditional Probability Distribution dove F(𝑥) = frazione di archi con

Page 137: Validation and analysis of mobility models

137

𝑃𝑒,1/Pe ≥ x. Comparazione della Conditional Probability distribution di tre dataset,

uno ottenuto nell'esperimento NeonMACRO e due generati dai modelli di mobilità,

entrambi con 114 nodi con un contact detection range di 1𝑚: Per il Random Waypoint

model abbiamo assegnato ai nodi velocità uniformemente distribuite tra 0.01 e 0.7

m/s, e il Truncated Lévy Walk model, le flight lengths e i pause times seguono le

truncated power laws con 𝛼 = 1.6, 𝛽 = 0.8.

Nelle figure 5.2.2.7 e 5.2.2.8 ci si accorge che mediamente la probabilità di

esistenza di un contatto risulta essere mediamente stazionaria in tutti e tre i casi.

Per quanto riguarda le correlazioni tra contatti, viene valutato cosa succede

calcolando le matrici di correlazione per ogni cluster classificato secondo la

modularity (vededere i grafi ottenuti nella figura 5.2.2.11). Nei grafi mostrati in figura

5.1.2.11, si osserva che nel caso del modello RWP i nodi vengono classificati in tanti

piccoli gruppi e in uno grosso, ognuno dei quali (come mostrato nella figura 5.2.2.9)

non presenta correlazioni tra contatti avvenuti contemporaneamente. Lo stesso tipo

di classificazione avviene anche nel caso del modello TLW, dove ciascuno di essi

(come mostrato nella figura 5.2.2.10) non presenta particolari correlazioni tra contatti

distinti.

Il modello TLW non classifica i nodi in un grandissimo gruppo perché,

rispetto al caso precendente, i nodi tendenzialmente comunicano solo con un

ristretto numero di nodi. Invece il modello RWP presenta una grande community,

nel suo Contat Graph aggregato partizionato secondo la modularity, perché rispetto al

modello TLW i nodi interagiscono con mediamente con più nodi. Se si confrontano

le due matrici con quella calcolata per NeoMACRO (mostrata in figura 5.2.1.14), ci

accorgiamo che in questo caso i modelli di mobilità mostrano delle dipendenze

temporali sporadiche, se non nulle, comunque differenti da quelle del caso reale

sopra citato. Questo accade solo perché in aree di simulazione estese, la probabilità

che due persone comunichino a distanza ravvicinata è veramente esigua, quindi la

correlazione temporale tra contatti risulta essere improbabile.

Page 138: Validation and analysis of mobility models

138

Fig. 5.2.2.7: Distribuzione della probabilità che un arco esista o meno in una

determinata epoca costituita da 100 secondi. La distribuzione è stata calcolata su tutti

gli archi del grafo.

Fig. 5.2.2.8: Distribuzione della probabilità che un arco esista o meno in una

determinata epoca costituita da 100 secondi. La distribuzione è stata calcolata su un

sottoinsieme di 20 archi scelti casualmente.

Page 139: Validation and analysis of mobility models

139

Fig. 5.2.2.9: Vengono mostrate le matrici di correlazione aventi il maggior numero di

correlazioni tra archi appartenenti alla rispettiva community, classificate calcolando la

Modularity sul grafo aggregato, ottenuto simulando il Random Waypoint model.

L'intensità del giallo indica quanto l'esistenza di due archi è correlata nel tempo.

Maggiore è l'intensità, maggiore è la correlazione temporale tra i due archi.

Come è avvenuto nel caso SocialDIS, i risultati ottenuti mostrano che anche

aumentando l'area di simulazione non aumentano le correlazioni statistiche tra i dati

generati dai modelli TLW e RWP e quelli forniti dall'esperimento NeonMACRO,

confutando l'ipotesi per cui tali modelli possano risultare validi aumentando le

dimensioni dell'ambiente.

Page 140: Validation and analysis of mobility models

140

Fig. 5.2.2.10: Vengono mostrate le matrici di correlazione aventi il maggior numero

di correlazioni tra archi appartenenti alla rispettiva community, classificate calcolando

la Modularity sul grafo aggregato, ottenuto simulando il Truncated Lévy Walk model.

L'intensità del giallo indica quanto l'esistenza di due archi è correlata nel tempo.

Maggiore è l'intensità, maggiore è la correlazione temporale tra i due archi.

Page 141: Validation and analysis of mobility models

141

Fig. 5.2.2.11: Il grafo a sinistra mostra mostrate le community ottenute calcolando la

Modularity sul grafo aggregato ottenuto simulando il RW model, mentre il grafo a

destra mostra le community ottenute calcolando la Modularity sul grafo aggregato

ottenuto simulando il TLW model. I numeri sono gli identificativi delle community.

5.3 Sintesi dei risultati ottenuti

In questo capitolo sono state confrontate statisticamente le tracce di contatti

collezionate a partire dagli esperimenti SocialDIS e NeonMACRO con quelle

ottenute a partire dai modelli di mobilità RWP e TLW. Confrontando le proprietà dei

Contact Graph in forma aggregata (Graph Density, Cluster Coefficient, Weighted

Clustering Coefficient, Strength, Modularity) e gli andamenti delle relative Contact

Time Distribution, si è notato che il comportamento tipico degli individui riscontrato

negli esperimenti sociali (ossia quello di comunicare prevalentemente con altri

individui con i quali si ha un legame d'amicizia e sporadicamente con altri individui

sconosciuti) non viene catturato dai modelli di mobilità RWP e TLW, dove invece le

persone tendono a comunicare con quasi tutte le altre e a ricomunicare poco con

quelle che hanno già precedentemente incontrato. Successivamente, attraverso lo

sviluppo di un semplice protocollo di flooding, si è mostrato che a causa dell'elevato

numero di comunicazioni che coinvolgono quasi tutti gli individui, nei due modelli di

mobilità un'informazione si propaga molto più velocemente rispetto ai casi SocialDIS

e NeonMACRO.

Page 142: Validation and analysis of mobility models

142

Confrontando poi le Conditional Distribution of link's existence è stato verificato che nei

modelli di mobilità RWP e TLW, se un contatto si verifica ad un determinato tempo,

quasi sicuramente esso avverrà al tempo successivo, mentre se un contatto non

avviene in un determinato tempo quasi sicuramente non avverrà al tempo successivo.

Questo risultato è concorde a quelli precedenti per il fatto che entrambi i modelli di

mobilità generano comunicazioni tra stessi individui che si ripresentano raramente e

che mediamente durano di più, rispetto a quelle generate nei casi reali trattati.

Dunque il presence schedule di un arco (rappresentante un contatto) conterrà lunghi

periodi in cui esso esiste, seguiti da lunghi periodi in cui esso non esiste.

Confrontando le matrici di correlazione è stato appurato che i modelli RWP e TLW

mostrano un discreto quantitativo di correlazioni temporali tra contatti distinti, ossia

risultano frequenti le comunicazioni tra coppie di nodi distinte nello stesso istante

temporale. Questo comportamento si discosta da quello registrato nei casi SocialDIS

e NeonMacro, dunque le comunicazioni che avvengono tra i nodi che si muovono

secondo i modelli di mobilità, presentano dipendenze e correlazioni temporali che

non sono in linea con quanto accade negli esperimenti sociali.

Per validare l'ipotesi per cui i modelli RWP e TLW possano risultare validi

aumentando le dimensioni dell'ambiente in cui gli individui possono muoversi, sono

state poi rieffettuate tutte queste analisi statistiche considerando le dimensioni

dell'area di simulazione di entrambi i modelli aumentate di un fattore 10. I risultati

ottenuti mostrano che anche aumentando l'area di simulazione non aumentano le

correlazioni statistiche tra i dati generati dai modelli TLW e RWP e quelli forniti dagli

esperimenti SocialDIS e NeonMACRO, confutando l'ipotesi per cui tali modelli

possano risultare validi aumentando le dimensioni dell'area di simulazione.

Page 143: Validation and analysis of mobility models

143

Capitolo 6

Conclusioni

Nel lavoro svolto in questa tesi è stata condotta un'accurata analisi statistica che ha

permesso di stabilire quanto i contatti di prossimità, tracciati partendo dai modelli di

mobilità Random Waypoint (RWP) e Truncated Lévy Walk (TLW), riproducano proprietà

statistiche simili a quelle riscontrate nei dati ottenuti dagli esperimenti SocialDIS e

NeonMACRO. Tramite una piattaforma RFID-based sono stati collezionati i contatti

di prossimità tra persone in entrambi gli esperimenti. Da questi dati sono stati

costruiti dei grafi dinamici che mostrano l'evoluzione nel tempo delle interazioni

sociali tra individui.

I grafi dinamici costruiti sono stati analizzati sia in forma aggregata che in

forma dinamica, ossia rispettivamente aggregando le interazioni a distanza ravvicinata

per intervalli di tempo che vanno dalle 2 ore (nel caso NeonMACRO) alle 12 ore (nel

caso SocialDIS), e valutando l'evoluzione dei contatti secondo per secondo.

Le prime analisi condotte mostrano che nel caso SocialDIS tipicamente gli

individui hanno contatti di prossimità in prevalenza con altri individui con cui hanno

stretto un legame d'amicizia e raramente con altri individui sconosciuti, mentre nel

caso NeonMACRO le persone tendono a comunicare soprattutto con quelle che

appartengono alla stessa comitiva e sporadicamente con tutte le altre.

Questo comportamento tipico degli individui riscontrato negli esperimenti,

non viene catturato dai modelli di mobilità RWP e TLW, i quali sono stati

opportunamente configurati per riprodurre in modo realistico il movimento delle

persone nei due differenti contesti. In particolare, una differenza fondamentale

emerge confrontando i risultati forniti dalle metriche statiche applicabili sui grafi

aggregati e dalle metriche dinamiche applicabili su quelli non aggregati.

Gli agenti che si muovono secondo questi due modelli di mobilità tendono a

comunicare con quasi tutti gli altri agenti e tendono a produrre intervalli tra contatti

successivi che mediamente risultano essere eccessivamente lunghi.

Page 144: Validation and analysis of mobility models

144

Successivamente si sono investigate importanti differenze temporali indotte

dai modelli e presenti anche nelle tracce reali. I modelli RWP e TLW mostrano

significative correlazioni spaziali tra contatti distinti, contrariamente a quanto avviene

in SocialDIS e in NeonMacro, nei quali esse sono risultate di gran lunga inferiori.

Infine, attraverso l'implementazione di un semplice protocollo di flooding, si

è anche investigato su come un'informazione si diffonde tra le reti di contatti

dinamiche costruite a partire dai due modelli di mobilità e quelle generate a partire

dai due esperimenti sociali. Si è riscontrato che entrambi i modelli, proprio per

l'elevato numero di contatti che generano, non riproducono il comportamento

diffusivo osservato negli esperimenti SocialDIS e NeonMACRO.

6.1 Proposte di sviluppo future

Come è stato detto nel Capitolo 5, il comportamento delle persone registrato nei due

esperimenti sociali si discosta nettamente da quello prodotto dai due modelli di

mobilità, perché essi non tengono conto del fatto che:

1. le persone non scelgono casualmente la destinazione da raggiungere poichè

essa dipende dalle loro preferenze personali;

2. le persone tipicamente comunicano e si muovono più frequentemente con

persone con cui hanno un legame di conoscenza;

3. le persone entrano ed escono dal luogo dell'esperimento.

I primi due fattori possono essere affrontati fondendo ed utilizzando il modello di

mobilità Weighted Waypoint Mobility (illustrato nel paragrafo 2.1.8), dove le persone

scelgono la destinazione da raggiungere in base ad una determinata probabilità che

dipende da quanto esse tendono a visitarla, con il modello di mobilità Nomadic

Community Mobility Model (illustrato nel paragrafo 2.2.3), dove gruppi di nodi si

muovono da un punto ad un altro insieme, mentre nel punto in cui si trovano si

possono muovere individualmente come preferiscono. Quest'ultimo modello è

particolarmente adatto per simulare scenari come quelli del NeonMACRO, dove

gruppi di persone visitano un museo d'arte. Invece, per quanto concerne il terzo

fattore, viene proposta un'idea che potrebbe stare alla base di una versione adattata

dei modelli RWP e TLW, la quale tenta di simulare il fatto che gli individui possono

entrare ed uscire in qualsiasi momento dall'area di simulazione.

Page 145: Validation and analysis of mobility models

145

Si potrebbe rappresentare tale comportamento secondo una catena di Markov [66] a

due stati (mostrata in figura 6.1), dove un nodo può trovarsi in due stati differenti: lo

stato 0 rappresenta la sua esistenza nell'area di simulazione, mentre lo stato 1

rappresenta la sua assenza da tale area.

Fig.6.1: Diagramma di flusso della versione adattata del RWP e TLW Mobility

Model.

Utilizzando la seguente matrice di probabilità possiamo determinare l'esistenza di

uno specifico individuo in un'area 𝑋𝑚𝑎𝑥 × 𝑌𝑚𝑎𝑥 :

𝑃 = 𝑃(0,0) 𝑃(0,1)

𝑃(1,0) 𝑃(1,1)

Dove ciascun valore 𝑃(𝑎, 𝑏) rappresenta la probabilità che un nodo mobile passi

dallo stato 𝑎 allo stato 𝑏. L'esistenza o non esistenza di ciascun nodo nell'ambiente di

simulazione viene aggiornata in base ai valori della seguente matrice:

𝑃 = 1 − 𝑝 𝑝

𝑞 1 − 𝑞

Per trovare le probabilità dello stato stazionario, ossia la probabilità che a un certo

istante un nodo si trovi in uno dei due stati, dobbiamo calcolare il seguente limite:

lim𝑡→∞

𝑋0𝑃𝑡 = 𝑋

Page 146: Validation and analysis of mobility models

146

Dove 𝑋0𝑃𝑡 è la probabilità che al tempo t un nodo si trovi in un determinato stato a

partire dallo stato iniziale 𝑋0 e 𝑋 è la probabilità di stato stazionario. Calcolando tale

limite otteniamo che 𝑋 = (𝑞

𝑝+𝑞,

𝑝

𝑝+𝑞). Pertanto se si determinano le probabilità 𝑝 e 𝑞

analizzando le tracce di contatti ottenute nei casi SocialDIS e NeonMACRO, si

potrebbe costruire una versione adattata dei modelli di mobilità RWP e TLW che

potrebbe risultare più accurata nel catturare i comportamenti degli esperimenti sociali

proposti nella presente tesi.

Infine, per quanto riguarda il software sviluppato per effettuare le analisi

statistiche, bisogna tenere in considerazione che in futuro si potrebbe avere la

necessità di analizzare Contact Graph costruiti a partire da esperimenti sociali

particolarmente duraturi o comunque costituiti da milioni contatti.

Per questi casi computazionalmente onerosi, bisognerebbe adattare gli algoritmi che

calcolano le metriche per poter essere eseguiti su cluster di computer (dedicati o

cloud). Ad esempio una soluzione ragionevole potrebbe essere implementare le

metriche secondo MapReduce, un modello di programmazione per processare grandi

dataset in un grande sistema distribuito di computer [67].

Page 147: Validation and analysis of mobility models

147

Bibliografia

[1] A. Barrat and M. Barthelemy and R. Pastor-Satorras and A. Vespignani

(2004). "The architecture of complex weighted networks". Proceedings of the

National Academy of Sciences 101 (11): 3747–3752.

[2] D. J. Watts and Steven Strogatz (June 1998). "Collective dynamics of 'small-

world' networks". Nature 393 (6684): 440–442.

[3] J. L. Rodgers and W. A. Nicewander. Thirteen ways to look at the correlation

coefficient. The American Statistician, 42(1):59–66, February 1988.

[4] Stigler, Stephen M. (1989). "Francis Galton's Account of the Invention of

Correlation". Statistical Science 4 (2): 73–79.

[5] M. E. J. Newman. Assortative mixing in networks. Physical Review Letter,

89:208701, 2002.

[6] M. E. J. Newman. Mixing patterns in networks. Physical Review E,

67:026126,2003.

[7] M. E. J. Newman and Juyong Park. Why social networks are different from

other types of networks. Phys. Rev. E, 68(3):036122, Sep 2003.

[8] Afonso Ferreira. Building a reference combinatorial model for manets. IEEE

Network, 18(5):24-29, 2004

[9] Interval Tree http://en.wikipedia.org/wiki/Interval_tree

[10] http://fastutil.dsi.unimi.it/docs/overview-summary.html

[11] Mathieu Bastian, Sebastien Heymann, and Mathieu Jacomy. Gephi: An Open

Source Software for Exploring and Manipulating Networks. In International

Conference on Weblogs and Social Media, 2009.

[12] Synthetic data. (n.d.). McGraw-Hill Dictionary of Scientific and Technical

Terms.

[13] Tracy Camp, Je Boleng, and Vanessa Davies. A survey of mobility models

for ad hoc network research. Wireless Communications and Mobile

Computing, 2(5):483-502, 2002.

[14] Christian Bettstetter. Mobility modeling in wireless networks: categorization,

smooth movement, and bordereects. SIGMOBILE Mob. Comput.

Commun.Rev., 5:55-66, July 2001.

[15] M. M. Zonoozi and P. Dassanayake. User mobility modeling and

characterization of mobility patterns. Selected Areas in Communications,

IEEE Journal on, 15(7):1239-1252, September 1997.

[16] Xiaoyan Hong, Mario Gerla, Guangyu Pei, and Ching-Chuan Chiang. A grou

mobility model for ad hoc wireless networks. In Proceedings of the 2nd

ACM international workshop on Modeling, analysis and simulation of

wireless and mobile systems, MSWiM '99, pages 53-60, New York, NY, USA,

1999. ACM.

Page 148: Validation and analysis of mobility models

148

[17] G. Pei, M. Gerla, X. Hong, and C.-C. Chiang. A wireless hierarchical routing

protocol with group mobility. In Wireless Communications and Networking

Conference, 1999. WCNC., volume 3, pages 1538-1542. IEEE, 1999.

[18] K.H. Wang and Baochun Li. Group mobility and partition prediction in

wireless ad-hoc networks. In Communications, 2002. ICC 2002. IEEE

International Conference on, volume 2, pages 1017-1021 vol.2, 2002.

[19] Joseph Klafter, Michael F. Shlesinger, and Gert Zumofen. Beyond Brownian

Motion. Physics Today, 49(2):33+, 1996.

[20] Injong Rhee, Minsu Shin, Seongik Hong, Kyunghan Lee, and Song Chong.

On the Levy-Walk Nature of Human Mobility. In 2008 IEEE INFOCOM -

The 27th Conference on Computer Communications, pages 924-932. IEEE,

April 2008.

[21] Seongik Hong, Injong Rhee, Seong Joon Kim, Kyunghan Lee, and Song

Chong. Routing Performance Analysis of Human-Driven Delay Tolerant

Networks using the Truncated Levy Walk Model. In MobilityModels '08:

Proceeding of the 1st ACM SIGMOBILE International Workshop on

Mobility Models for Networking Research, pages 25-32, New York, NY,

USA, 2008. ACM.

[22] Thomas Karagiannis, Jean-Yves Le Boudec, and Milan Vojnovic. Power law

and exponential decay of inter contact times between mobile devices. In

Proceedings of the 13th annual ACM international conference on Mobile

computing and networking, MobiCom '07, pages 183-194, New York, NY,

USA, 2007. ACM.

[23] Girvan M and Newman M E J, 2002 Proc. Natl. Acad. Sci. USA 99 7821.

[24] Newman M E J, 2006 Proc. Natl. Acad. Sci. USA 103 8577

[25] Newman M E J, 2004 Phys. Rev. E 70 056131.

[26] Andrè Panisson. Selective Information Dissemination for Mobile

Computing.

[27] http://wiki.gephi.org/index.php/HowTo_write_an_import

[28] http://wiki.gephi.org/index.php/HowTo_write_a_graph_generator

[29] http://wiki.gephi.org/index.php/HowTo_write_a_metric

[30] A. Chaintreau, P. Hui, J. Crowcroft, C. Diot, R. Gass, and J. Scott. Impact of

Human Mobility on the Design of Opportunistic Forwarding Algorithms. In

Proc. 25th IEEE Infocom, pages 1–13. IEEE, 2006.

[31] M. C. Gonzàlez, C. A. Hidalgo, A.-L. Barabàsi, Understanding individual

human mobility patterns, Nature 453 (2008) 779-782.

[32] C. Song, Z. Qu, N. Blumm, A.-L. Barabàsi, Limits of Predictability in Human

Mobility, Science 327 (2010) 1018-1021.

[33] T. Henderson, D. Kotz, and I. Abyzov, “The changing usage of a mature

campus-wide wireless network,” in MobiCom ’04: Proceedings of the 10th

annual international conference on Mobile computing and networking, 2004,

pp. 187–201

Page 149: Validation and analysis of mobility models

149

[34] J. Su, A. Chin, A. Popivanova, A. Goel, and E. de Lara, “User mobility for

opportunistic ad-hoc networking,” in Proceedings of the 6th IEEE

Workshop on Mobile Computing Systems and Applications (WMCSA’04),

2004.

[35] Finkenzeller, K.: RFID handbook, Wiley Hoboken, NJ (2003).

[36] http://www.sociopatterns.org

[37] C. Cattuto, W. Van den Broeck, A. Barrat, V. Colizza, J.-F. Pinton, A.

Vespignani, Dynamics of person-to-person interactions from distributed

RFID sensor networks, PLoS ONE 5(7) (2010) e11596.

[38] H. Alani, M. Szomsor, C. Cattuto, W. Van den Broeck, G. Correndo, A.

Barrat, Live Social Semantics, 8th International Semantic Web Conference

ISWC2009, Lecture Notes in Computer Science 5823 (2009) 698-714,

http://dx.doi.org/10. 1007/978-3-642-04930-9_44.

[39] W. Van den Broeck, C. Cattuto, A. Barrat, M. Szomsor, G. Correndo, H.

Alani, The Live Social Semantics application: a platform for integrating face-

to-face presence with on-line social networking, First International

Workshop on Communication, Collaboration and Social Networking in

Pervasive Computing Environments (PerCol 2010), Proceedings of the 8th

Annual IEEE International Conference on Pervasive Computing and

Communications, Mannheim, Germany (2010) 226-231.

[40] Ciro Cattuto, Wouter Van den Broeck, Alain Barrat, Vittoria Colizza, Jean-

Francois Pinton, and Alessandro Vespignani. Dynamics of Person-to-Person

Interactions from Distributed RFID Sensor Networks. PLoS ONE,

5(7):e11596, 07 2010. [41] M. McNett and G. M. Voelker, “Access and mobility of wireless PDA users,”

Computer Science and Engineering, UC San Diego, Tech. Rep., 2004.

[42] D. Kotz and T. Henderson. CRAWDAD: A Community Resource for

Archiving

[43] Wireless Data at Dartmouth. Pervasive Computing, IEEE, 4(4):12-14, oct.-

dec. 2005.

[44] http://wiserver.dis.uniroma1.it/cms/index.php/projects/3-socialdis

[45] http://wiserver.dis.uniroma1.it/cms/index.php/projects/15-macro

[46] http://wiserver.dis.uniroma1.it

[47] http://www.fim.uni-passau.de/en/fim/faculty/chairs/theoretische-

informatik/projects.html

[48] Pan Hui, Augustin Chaintreau, James Scott, Richard Gass, Jon Crowcroft,

and Christophe Diot. Pocket switched networks and human mobility in

conference environments. In WDTN '05: Proceedings of the 2005 ACM

SIGCOMM workshop on Delay-tolerant networking, pages 244-251, New

York, NY, USA, 2005. ACM.

[49] Nathan Eagle and Alex Pentland. Reality mining: sensing complex social

systems. Personal and Ubiquitous Computing, 10(4):255-268, 2006.

Page 150: Validation and analysis of mobility models

150

[50] Albert Einstein. Investigations on the Theory of the Brownian Movement.

ed. Reinhold Fürth, tradotto da A.D. Cowper. Dover books on physics.

Dove Publications, 1926, reprinted 1956.

[51] E.M. Royer, P.M. Melliar-Smith, and L.E. Moser. An analysis of the optimum

node density for ad hoc mobile networks. In Communications, 2001. ICC

2001.

[52] IEEE International Conference on, volume 3, pages 857-861 vol.3, 2001.

[53] Z. Haas. A new routing protocol for reconfigurable wireless networks. In

Proceedings of the IEEE International

[54] Conference on Universal Personal Communications (ICUPC), pages 562–

565, Oct. 1997.

[55] Z. Haas. A new routing protocol for reconfigurable wireless networks. In

Proceedings of the IEEE International

[56] V. Tolety. Load reduction in ad hoc networks using mobile servers. Master’s

thesis, Colorado School of Mines,1999

[57] C. Chiang. Wireless Network Multicasting. PhD thesis, University of

California, Los Angeles, 1998.

[58] X. Hong, M. Gerla, G. Pei, and C. Chiang. A group mobility model for ad

hoc wireless networks. In Proceedings of the ACM International Workshop

on Modeling and Simulation of Wireless and Mobile Systems (MSWiM),

August 1999.

[59] M. Sanchez and P. Manzoni. Anejos: A java based simulator for ad-hoc

networks. Future Generation Computer Systems, 17(5):573–583, 2001.

[60] M. F. Shlesinger, J. Klafter, and Y. M. Wong, “Random walks with infinite

spatial and temporal moments,” J. Stat. Phys., vol. 27, pp. 499–512, 1982.

[61] McKee, Terry A.; McMorris, F. R. (1999), Topics in Intersection Graph

Theory, SIAM Monographs on Discrete Mathematics and Applications, 2,

Philadelphia: Society for Industrial and Applied Mathematics.

[62] Clark, Brent N.; Colbourn, Charles J.; Johnson, David S. (1990), "Unit disk

graphs", Discrete Mathematics 86 (1–3): 165–177.

[63] Vincent D. Blondel, Jean-Loup Guillaume, Renaud Lambiotte, Etienne

Lefebvre - Fast unfolding of communities in large networks (2008)

[64] Wei-jen Hsu, Kashyap Merchant, Haw-wei Shu, Chih-hsin Hsu, and Ahmed

Helmy. Weighted Waypoint Mobility Model and its Impact on Ad Hoc

Networks. EE Department and CS department, University of Southern

California.

[65] http://it.wikipedia.org/wiki/Radio_Frequency_IDentification

[66] An Introduction to Stochastic Modeling, Taylor, H. and S. Karlin, Academic

Press, NY, 1993.

[67] Dean J, Ghemawat S (2004) MapReduce: simplified data processing on

largeclusters. In Proceedings of Operating Systems Design and

Implementation(OSDI). San Francisco, CA. pp. 137–150.