Вы, вероятно, можете разместить граф в памяти (в представлении, что каждая вершина знает список своих соседей).
Затем из каждой вершины n вы можете выполнить поиск в ширину (используя очередь) до глубины 6 и подсчитать количество посещенных вершин. Если не все вершины посещены, вы опровергли теорему. В другом случае продолжите со следующей вершины n .
Это O (N * (N + #edges)) = N * (N + N * 100) = 100N ^ 2, если у пользователя в среднем 100 соединений, что не идеально для N = 20 миллионов. Интересно, могут ли упомянутые библиотеки вычислить диаметр в лучшую временную сложность (общий алгоритм O (N ^ 3)).
Вычисления для отдельных вершин независимы, поэтому их можно выполнять параллельно.
Немного эвристики: начните с вершин, имеющих наименьшую степень (больше шансов опровергнуть теорему).