Analisi della Topologia Scale Free Hidden by Terminals

UNIVERSITÀ DEGLI STUDI DI TRENTO
Dipartimento di Ingengeria e Scienza dell’Informazione
Corso di Laurea in Informatica
Tesi finale
Analisi della Topologia Scale Free
Hidden by Terminals
Relatore:
Prof. Renato Antonio Lo Cigno
Correlatore:
Dott. Leonardo Maccari
Anno Accademico 2014 - 2015
Laureando:
Samuel Valentini
Indice
Introduzione
2
1 Wireless Community Networks
1.1 Storia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Presente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Nodi e Tecnologia . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
5
5
2 Grafi
2.1 Definizioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Metriche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
8
3 Topologia Scale Free Hidden by Terminals
3.1 Topologia Scale Free . . . . . . . . . . . . . . . . . . . . . . .
3.2 Rete Core e Nodi Terminali . . . . . . . . . . . . . . . . . . .
3.3 Algoritmo per la generazione della topologia . . . . . . . . . .
3.4 Implementazione del generatore . . . . . . . . . . . . . . . . .
3.4.1 Generazione Brute Force . . . . . . . . . . . . . . . . .
3.4.2 Algoritmo per la generazione dei terminali . . . . . . .
3.4.3 Distribuzioni Gamma e distribuzioni Binomiali Negative
3.4.4 Determinazione dei parametri dell’algoritmo . . . . . .
11
11
12
13
13
14
15
17
19
4 Analisi della robustezza
21
4.1 Analisi della robustezza . . . . . . . . . . . . . . . . . . . . . 21
4.2 Approssimazione della Betweennes Centrality . . . . . . . . . 27
4.3 Correlazione tra metriche di centralità . . . . . . . . . . . . . 31
Conclusioni
32
1
Introduzione
Negli ultimi anni la diffusione delle reti è aumentata esponenzialmente cosı̀
come i metodi di accesso e le tecnologie a disposizione. Fino a pochi anni fa
era impensabile avere un accesso continuo alla rete in mobilità mentre ora le
nuove reti cellulari garantiscono un accesso alla rete ubiquo e continuo anche
se a costi abbastanza elevati e inoltre vari locali pubblici offrono servizi di
connettività come valore aggiunto per i propri clienti.
L’accesso alla rete accende dibattiti nel mondo politico come, ad esempio,
se la connettività è un diritto fondamentale del cittadino. In questo ambito
molti enti pubblici si stanno muovendo per offirire connettività gratuita ai
cittadini tramite reti Wi-Fi.
Tra i nuovi paradigmi di networking le Wireless Community Network
rappresentano un approccio di gestione della rete decentralizzato e orientato alla comunità. In passato il loro scopo principale era quello di garantire la
connettività tramite collegamenti Wi-Fi a lungo raggio, in aree dove gli ISP
tradizionali non avevano convenienza economica nell’investire mentre attualmente, il loro scopo è più comunitario ed è basato sulla condivisione delle
risorse e della conoscenza e sulla costruzione di una rete libera, autogestita
dagli utenti i quali detengono la proprietà dei vari nodi.
La loro evoluzione è stata anche tecnologica infatti all’inizio venivano
utilizzati apparti di rete di fortuna e poco costosi mentre ora quest’ultimi
sono affiancati da apparecchiature e infrastrutture di rete complesse.
Queste reti rappresentano un’ottima risorsa sperimentale per i ricercatori
in quanto la loro natura aperta garantisce che le informazioni sulla rete siano
facilmente ottenibili.
La ricerca nelle WCN è concentrata in diversi campi: alcuni autori si
sono concentrati sulle motivazioni alla base di queste reti, altri hanno sviluppato nuovi protocolli di routing specifici per reti wireless in quanto i
classici protocolli sono risultati troppo inefficienti in questo ambito.
In questa tesi ci si concentrerà sull’analisi di una particolare topologia
tipica di alcune WCN tramite l’implementazione di un generatore di topologie e analizzando alcune caratteristiche come la robustezza e la correlazione
tra metriche di centralità della rete.
Nel capitolo 1 verranno date alcune informazioni aggiuntive sulle Wireless Community Network riguardo alla loro storia, sviluppo e tecnologie
2
mentre nel capitolo 2 verrà definito il formalismo matematico utilizzato per
modellizzare e analizzare la rete.
Il capitolo 3 verterà sull’implementazione del generatore aleatorio di topologie e sulle analisi matematico/statistiche utilizzate per determinare gli
algoritmi di generazione casuali, le distribuzioni di probabilità utilizzate e
la determinazione dei loro parametri.
Nel capitolo 4 verrà analizzata la robustezza della topologia su reti di
diverse dimensioni analizzando vari scenari di guasti e attacchi; infatti in
letteratura c’è molto interesse verso reti reali che rispondono bene a guasti
casuali, ma che invece collassano rapidamente quando attaccate in modo
mirato. Verranno poi analizzate le varie centralità calcolandone le correlazioni e, in un particolare caso, le approssimazioni fattibili utilizzando un
particolare algoritmo.
3
Capitolo 1
Wireless Community
Networks
Al momento, in letteratura, non esiste una definizione precisa di Wireless
Community Network. Per alcuni autori sono delle reti a cui gli utenti hanno
accesso e che utilizzano per usufruire di un servizio di connettività come, ad
esempio, le reti Wi-Fi pubbliche che molte amministrazioni locali mettono
a disposizione dei cittadini. Per altri, invece, sono delle reti nate e gestite
dalla cooperazione tra utenti i quali, non solo usufruiscono del servizio, ma
partecipano in modo attivo alla costruzione e al mantenimento dell’infrastruttura di rete. Nel corso di questa tesi faremo riferimento a quest’ultimo
tipo di rete.
1.1
Storia
Le Wireless Community Network si sviluppano alla fine degli anni ’90 come
evoluzione delle reti di radio amatori. Dopo l’introduzione dello standard
IEEE 802.11, gli appassionati hanno iniziato a sperimentare in modo attivo
con questa tecnologia creando autonomamente reti wireless gestite in modo
decentralizzato, ovvero senza un’autorità come un ISP o un amministrazione
pubblica a gestirne la struttura e la topologia.
Nonostante lo standard Wi-Fi sia utilizzato come collegamento locale,
con le giuste componenti e sperimentazione, si è riusciti a creare dei collegamenti stabili sulla lunga distanza. Inoltre, le frequenze utilizzate dal
Wi-Fi sono considerate deregolamentate e quindi è possibile sperimentare
all’interno dello spettro delle frequenze senza incorrere in sanzioni.
In alcune aree le Wireless Community Networks si sono evolute come
unica alternativa per avere servizi internet data la mancanza di investimenti
da parte degli ISP; questa tendenza sopravvive ancora oggi, soprattutto in
aree rurali, anche se è in calo rispetto al passato.
4
1.2
Presente
Le Wireless Community Networks sono ormai diffuse in tutto il mondo, ad
esempio Ninux1 in Italia e Guifinet 2 in Spagna. Quest’ultima, con oltre
25000 nodi sembra essere, al momento, la WCN più grande del mondo.
Attualmente la filosofia alla base delle WCN è quella di creare una rete
decentralizzata, libera e di proprietà degli utenti in cui vengono si offerti
servizi di telecomunicazione, come VoIP, condivisione file e, in alcuni casi,
internet condiviso, ma il valore fondamentale è presente nella comunità che
partecipa attivamente nella creazione della rete e nella diffusione della conoscenza. Per lo sviluppo della rete ci si affida al lavoro volontario dei membri
della comunità i quali, con il loro tempo e la loro esperienza, permettono ai
nuovi utenti di entrare a far parte del progetto in modo semplice innescando
cosı̀ un processo in cui nuove persone acquisiscono competenze ed esperienza
migliorando la rete e la comunità nel complesso.
Alcuni di questi progetti puntano a diventare una parte integrante di
internet costruita e mantenuta in modo totalmente decentralizzato e, in
alcuni casi, alcune reti sono cresciute a tal punto da essere diventate degli
Autonomous system.
1.3
Nodi e Tecnologia
Nelle WCN coesistono diversi tipi di nodi: si spazia dalla singola antenna
monodirezionale con un semplice router a nodi complessi comprensivi di
molte antenne le quali instradano su diversi nodi e su frequenze diverse.
Figura 1.1: Nodo di una Wireless Community Network.
1
2
http://wiki.ninux.org/PaginaPrincipale
https://guifi.net/en/
5
3
Ogni comunità ha costruito i propri nodi attraverso la sperimentazione
e l’esperienza e non esiste quindi uno standard. Ogni nodo inoltre avrà una
diversa infrastruttura ed utilizzerà una diversa tecnologia in base alla sua
localizzazione: ad esempio un nodo isolato preferirà un collegamento punto
a punto molto stabile mentre nodi molto vicini tra loro potranno affidarsi
a collegamenti omnidirezionali in modo da creare una rete mesh con tutti i
vicini, aumentando la robustezza della rete in caso di guasto, al prezzo di
ridurre la banda disponibile tra i vari link.
Sebbene la tecnologia Wireless sia predominante in quanto più economica
di altre soluzioni viene talvolta integrata con altre tecnologie di livello fisico
e, in Guifinet, alcuni nodi risultano addirittura cablati con fibra ottica grazie
ai finanziamenti pubblici ottenuti dal progetto.
In queste reti una delle difficoltà maggiori consiste nel routing in quanto i comuni protocolli utilizzati per i collegamenti cablati risultano spesso
inadeguati su reti wireless di questo tipo. Sono stati quindi sviluppati i
protocolli OSLR 4 e, in seguito, B.A.T.M.A.N (Better Approach To Mobile
Adhoc Networking) per migliorare le prestazioni di routing in questo tipo
di reti.
3
Immagine tratta dalla guida di Ninux.org “Fondamenti per costruire una rete wireless
libera”: https://docs.google.com/document/d/1OaV1m08lmJX5wb8kxv31skopSHnXwqzp6ggxlMImsA/edit#heading=h.bxzzdrg0ifuz
4
RFC 3626
6
Capitolo 2
Grafi
Senza un formalismo matematico è impossibile descrivere ed analizzare una
topologia di rete, verranno quindi date alcune definizioni e verrà fissata la
notazione utilizzata in seguito.
2.1
Definizioni
Definizione 1. Un grafo G è una coppia ordinata
G = (V, E) dove V è
detto insieme dei vertici (o dei nodi) e E ⊆ V2 detto inisieme dei lati (o
archi). Se e = {vi , vj } ∈ E si dirà che e congiunge i vertici vi e vj i quali
saranno detti adiacenti. L’arco e = {vi , vj } sarà in seguito denotato con eij ;
Definizione 2. Un grafo diretto è una coppia G = (V, E), dove V è l’insieme
(non vuoto) dei vertici ed E è una relazione binaria su V con E ⊆ V × V .
E è quindi un insieme ordinato di coppie di V.
Definizione 3. Un grafo è detto semplice se ∀ v ∈ V l’arco {v, v} 6∈ E e se
esiste al più un arco tra ogni coppia di vertici.
Per descrivere una rete verranno considerati solamente grafi finiti, ovvero
grafi in cui V e E sono insiemi finiti.
Definizione 4. Un grafo è detto pesato se esiste una funzione w : E → R
che associa ad ogni arco un numero reale detto peso dell’arco
Per modellizzare una rete tramite un grafo ogni nodo della rete viene
rappresentato da un vertice, mentre un collegamento tra due nodi verrà
rappresentato da un arco. Nelle reti analizzate verranno considerati solamente collegamenti bidirezionali senza collegamenti tra un nodo e se stesso,
verrà quindi utilizzato il modello del grafo semplice. Nel caso sia necessario
introdurre una metrica di costo sugli archi verranno utilizzati solamente collegamenti bidirezionali simmetrici in quanto tale costo sarà misurato tramite
il round trip time.
7
Definizione 5. Sia G = (V, E) un grafo e sia V 0 ⊆ V ; si definisce il
0
sottografo di G su V’ il grafo G[V 0 ] = (V 0 , E ∩ V2
Ovvero il sottografo G[V 0 ] contiene tutti i lati di G che congiungono i
vertici di V 0 .
Definizione 6. Dato un grafo e (v0 , v1 , ..., vn ) una successione finita di
vertici, si dirà che (v0 , v1 , ..., vn ) è
• una passeggiata se (vi , vi+1 ) ∈ E ∀ 0 ≤ i ≤ n − 1
• un cammino se è una passeggiata e vi 6= vj ∀ i 6= j
• un ciclo se è una passeggiata e vi 6= vj ∀ i 6= j tranne v0 = vn
Si dirà lunghezza di una passeggiata P il numero P
di archi che la compongono.
n−1
w(vi , vi + 1); nel caso
Il peso W di una passeggiata sarà dato da W = i=0
di grafo non pesato W coninciderà con la lunghezza della passeggiata. Dato
un grafo con cicli non negativi il shortest path tra u e v è un cammino
p = (v, v1 , .., u) tale che 6 ∃ p0 = (v, v10 , ..., u) con W (p0 ) < W (p) La lunghezza
dello shortest path sarà indicata con duv
Definizione 7. Un grafo è detto connesso se ∀u, v ∈ V esite un cammino
da u a v
Una componente connessa è un sottografo connesso di G.
Definizione 8. Sia G un grafo, e sia v ∈ V , si definisce grado di v il numero
kv = |{e ∈ E|v ∈ e}|
Un vertice v tale che kv = 0 si dirà nodo isolato mentre se kv = 1 si dirà
nodo foglia.
P
Il grado totale di un grafo è definito come v∈V kv .
La distribuzione dei gradi di un grafo è una funzione pk : N → [0, 1]
definita come:
|{v ∈ V |kv = n}|
pk (n) :=
|V |
La distribuzione
dei gradi è una distribuzione di probabilità discreta in
P
quanto k pk = 1
2.2
Metriche
In network science una questione cruciale è determinare l’importanza di
un nodo. Tale importanza dipende dal contesto di utilizzo di una rete;
ad esempio in una rete di telecomunicazioni l’importanza di un nodo può
essere data dalla quantità di traffico che viene instradato attraverso di esso.
Verranno presentate alcune delle metriche principali.
8
Degree Centrality
La Degree Centrality è la metrica più semplice, ma anche la meno significativa perché basata su proprietà locali del singolo nodo, è definita come:
Cd (v) = kv
Dal punto di vista computazionale è la centralità meno costosa e facile da
calcolare e, per alcuni tipi di grafi, può approssimare bene altre metriche.
Closeness Centrality
La Closeness Centrality è basata sulla lunghezza degli shortest path. L’idea
su cui è basata è che un nodo importante deve essere vicino a tutti gli altri
nodi. Fissato un nodo v si definisce la distanza minima media tra tutti i
vertici come:
1 X
Cv =
duv
|V | u
Tale quantità tende a essere piccola per nodi importanti e, convenzionalmente, un nodo centrale ha un valore alto per le metriche. Si definisce come
Closeness Centrality l’inverso della quantità Cv
Cc (v) =
|V |
1
=P
Cv
u duv
Questa definizione suppone che il grafo sia connesso; in caso contrario tutti
i nodi hanno Cc (v) = 0 perché, per convezione, la distanza duv tra due nodi
non connessi è fissata a ∞. Per ovviare al problema è possibile calcolare
la Closenness Centrality su ogni componente connessa separatamente, ma
in questo modo i nodi delle componenti più piccole tenderanno ad avere
centralità più alta rispetto a quelli delle componenti di dimensione maggiore.
Betweenness Centrality
La Betweenness Centrality è un indice del numero di shortest path che attraversano un nodo. Se le informazioni transitano attraverso il cammino più
breve, i nodi con centralità più alta tenderanno a ricevere e instradare molto
più traffico rispetto ad altri nodi. Formalmente è definita come:
CB (v) =
X σ(s, t|v)
σ(s, t)
s,t∈V
dove σ(s, t) indica il numero di shortest path da s a t, mentre σ(s, t|v) è il
numero di shortest path che transitano per v. Se s = t si dirà che σ(s, t) = 1
mentre σ(s, t|t) = σ(s, t|s) = 0.
9
La Betweennees Centrality può essere estesa facilmente anche agli archi
in questo modo:
X σ(s, t|e)
CE (e) =
σ(s, t)
s,t∈V
dove σ(s, t|e) indica il numero di shortest path che passano per l’arco e.
Eigenvector Centrality
La Eigenvector Centrality presuppone che il grafo sia memorizzato tramite
matrice di adiacenza. Della matrice verranno calcolati gli autovettori e verrà
considerato quello relativo all’autovalore positivo di modulo massimo λ .
Definito t l’autovettore normalizzato rispetto a λ
 a0 
λ
 
t =  ... 
an
λ
la Eigenvector Centrality del nodo i sarà l’i-esimo elemento del vettore t.
10
Capitolo 3
Topologia Scale Free Hidden
by Terminals
Le Wireless Community Networks sono reti molto interessanti perché possiedono topologie non banali.
La topologia Scale Free Hidden By Terminals è stata osservata in alcune
sotto reti di Guifinet da L. Cerdà [1], una rete che comprende oltre 15000
nodi operativi. Tali sotto reti, come ad esempio Osona, sono localizzate in
zone rurali dove le WCN vengono utilizzate per contrastare il digital divide.
3.1
Topologia Scale Free
La topologia Scale Free è una topologia in cui la distribuzione di gradi dei
nodi segue la legge:
pk = Ck −α
Questo tipo di rete presenta una proprietà detta di connessione preferenziale
in cui un nuovo nodo che deve collegarsi alla rete, cercherà preferibilimente
di connettersi ad un nodo con grado elevato. Tale proprietà è ben descritta
dall’algoritmo proposto da A. L. Barabási R. Albert in [2] per generare tale
topologia. L’ algoritmo prende in input due paramentri n, ovvero il numero
di nodi ed m che controlla il numero di archi della rete. L’algoritmo viene
inizializzato con m nodi sconnessi e ad ogni iterazione aggiunge un nodo e
lo collega ai rimanenti con m archi. La probabilità di aggiunta di un arco
è proporzionale al suo grado quindi nodi con un elevato numero di archi
tenderanno a riceverne di nuovi ad ogni iterazione. L’algoritmo termina
dopo aver generato un grafo connesso con n nodi e (n − m)m archi.
11
3.2
Rete Core e Nodi Terminali
Per analizzare la topologia Scale Free Hidden by Terminals è necessario dare
la definizione di nodo terminale. Per alcuni autori i nodi terminali sono tutti
i nodi di grado 1 rimossi ricorsivamente dal grafo originale fintanto che i nodi
rimanenti avranno grado ≥ 2. Per altri sono invece i nodi foglia di una rete.
Quest’ultima sarà la definizione a cui si farà riferimento in seguito.
La topologia Scale Free Hidden By Terminals è caratterizzata da una rete
con un innumerevole numero di nodi terminali; nella rete Osona il rapporto
tra terminali e non terminali è di 25 : 1. Rimuovendo dal grafo i nodi di
grado 1 si ottiene una rete detta rete core, la quale è approssimata molto
bene da una topologia di tipo scale-free.
(a) Rete
(b) Rete Core
Figura 3.1: Esempio di rete Scale Free Hidden by Terminals con 30
nodi-core e 720 terminali
12
3.3
Algoritmo per la generazione della topologia
Cerdà in [1] ha proposto un algoritmo per la generazione di grafi con le
proprietà Scale Free Hidden by Terminals. I parametri di input sono: N il
numero di nodi della rete Core, T il numero di nodi Terminali, E il numero
di archi della rete Core e i parametri α e β della distribuzione Gamma
β α α−1 βx
= Γ(α)
x
e utilizzata per estrarre casualmente il numero di terminali.
L’algoritmo opera in 4 passi ovvero:
1. Creazione dei nodi Core
2. Generazione dei nodi terminali
3. Creazione degli archi della rete core
4. Collegamento dei nodi terminali
L’algoritmo viene istanziato con N nodi disconnessi ai quali verranno in seguito collegati i terminali. Per generare i T terminali al passo 2) vengono
estratti N valori da una distribuzione Gamma(α, β) ed ogni valore verrà
associato ad un particolare nodo core. Essendo la Gamma una variabile
aleatoria continua, è necessario discretizzare i valori, verranno quindi analizzate due diverse strategie di discretizzazione utilizzando la funzione floor
e la funzione round. La creazione degli archi della rete core viene eseguita
in due passaggi. Per ogni nodo core verrà generato un arco scegliendo come
destinazione un altro nodo casuale scelto con probabilità proporzionale al
grado, in questo modo verrà garantita la proprietà di collegamento preferenziale. Lo scopo di questo primo passaggio è di garantire la connettività
del grafo ottenuto generando almeno un arco per ogni nodo core. Il secondo
passaggio genera per ogni coppia di vertici una probabilità pesata sul grado
e genera casualmente gli archi rimanenti, anche in questo caso è garantita
la proprietà di connessione preferenziale. L’algoritmo termina dopo aver
collegato ogni nodo terminale al non terminale al quale è associato.
3.4
Implementazione del generatore
Per implementare il generatore sono stati esplorati diversi sistemi e diverse
tecniche. Per generare un grafo valido il problema principale è nell’imporre
N
X
T (ni ) = T
(3.1)
i=1
ovvero che la somma dei terminali sia uguale al T dato in input. Un altra
proprietà da tenere in considerazione è che un nodo core deve avere almeno
un terminale per rispettare la definizione data a inizio capitolo. Per testare
le varie implementazioni sono state effettuate delle simulazioni utilizzando
13
come parametri i valori N = 266, T = 5846, E = 398 e α = 0.25, β =
1.15 · 10−2 ovvero i valori osservati nella rete Osona.
3.4.1
Generazione Brute Force
Il primo metodo di generazione tentato è stato un metodo di generazione
Brute Force. Oltre alla scarsa efficienza è chiaro che questo metodo soffre di
grossi problemi nel rispettare (3.1). Se si definisce X1 ... Xn una successione
finita di n v.a di legge Γ(α,β) indipendenti, con media µ = αβ e con varianza
σ = βα2 tali che
T
µ=
(3.2)
N
Definito Sn = X1 + ... + Xn . Si deve stimare
P(Sn = T )
(3.3)
Supponendo N abbastanza grande, per il teorema del limite centrale, Sn
converge in legge a una variabile aleatoria N (N µ, N σ 2 ). Riscrivendo (3.2)
otteniamo T = N µ, da cui N (T, N σ 2 ). Si vuole ora calcolare
P(N = T )
(3.4)
ma essendo la v.a. continua, tale probabilità è 0. Essendo interessati
solamente ai valori interi possiamo tuttavia stimare la probabilità come
1
1
=
P T − ≤N ≤T +
2
2
!
T − 12 − T
T + 12 − T
N −T
√
P
=
≤ √
≤ √
(3.5)
Nσ
Nσ
Nσ
1
1
P − √
≤Z≤ √
2 Nσ
2 Nσ
dove Z è la distribuzione N (0, 1). La stima è quindi data da
1
√
2Φ
−1
2 Nσ
(3.6)
Ora, se istanziamo i valori con α = 0.25, β = 0.0115 e N = 266, abbiamo
che µ = 21, 73, σ 2 = 1890, 36 e T = 5846. La stima P(S266 = T ) ≈ 0.0006
Si consideri ora la seconda condizione, cioè che ogni nodo core deve avere
almeno un terminale. Formalmente
∀1≤i≤N Xi ≥ 1
Sia p = P(Xi ≥ 1) ovvero la probabilità che il nodo i-esimo abbia almeno
un terminale. Poiché indipendenti, la probabilità che si verifichi per tutte
14
le N v.a. è data dal prodotto delle singole probabilità, ovvero pp...p = pn .
Istanziamo con α = 0.25, β = 0.0115 e n = 266 otteniamo p = 0.64 dunque
pN = 0.64266 ≈ 2−52 .
Il metodo di generazione Brute Force è quindi inapplicabile a causa delle
scarse probabilità emerse durante l’analisi.
3.4.2
Algoritmo per la generazione dei terminali
Per ovviare ai problemi della generazione Brute Force si è deciso di:
• traslare l’inizio della coda sinistra della distribuzione Gamma in 1
• utilizzare il seguente algoritmo per avere il corretto numero di nodi
terminali
Algorithm 1 Generazione dei terminali
Require: T, N, α, β
rem nodes ← N − T
r ← new Array(N)
for i ← 1 to N do
. Inizializza l’array per traslare la Γ
asd
r[i] ← 1
i←i+1
end for
i←1
while rem nodes AND i ≤ N do
v ← random Γ(α, β)
if v > rem nodes then
. Ho assegnato tutti i nodi disponibili
r[i] ← rem nodes
rem nodes ← 0
else
r[i] ← bvc
rem nodes ←rem nodes - bvc
i←i+1
end if
end while
. Non ho assegnato tutti i nodi
if rem nodes then
. Assegno i rimanenti all’ultimo nodo
r[N] ← rem nodes
end if
return r
Si deve ora verificare se tale algoritmo mantiene effettivamente i valori
distribuiti secondo una distribuzione Γ(α, β) traslata in 1. Per eseguire la
verifica si è utilizzato il test del χ2 su 10000 estratti utilizzando l’algoritmo e
15
discretizzati tramite la funzione floor e la funzione round. Per confronto sono
stati eseguiti dei test utilizzando dei campioni estratti da una Gamma non
discretizzata. Definita X una v.a. di legge Γ(α, β) non è possibile applicare
direttamente il test statistico del χ2 ma è necessario discretizzare la funzione
partizionando l’intervallo [1, +∞[ in intervalli di dimensione unitaria, ad
esclusione dell’ultimo, e si associando a ciascuno di essi la probabiltà p che
ha X di cadere nell’intervallo i-esimo [k, k + 1].
pi = P(k ≤ X ≤ k + 1) = P(X ≤ k + 1) − P(X ≤ k)
Non è però possibile partizionare tutto [1, +∞[ in intervalli di dimensione unitaria, si costruisce quindi un ultimo intervallo di dimensione infinita
[t, +∞[. Per determinare t si è imposto che npi ≥ 2 in modo da avere circa due campioni in ogni intervallo precedente. La probabilità associata a
[t, +∞[ è stata calcolata come
P(X > t) = 1 − P(X ≤ t)
Ora, estratto il campione casuale, possiamo stimare le frequenze dell’intervallo i-esimo come
Ni
fi =
n
dove Ni è il numero di campioni che cadono nell’intervallo i-esimo. Possiamo
definire la statistica:
m
X
(pi − fi )2
Tn = n
pi
i=1
Dove m è il numero degli intervalli. Per il teorema di Pearson, la statistica
Tn ∼ χ2 (m − 1), quindi possiamo applicare il test. Per le simulazioni si è
fissato Γ(0.25, 0.0115) + 1, n = 266 e l’intervallo di confidenza α = 0.05.
Si sono eseguite anche delle simulazioni utilizzando la funzione round anziché floor con una costruzione analoga partizionando l’intervallo [0.5, ∞[. I
risultati ottenuti sono i seguenti:
Campioni Gamma
Campioni Gamma Floored
Campioni Algoritmo Floored
Successi
9339
9339
9164
Fallimenti
661
661
836
Tabella 3.1: I valori ottenuti dalle simulazioni su 10000 campioni generati
con la distribuzione discretizzata con floor
Osserviamo che i test superati dalla Gamma sono uguali in numero a
quelli superati dalla Gamma discretizzata, sia per la funzione floor che per
la funzione round. Ciò avviene poiché ogni intervallo viene costruito in
16
Campioni Gamma
Campioni Gamma rounded
Campioni Algoritmo Rounded
Successi
9327
9327
9182
Fallimenti
673
673
818
Tabella 3.2: I valori ottenuti dalle simulazioni su 10000 campioni generati
con la distribuzione discretizzata con round
modo tale da confinare al suo interno tutti i campioni discretizzati e dunque
le frequenze restano invariate. Inoltre i risultati ottenuti con le due funzioni
sono simili perché, per costruzione, viene applicata una semplice traslazione
al centro dell’intervallo. L’utilizzo della round non apporta alcun beneficio
e verrà quindi utilizzata la floor. I campioni generati dall’algoritmo hanno
risultati leggermente inferiori rispetto ai valori estratti da una legge Γ reale
ma, consideriamo la v.a Y che conta il numero k ∈ N+ di tentativi necessari
per generare un campione valido con l’algoritmo e chiediamoci P(Y = k) =
p(1 − p)k−1 quindi Y ∼ G(p). Se consideriamo p ∼ 0.9 come risulta dalle
1
simulazioni, il valore atteso E[Y ] = p1 = 0.9
= 1.11. Ci aspettiamo, in
media, circa 2 tentativi per ottenere un campione statisticamente valido.
Ora, applicando un metodo di estrazione Try and Reject con l’algoritmo
proposto, dobbiamo effettuare un numero di tentativi medio molto piccolo da
un punto di vista computazionale al prezzo di un test statistico aggiuntivo.
Se consideriamo la probabilità di ottenere un campione tramite generazione
diretta (P = 0.0006) l’algoritmo risulta computazionalmente vantaggioso
nonostante il test necessario.
3.4.3
Distribuzioni Gamma e distribuzioni Binomiali Negative
Utilizzare una v.a. discreta eliminerebbe i problemi di discretizzazione e la
distribuzione Gamma ha una controparte discreta detta binomiale negativa
N B(p, r) con p ∈ [0, 1] e r ∈ R definita come :
k+r−1
P(k) =
(1 − p)r pk
k
la distribuzione ha valore atteso e varianza rispettivamente
pr
E=
1−p
pr
V ar =
(1 − p)2
sappiamo che la Gamma(α, β)
α
E=
β
17
α
β2
vogliamo imporre che le due distribuzione abbiano valore atteso e varianza
uguali quindi abbiamo che
pr
α
=
1−p
β
pr
α
= 2
2
(1 − p)
β
da cui segue che
p=1−β
α
r=
1−β
Con la condizione 0 < β < 1. Istanziando α = 0.25 e β = 0.0115 possiamo
confrontare le due distribuzioni. Ora le due distribuzioni sono molto simili,
V ar =
0.45
0.40
0.35
0.30
0.25
0.20
0.15
0.10
0.05
0.00
0
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
0
PDF delle distribuzioni
Gamma
Binomiale
2
2
4
6
8
10
4
6
8
10
CDF delle distribuzioni
Figura 3.2: I grafici di PDF e CDF delle due distribuzioni
con differenze più marcate nei valori 0 e 1 con circa 0.04 e 0.02 di differenza
nella probabilità rispettivamente, mentre per valori più grandi convergono
molto rapidamente. Per controllare ulteriormente le approssimazioni sono
stati eseguiti due test del χ2 su campioni estratti da una distribuzione e
confrontati con l’altra ottenendo i seguenti risultati. In conclusione, la binomiale approssima molto bene la Gamma ad esclusione dello scarto iniziale
con il vantaggio fondamentale di essere una v.a. discreta. Verrà quindi usata
la binomiale negativa per generare la rete.
18
Campioni Gamma Discreta Teorica Binomiale
Campioni Binomiale Teorica Gamma Discreta
Successi
9305
8620
Fallimenti
695
1380
Tabella 3.3: Valori ottenuti dalle simulazioni
3.4.4
Determinazione dei parametri dell’algoritmo
Si è cercato di individuare i parametri per generare la rete nel modo più
automatico possibile. Dato in input N, per determinare T ed E, si è utilizzata
la stessa proporzione dei nodi trovata da Cerdà. I parametri r e p della
distribuzione richiedono invece un’analisi più approfondita. Sappiamo che
per la distribuzione Binomiale Negativa ha
µ=
pr
(1 − p)
(3.7)
σ2 =
pr
(1 − p)2
(3.8)
abbiamo che µ = T /N ma, non è possibile determinare la varianza da questi parametri. Dando la possibilità all’utente di fornire la varianza della
distribuzione possiamo calcolcare p e r risolvendo (3.7) e (3.8). Abbiamo
che
pr = µ(1 − p)
pr = σ 2 (1 − p)2
da cui
(1 − p)(σ 2 (1 − p) − µ) = 0
ottenendo i valori
p=1−
r=
µ
σ2
µ2
σ2 − µ
La soluzione p = 1 e r = 0 va scartata in quanto la distribuzione non avrebbe
senso con questi valori. Per controllarne la validità è necessario verificare
che 0 ≤ p ≤ 1 ovvero che
µ
0≤1− 2 ≤1
σ
Tale valore non potrà mai essere maggiore di 1 in quanto µ > 0 perché
indica il numero medio di terminali per nodo, mentre σ 2 è positivo per
definizione. Per avere σµ2 > 1 dovrà essere µ > σ 2 valore di input che andrà
controllato. Per definire un valore di default della varianza si è studiato
il rapporto σµ per capire come la distribuzione cambia tenendo fissata la
19
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
0
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
0
PDF delle distribuzioni
2
2
4
6
8
10
4
6
8
10
CDF delle distribuzioni
Figura 3.3: Diverse distribuzioni Binomiali Negative al variare di
σ
µ
σ
µ
σ
µ
σ
µ
σ
µ
= 0.6
=1
=2
=3
=5
σ
µ
media. Per σµ < 1 la distribuzione tende a non avere nodi core con un solo
terminale, mentre all’aumentare del rapporto questo tipo di nodi cresce fino
ad ottenere distribuzioni dove tutti i nodi, escluso l’ultimo per imposizione
dell’algoritmo, hanno un solo terminale.
Come valore di default è stato scelto σµ = 2 in quanto genera delle distribuzioni senza un numero eccessivo di foglie. Viene data all’utente la
possibilità di modificare il rapporto specificando la varianza della distribuzione imponendo di accettare valori solo tra 1 e 4 per evitare distribuzioni
troppo estreme per le quali il test statistico potrebbe fallire ripetutamente,
non riuscendo di conseguenza a generare la rete.
20
Capitolo 4
Analisi della robustezza
In questo capitolo verrà analizzata la robustezza della topologia Scale Free
Hidden by Terminals e verranno affrontate problematiche sul calcolo delle
centralità e sulle loro correlazioni.
4.1
Analisi della robustezza
Per analizzare la robustezza della rete verranno utilizzate le tecniche proposte in [3] e basate sulla Percolation Theory. Tale teoria si basa sul rimuovere
nodi o archi dal grafo ed osservare il comportamento della rete residua. La
rimozione di un nodo o di un arco può simulare diversi scenari reali, come ad
esempio un guasto hardware o un attacco allo scopo di minare la funzionalità
di una rete di telecomunicazioni.
Per analizzare il comportamento della rete rimanente è necessario introdurre una metrica di robustezza. Tale definizione non è immediata, ma
esiste una soluzione basata sulle componenti connesse del grafo. Rimuovendo nodi dalla rete essi vengono rimossi anche dalla loro componente connessa
creando, in alcuni casi, altre disconnessioni da parte dei nodi che si affidavano a quelli rimossi per instradare le informazioni. Con il procedere delle
rimozioni il grafo inizierà ad essere composto da molte componenti connesse
di dimensione sempre minore, tuttavia la componente connessa di dimensione maggiore garantirà la maggiore funzionalità residua della rete. Definita
quindi C0 la componente connessa con il maggior numero di nodi, verrà
utilizzata come metrica:
|C0 |
R=
|V |
Dove V indica l’insieme dei vertici prima di procedere con le rimozioni.
In una rete i nodi e gli archi non sono tutti uguali in quanto, in base alle
metriche definite nel capitolo 2, essi hanno un’influenza diversa sull’instradamento delle informazioni e sulla connettività del grafo. Verranno analizzati
due scenari: il primo riguarda la rimozione casuale di nodi e archi, caso che
21
nella realtà coincide con un guasto casuale, mentre il secondo riguarda la
rimozione secondo le diverse metriche già introdotte, caso che corrisponde
ad un attacco mirato sulla rete. Verranno analizzati i seguenti casi:
• Rimozione casuale dei nodi
• Rimozione dei nodi secondo Degree Centrality
• Rimozione dei nodi secondo Betweennes Centrality
• Rimozione dei nodi secondo Closenness Centrality
• Rimozione dei nodi secondo Eigenvector Centrality
• Rimozione casuale degli archi
• Rimozione degli archi secondo Betweennes Centrality
Le simulazioni verranno effettuate su reti di dimesione variabile da 50, 100,
200 ,300 nodi core, con un rapporto nodi core terminali di 1:25. I grafici
saranno espressi in percentuale di nodi rimossi per poter confrontare reti di
diverse dimensioni. Per le rimozioni casuali il valore ottenuto è una media
effettuata su 25 simulazioni.
1.0
50 nodi
100 nodi
200 nodi
300 nodi
0.8
R
0.6
0.4
0.2
0.0
0
10
20
30
Percentuale di nodi rimossi
40
50
Figura 4.1: Robustezza con rimozione di nodi casuali
22
1.0
50 nodi
100 nodi
200 nodi
300 nodi
0.8
R
0.6
0.4
0.2
0.0
0
10
20
30
Percentuale di nodi rimossi
40
50
Figura 4.2: Robustezza con rimozione secondo Degree Centrality
1.0
50 nodi
100 nodi
200 nodi
300 nodi
0.8
R
0.6
0.4
0.2
0.0
0
10
20
30
Percentuale di nodi rimossi
40
50
Figura 4.3: Robustezza con rimozione secondo Betweenness Centrality
23
1.0
50 nodi
100 nodi
200 nodi
300 nodi
0.8
R
0.6
0.4
0.2
0.0
0
10
20
30
Percentuale di nodi rimossi
40
50
Figura 4.4: Robustezza con rimozione secondo Closeness Centrality
1.0
50 nodi
100 nodi
200 nodi
300 nodi
0.8
R
0.6
0.4
0.2
0.0
0
10
20
30
Percentuale di nodi rimossi
40
50
Figura 4.5: Robustezza con rimozione secondo Eigenvector Centrality
24
1.0
50 nodi
100 nodi
200 nodi
300 nodi
0.8
R
0.6
0.4
0.2
0.0
0
10
20
30
Percentuale di archi rimossi
40
50
Figura 4.6: Robustezza con rimozione di archi casuali
1.0
50 nodi
100 nodi
200 nodi
300 nodi
0.8
R
0.6
0.4
0.2
0.0
0
Figura 4.7:
Centrality
10
20
30
Percentuale di nodi rimossi
40
50
Robustezza con rimozione di archi secondo Betweenness
25
Per quanto riguarda le rimozioni casuali, in media, la topologia perde
nodi linearmente in quanto la probabilità di rimuovere un nodo terminale è
molto più alta rispetto alla rimozione di un nodo core.
I grafici relativi a Degree Centrality e Betweenness Centrality mostrano
l’enorme fragilità intrinseca della topologia in quanto, con rimozioni mirate,
basta meno dell’1% dei nodi rimossi per far collassare completamente la
struttura di rete. Questo accade per la Degree Centrality, perchè i nodi core
hanno grado più elevato dovendo garantire l’accesso di tutti i loro terminali,
e quindi per definizione della metrica essi verranno rimossi in successione
causando lo scollegamento di tutti i loro terminali e di altri nodi core che
si affidavano a loro per l’instradamento. La situazione è analoga per la
Betweenness Centrality in quanto, per definizione i nodi terminali hanno
centralità uguale a 0 causando quindi l’immediata rimozione di tutti i nodi
core. Tale ragionamento si può estendere a reti di qualsiasi dimensione le
quali si comporteranno tutte nello stesso modo.
La Closeness Centrality assegna un valore positivo ai nodi terminali anche se inferiore rispetto a quello del loro nodo core di riferimento in quanto
esso è un hop più vicino del terminale. La robustezza anche in questo caso è
minima venendo selezionati i nodi core più importanti come prime rimozioni.
La Eigenvector Centrality è l’unica metrica che presenta differenze sostanziali. Essa assegna un valore di metrica positivo proporzionale a quello
del nodo core anche ai terminali. I nodi core avranno in ogni caso un valore
più alto e verranno rimossi per primi ma, a seguito della rimozione, dalla
rete saranno eliminati anche i nodi terminali relativi,ormai scollegati, mantenendo le prestazioni della rete costanti per un periodo. È inoltre l’unica
metrca ad avere differenze sostanziali in funzione della dimensione della rete.
Per quanto riguarda l’analisi degli archi la rete si comporta in modo
analogo per le rimozioni casuali mostrandosi però più robusta rispetto alla
rimozione casuale dei nodi, questo perché la rimozione di un arco della rete
core non comporta necessariamente lo scollegamento di nodi.
La Betweenness Centrality degli archi comporta la rimozione di tutta la
rete core la quale mantiene per breve periodo la connettività grazie alla sua
natura mesh, ma dopo la rimozione dei circa il 5% degli archi la rete sarà
formata da N grafi stella, uno per ogni core, e la robustezza sarà data dalla
componente connessa formata dal nodo core di grado più elevato.
26
4.2
Approssimazione della Betweennes Centrality
Brandes in [4] ha descritto un algoritmo per il calcolo della Betweenness Centrality in tempo O(|V ||E|) . Per grafi grandi, anche se sparsi, la complessità
risulta inaccettabile.
Lo stesso autore ha introdotto un altro algoritmo per il calcolo della
betweenness in [5] calcolando gli shortest path solamente per un sottoinsieme
dei vertici, detti pivot, e stimando probabilisticamente la betweenness degli
altri nodi partendo dai percorsi calcolati.
Sono state eseguite delle simulazioni calcolando la betweenness reale e
stimandola tramite l’algoritmo di approssimazione di Brandes utilizzando
come numero di pivot il 10% e il 20% dei nodi del grafo. Le reti analizzate
contengono 50, 100, 200, 300, 400 e 500 nodi core per un totale rispettivamente di 1250, 2500, 5000, 7500, 10000, 12500 nodi. I seguenti grafici
riportano la betweenness solamente dei nodi core in quanto essa sarà 0, per
definizione, per tutti i nodi terminali.
Stima Betweenness Centrality
Betweenness reale
Stima 10% dei nodi
Stima 20% dei nodi
1.0
Betweenness Centrality
0.8
0.6
0.4
0.2
0.0
0
10
20
Nodi
30
40
Figura 4.8: Rete con 50 nodi core
27
50
Stima Betweenness Centrality
Betweenness reale
Stima 10% dei nodi
Stima 20% dei nodi
1.0
Betweenness Centrality
0.8
0.6
0.4
0.2
0.0
0
20
40
Nodi
60
80
100
Figura 4.9: Rete con 100 nodi core
1.0
Betweenness Centrality
0.8
Stima Betweenness Centrality
Betweenness reale
Stima 10% dei nodi
Stima 20% dei nodi
0.6
0.4
0.2
0.0
0
50
100
Nodi
150
Figura 4.10: Rete con 200 nodi core
28
200
Stima Betweenness Centrality
Betweenness reale
Stima 10% dei nodi
Stima 20% dei nodi
1.0
Betweenness Centrality
0.8
0.6
0.4
0.2
0.0
0
50
100
150
Nodi
200
250
300
Figura 4.11: Rete con 300 nodi core
Stima Betweenness Centrality
Betweenness reale
Stima 10% dei nodi
Stima 20% dei nodi
1.0
Betweenness Centrality
0.8
0.6
0.4
0.2
0.0
0
50
100
150
200
Nodi
250
300
Figura 4.12: Rete con 400 nodi core
29
350
400
Stima Betweenness Centrality
Betweenness reale
Stima 10% dei nodi
Stima 20% dei nodi
1.0
Betweenness Centrality
0.8
0.6
0.4
0.2
0.0
0
100
200
Nodi
300
400
500
Figura 4.13: Rete con 500 nodi core
Dalle simulazioni lo scarto tra la betweennes reale e stimata è piccolo
anche utilizzando solamente il 10% dei nodi come pivot. Inoltre, all’aumentare del numero di nodi che compongono la rete, l’approssimazione migliora
e, per dimensioni pari a quelle di Osona, lo scarto è praticamente nullo. È
quindi possibile utilizzare l’algoritmo di Brandes su un sottoinsieme piccolo
di pivot per calcolare la metrica di centralità migliorando notevolmente le
prestazioni nel calcolo.
30
4.3
Correlazione tra metriche di centralità
31
Conclusioni
32
Bibliografia
[1] Llorenç Cerdà-Alabern. On the topology characterization of guifi.net,
2013.
[2] Albert-László Barabási and Réka Albert. Emergence of scaling in random
networks. Science, 286(5439):509–512, October 1999.
[3] Leonardo Maccari and Renato Lo Cigno. A week in the life of three large
wireless community networks, 2014.
[4] Ulrik Brandes. A faster algorithm for betweenness centrality, 2001.
[5] Ulrik Brandes and Pish Christian.
networks, 2006.
33
Centrality estimation in large