Dưới đây là một số phần có thể có của giải pháp. Có nhiều lựa chọn khác nhau ở mỗi giai đoạn, sẽ phụ thuộc vào Ncluster, về tốc độ thay đổi dữ liệu, và về những gì bạn muốn làm với các phương tiện.
3 bước: định lượng, hộp, chữ K.
1) định lượng: giảm tọa độ XYZ đầu vào để nói 8 bit mỗi, bằng cách lấy 2^8 phần trăm riêng X, Y, Z. Điều này sẽ tăng tốc toàn bộ luồng mà không mất nhiều chi tiết. Bạn có thể sắp xếp tất cả 1G điểm, hay chỉ là một 1M ngẫu nhiên, để có được 8-bit x0 < x1 < ... x256, y0 < y1 < ... y256, z0 < z1 < ... z256 với 2^(30-8) điểm trong mỗi phạm vi. Để lập bản đồ phao X -> 8 bit x, tìm kiếm nhị phân chưa được kiểm tra nhanh chóng — xem Bentley, Pearls p. 95.
Added: Kd trees chia bất kỳ đám mây điểm vào hộp kích thước khác nhau, đều có ~ Leafsize chỉ — tốt hơn nhiều so với việc tách X Y Z như trên. Nhưng bạn sẽ phải cuộn mã cây Kd của riêng mình để chỉ chia hộp 16M nói đầu tiên và chỉ giữ số lượng, chứ không phải chỉ số.
2) hộp: đếm số điểm trong mỗi hộp 3d, [xj .. xj + 1, yj .. yj + 1, zj .. zj + 1]. Hộp trung bình sẽ có 2^(30-3 * 8) điểm; phân phối sẽ phụ thuộc vào cách dữ liệu được gộp lại. Nếu một số hộp quá lớn hoặc có quá nhiều điểm, bạn có thể a) chia chúng thành 8, b) theo dõi trung tâm của các điểm trong mỗi hộp, trên toàn thế giới chỉ lấy điểm giữa hộp.
3) K-means clustering trên trung tâm hộp 2^(3 * 8). (Google song song "k có nghĩa là -> 121k lượt truy cập.) Điều này phụ thuộc rất lớn vào K aka Ncluster, cũng trên bán kính của bạn R. Một cách tiếp cận thô sơ sẽ là phát triển một số heap trong 27 * Ncluster nói hầu hết các điểm, sau đó lấy những điểm lớn nhất tùy theo giới hạn Bán kính của bạn. (Tôi muốn bắt đầu bằng số Minimum spanning tree, rồi xóa các liên kết dài nhất K-1 để nhận các cụm K.) Xem thêm Color quantization.
Tôi sẽ tạo Nbit, tại đây 8, một thông số ngay từ đầu.
Ncluster của bạn là gì?
Đã thêm: nếu điểm của bạn đang di chuyển đúng lúc, hãy xem collision-detection-of-huge-number-of-circles trên SO.
Điều này nghe giống như biến thể 3-D của tập hợp bao gồm vấn đề !! :-) –
Sự cố của bạn nhắc tôi về "Vector QuantizatioN" có thể cung cấp cho bạn một số ý tưởng: http://www.data-compression.com/vq.shtml. Trong nháy mắt, vấn đề không khó giải quyết nếu bạn loại bỏ hạn chế này * "khoảng cách giữa hai điểm N đầu tiên phải lớn hơn R" * - hạn chế này gây ra vấn đề lớn và sẽ yêu cầu nhiều suy nghĩ để vượt qua nó. – SigTerm