Probabilmente è possibile adattare il grafico in memoria (nella rappresentazione che ciascun vertice conosce un elenco dei suoi vicini).
Quindi, da ciascun vertice n, è possibile eseguire una ricerca in larghezza (utilizzando una coda) alla profondità di 6 e contare il numero di vertici visitati. Se non tutti i vertici sono visitati, hai smentito il teorema. In altri casi, continuare con il vertice successivo n.
Questo è O (N * (N + #edges)) = N * (N + N * 100) = 100N^2, se l'utente ha 100 connessioni in media, che non è l'ideale per N = 20 milioni. Mi chiedo se le librerie citate possano calcolare il diametro in una migliore complessità temporale (l'algoritmo generale è O (N^3)).
I calcoli per i singoli vertici sono indipendenti, quindi potrebbero essere eseguiti in parallelo.
Un po 'euristico: iniziare con i vertici che hanno il grado più basso (migliore possibilità di confutare il teorema).
fonte
2009-06-12 21:14:38
È sei gradi al massimo o in media? La maggior parte dell'analisi attuale che ho letto utilizza la media non il massimo. –
La concezione comune di "sei gradi di separazione" è che è un massimo. Certo, non è affatto vero nella realtà. È semplicemente più impressionante dirlo in questo modo e difficile trovare dei controesempi. –