Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Marco Mulas Cicli da quattro Reti sociali Reti ferroviarie Topologia e caratteristiche di un grafo Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 2/20 Definizioni Chiameremo quadrato una qualsiasi sequenza (a,b,c,d) di nodi del grafo G se e solo se essa forma un ciclo di lunghezza quattro in G, ossia se e solo se {a,b}, {b,c}, {c,d}, {d,a} sono presenti nell’insieme degli archi di G. Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 3/20 Definizioni Chiameremo 2path (a,x,b) un cammino di lunghezza due all’interno del grafo. Chiameremo 3path (a,x,y,b) un cammino di lunghezza tre all’interno del grafo. Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 4/20 Algoritmi di conteggio esatto mediante vertici mediante Ricerca Esaustiva INPUT: G=(V,E) count = 0 for each a V for each b V (b≠a) for each c V (c≠b, c≠a) for each d V (d≠c, d≠b, d≠a) if {a,b},{b,c},{c,d},{d,a} E then count = count + 1 OUTPUT: count/8 Tempo: (n4) Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 5/20 Algoritmi di conteggio esatto mediante vertici mediante Backtracking INPUT: G=(V,E) count = 0 for each a V for each b adj(a) for each c adj(b) (c≠a) for each d adj(c) (d≠b, d≠a) if {d,a} E then count = count + 1 OUTPUT: count/8 Tempo: (n2) + O(nd3) Tempo: (n2) per istanze reali Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 6/20 Algoritmi di conteggio esatto mediante 2path INPUT: G=(V,E) count = 0 P= for each 2path (a,x,b) in G P = P U (a,b) for each (c,d) P calcola la molteplicità k di (c,d) in P if k ≥ 2 then æ k ö count = count + çè 2 ÷ø OUTPUT: count/2 dv (dv -1) = O(nd 2 ) 2 vÎV P= å Tempo: O(nd2 log n) Tempo: O(n log n) per istanze reali Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 7/20 Algoritmi approssimanti Un algoritmo probabilistico per un problema di conteggio è (-)-approssimante se , (0,1) produce, con una probabilità maggiore o uguale a 1-, una stima X e che dista al più un fattore dal conteggio esatto di X. X-X X ( X+X ) P X - X > eX < d Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 8/20 Campionamento mediante quattro vertici [CQV] INPUT: G=(V,E) =0 Scegli a caso una possibile quadrupla (a, b, c, d) if {a,b}, {b,c}, {c,d}, {d,a} E then =1 OUTPUT: E[ b ] = 8Q Q = æ n ö æ n ö 24 ç ÷ 3ç ÷ 4 4 è ø è ø æ n ö Q = 3ç ÷ E[ b ] è 4 ø Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 9/20 Algoritmi approssimanti Teorema Siano 1, 2,. . . , S variabili aleatorie identicamente distribuite a valori nell’intervallo [0,1] con valore medio E[]. Se allora 3 1 2 S³ 2 log e E[ b ] d æ1 S ö P çç å bi - E[ b ] > e E[ b ]÷÷ < d è S i=1 ø Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 10/20 Campionamento mediante quattro vertici [CQV] INPUT: G=(V,E) =0 Scegli a caso una possibile quadrupla (a, b, c, d) if {a,b}, {b,c}, {c,d}, {d,a} E then =1 OUTPUT: E[ b ] = 8Q Q = æ n ö æ n ö 24 ç ÷ 3ç ÷ 4 4 è ø è ø æ n ö1 S Q = 3ç ÷ å bi 4 è ø S i=1 æ n ö ç ÷ 4 9è 2 ø S³ 2 log e Q d Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 11/20 Campionamento mediante 2path e un vertice [CPV] INPUT: G=(V,E) =0 Scegli a caso un 2path (a,b,c) e un vertice d t.c. d {a,b,c} If {c,d}, {d,a} E then =1 OUTPUT: E[ b ] = S³ 4Q P (n - 3) 3 P (n - 3) 2 log e 2 4Q d Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 12/20 Campionamento mediante 3path [CTP] INPUT: G=(V,E) =0 Scegli a caso un {a,b} E Fra gli adj(a) scegli a caso un vertice d Fra gli adj(b) scegli a caso un vertice c if d≠b c≠a {d,c} E then d .d = a4 b OUTPUT: 1 d × d 8Q Q × a b= = (a,b,c,d )con(c,d )ÎE 2m × d × d 4 8m m a b E[ b ] = å 3 md 2 2 S³ 2 log e Q d Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 13/20 Risultati sperimentali Dataset usato Grafo Erdős–Rényi 300,0.035 Vertici Archi D medio Quadrati 300 1.590 10,6 1.636 as19971109 3.011 5.343 3,5 61.245 as19990923 5.803 11.823 4,1 241.790 as20000102 6.474 7.391 4,1 299.317 Erdős–Rényi 3011,0.045 3.011 204.141 135,6 42.253.872 Email-Enron 36.692 183.831 10,0 36.262.229 Dblp.ungraph 317.080 1.049.866 6,6 55.107.654 Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 14/20 Risultati sperimentali Algoritmi di conteggio esatto Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 15/20 Risultati sperimentali Con algoritmo di campionamento mediante 2path e un vertice Grafo 20k 50k 100k 500k dev. Speedup dev. Speedup dev. Speedup dev. Speedup E.R. 300,0.035 3,1% 1,00 0,1% 2,44 0,3% 4,66 0,1% 22,65 as19971109 7,0% 0,20 6,8% 0,50 5,6% 1,00 1,0% 5,07 as19990923 7,5% 0,10 3,5% 0,25 2,5% 0,49 2,1% 2,48 as20000102 18,3% 0,30 1,6% 0,74 1,2% 1,43 1,0% 7,44 E.R. 3011,0.045 4,3% 0,003 1,3% 0,007 1,2% 0,014 0,8% 0,071 Email-Enron 9,5% 0,004 4,7% 0,010 4,1% 0,020 1,1% 0,099 dblp.ungraph 9,1% 0,005 8,1% 0,008 5,5% 0,015 1,8% 0,071 dev. = Q-Q Q speedup = TCPV TDPT Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 16/20 Risultati sperimentali Con algoritmo di campionamento mediante 3path Grafo 100 dev. Speedup 2k 5k dev. Speedup dev. Speedup 10k dev. Speedup E.R. 300,0.035 16,4% 0,0143 4,2% 0,0831 2,6% 0,2066 0,9% 0,4057 as19971109 15,5% 0,0029 0,14% 0,0116 0,11% 0,0289 0,10% 0,0697 as19990923 12,9% 0,0006 6,3% 0,0047 3,2% 0,0109 1,0% 0,0211 as20000102 18,8% 0,0028 2,8% 0,0136 2,7% 0,0318 1,5% 0,0673 E.R. 3011,0.045 12,6% 0,0002 4% 0,0005 2,5% 0,0009 1,9% 0,0015 Email-Enron 10,1% 0,0003 1,7% 0,0006 1,5% 0,0011 0,9% 0,0195 dblp.ungraph 6,9% 0,0018 2,1% 0,0020 0,0024 0,001% 0,0029 dev. = Q-Q Q speedup = 1,0% TCTP TDPT Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 17/20 Confronto campionamenti Esperimenti sul grafo Erdős–Rényi 300,0.035 Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 18/20 Confronto campionamenti Esperimenti sul grafo as19971109 Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 19/20 Conclusioni e sviluppi futuri • Sono stati presentati due tipologie di algoritmo esatto per il conteggio dei quadrati e tre algoritmi di campionamento per il conteggio approssimato • Mediante l’algoritmo di conteggio esatto basato sui 2path si riescono ad ottenere risultati esatti in un tempo discreto • L’algoritmo di campionamento basato sul 3path risulta il più efficiente dei tre presentati. • Mediante dei buon algoritmi di conteggio approssimanti è possibile raggiungere un’ottima stima indicativa usando usando tempi accettabili • Con il modello di memoria esterna si può eseguire il conteggio esatto, basato su 2path mediante mergesort iterativo a k vie su file, anche su grafi più grandi (n1M e m2M) Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti Pagina 20/20 Grazie per la cortese attenzione Conteggio esatto ed approssimato di cicli da quattro in grafi non diretti