2012 Analisi di una Rete Sociale Alessandro Lovati Matricola 626053 Comunicazione Digitale ord. F47 26/01/2012
Indice : 1. Obiettivo del progetto 2. Realizzazione 3. Analisi dei risultati 3.1. Numero di Nodi e Archi 3.2. Betwenness Centrality di un nodo x 3.3. Componenti Connessi 3.4. Media dei cammini minimi (su percorsi finiti ) 3.5. Diametro del grafo 3.6. Grado di un nodo x 3.6.1. Media del grado del grafo 3.7. Altri Indici 3.7.1. Densità del grafo 3.7.2. Clustering di un nodo x 3.7.3. Clustering medio del grafo 4. Visualizzazione del grafo Analisi di una Rete Sociale A.Lovati Pag. 1
1. Obiettivo del progetto Il progetto si pone come scopo primario lo studio di un grafo sociale ottenuto unendo e anonimizzando i grafi rappresentanti i contatti presenti sul social network Facebook di ogni partecipante al corso di Reti di Calcolatori a.a. 2011/12. Il grafo così ottenuto è rappresentativo di tutti i contatti degli studenti coinvolti. 2. Realizzazione Il progetto è stato sviluppato interamente in Java avvalendosi anche di classi esterne per alcune sezioni. Gli strumenti utilizzati sono : 1. Java JDK 7 Utilizzata per lo sviluppo del progetto tramite Eclipse. http://jdk7.java.net 2. API RestFB Utilizzate nella Fase 1 per l interfacciamento con Facebook. http://restfb.com 3. API GraphStream 1.0 Utilizzate per la lettura e analisi de grafo. http://graphstream-project.org La lavorazione è proceduta secondo tre fasi distinte : 1. Realizzazione di una struttura Client/Server per l inserimento in un file.csv dei contatti reali incontrati durante la lavorazione. 2. Creazione di un programma che,una volta interfacciato a Facebook,prelevi l id di tutti i contatti presenti nella propria lista di amici e crei un file.csv contenente una riga per ciascun contatto nel formato : <proprio id>,<id amico> 3. Analisi di un file.dgs risultato dell elaborazione dei file.csv ottenuti nella fase 2 di ciascuno studente e studio di diversi indici del grafo. Analisi di una Rete Sociale A.Lovati Pag. 2
3. Analisi dei Risultati 3.1 Nodi e Archi Il grafo contiene esattamente 432 nodi e 1133 archi, ossia segmenti di unione tra i diversi nodi. Per identificare un collegamento sono necessari due nodi e un arco. 3.2. Betwenness Centrality di un nodo x,e numero di shortest path totali Cominciamo con lo spiegare il concetto di Betwenness Centrality applicata ad un determinato nodo x ; è possibile indicar la come la frequenza con cui il singolo nodo x si trova nel percorso più breve (shortest path) che collega ogni altra coppia di nodi. Trasportando il concetto all interno di un grafo sociale si può affermare che indica quanto una persona è intermediaria tra altre due persone all interno del grafo. Nel caso specifico abbiamo preso come nodo x quello rappresentato dal nostro id, in modo da poter valutare la propria centralità all interno del grafo sociale. Il valore di Betwenness Centrality ottenuto per il nodo x è di : 522,862683 Il valore medio di Betwenness Centrality calcolato sulla somma di tutti i valori di BC,escluso quello di x è : 1101,821664,mentre il valore più alto di BC rilevato è 52037,896620. Da una superficiale analisi dei dati ottenuti possiamo vedere come la BC media sia molto bassa,per cui possiamo dedurre che nel grafo ci siano molti nodi con una BC estremamente bassa,i nodi con Betweenness centrality pari a 0 sono 283,ossia il 65,5% dei nodi totali. Analisi di una Rete Sociale A.Lovati Pag. 3
3.3 Componenti Connessi Possiamo definire la componente connessa di un generico grafo G come un sottoinsieme di G i cui nodi siano tutti interconnessi tra loro. Per chiarire il concetto basta guardare la seguente immagine : Il grafo X è composto da tre diverse componenti connesse, a differenza del grafo Y che ha soltanto una componente connessa, corrispondente al grafo stesso. Il grafo preso in esame per il progetto è composto da una sola componente connessa( si rifà quindi al grafo Y di cui sopra ; questo indica che ogni nodo è interconnesso agli altri, e non ci saranno cammini infiniti verso alcun nodo. Possiamo invece trovare un esempio di cammino infinito nel grafo X quando uno dei nodi relativi alle componenti connesse prova a raggiungere un nodo appartenente ad un altro componente connesso. Il grafo preso in esame nel progetto è un grafo con una sola componente connessa. 3.4 Media dei cammini minimi ( su percorsi finiti ) La media dei cammini minimi è stata calcolata procedendo prima a trovare il numero di shortest path di ciascun nodo verso tutti gli altri ;chiamiamo Y il numero totale di shortest path. Una volta ottenuto questo valore è stato calcolato quale sarebbe stato il divisore per ottenere la media secondo specifiche,ossia non tenendo conto dei cammini minimi di ciascun nodo verso se stesso. Il divisore cosi ottenuto è pari a : X*(X-1), dove X = numero di nodi del grafo Il risultato dell operazione è la nostra media. media = Y/(X*(X-1)) = 3,553321 Analisi di una Rete Sociale A.Lovati Pag. 4
3.5 Diametro del grafo Possiamo definire il diametro di un grafo come il più lungo di tutti gli shortest path calcolabili. Nel caso del nostro grafo il diametro è 6.0. 3.6 Grado di un nodo X Si definisce grado di un generico nodo X il numero di nodi direttamente connessi al nodo. Andando ad analizzare il nodo relativo all id 199 ( l id relativo alla mia utenza Facebook ) possiamo vedere che il nodo è direttamente connesso ad altri 6 nodi. Quindi,il grado del nodo 199 è 6. 3.6.1 Media del grado del grafo E il valore dato dalla somma di tutti i gradi,divisa per il numero di nodi presenti nel grafo. Il valore ottenuto dal grafo del progetto è : Media de grado del grafo = 5,245370 3.7 Altri Indici 3.7.1 Densità del grafo Il concetto di densità del grafo serve a esprimere il numero di collegamenti presenti nel grafo in relazione ai collegamenti possibili, semplificando possiamo affermare che la densità rappresenta l utilizzo effettivo del grafo rispetto alle sue potenzialità. Matematicamente si esprime con : N/NP dove N = numero di collegamenti presenti NP= numero di collegamenti possibili nel grafo Il valore di densità del grafo che emerge dall analisi del grafo del progetto è di 0,01217 3.7.2 Clustering del nodo x Il clustering di un generico nodo X è dato dal numero di archi esistenti tra X e i suoi adiacenti fratto il numero di archi possibili tra questi nodi. Analizzando il caso specifico del nodo 199 il coefficiente di clustering è 0,400000 3.7.3 Clustering medio del grafo Il valore rilevato per il clustering medio del grafo è 0,735868. Analisi di una Rete Sociale A.Lovati Pag. 5
4. Visualizzazione del grafo Analisi di una Rete Sociale A.Lovati Pag. 6