Bạn có thể phù hợp với biểu đồ trong bộ nhớ (trong biểu diễn rằng mỗi đỉnh đều biết danh sách những người hàng xóm của nó).
Sau đó, từ mỗi đỉnh n, bạn có thể chạy tìm kiếm rộng đầu tiên (sử dụng hàng đợi) đến độ sâu 6 và đếm số đỉnh truy cập. Nếu không phải tất cả các đỉnh được truy cập, bạn đã bác bỏ định lý. Trong trường hợp khác, tiếp tục với đỉnh tiếp theo n.
Đây là O (N * (N + #edges)) = N * (N + N * 100) = 100N^2, nếu người dùng có 100 kết nối trung bình, Đó không phải là lý tưởng cho N = 20 triệu. Tôi tự hỏi nếu các thư viện được đề cập có thể tính toán đường kính trong thời gian phức tạp tốt hơn (thuật toán chung là O (N^3)).
Tính toán cho từng đỉnh độc lập, do đó chúng có thể được thực hiện song song.
Một chút heuristic: bắt đầu với đỉnh có mức độ thấp nhất (cơ hội tốt hơn để bác bỏ định lý).
Nguồn
2009-06-12 21:14:38
Có sáu degress tối đa hoặc trung bình? Hầu hết các phân tích thực tế tôi đã đọc về sử dụng trung bình không phải là tối đa. –
Quan niệm chung về "sáu độ phân tách" là nó là tối đa. Tất nhiên, điều đó không đúng trong thực tế. Nó chỉ là ấn tượng hơn để nói nó theo cách đó và khó để tìm counterexamples. –