Đối với điểm có các ô trống , xem phần giới thiệu của bài viết này http://www.cs.uwm.edu/facemony/ad/maximal.pdf . Người ta có thể tính toán các hộp này trong khoảng thời gian này (xem phần giới thiệu cho ref).nO(n3)
Đối với vấn đề của bạn, hãy lấy một mẫu điểm ngẫu nhiên, trong đó mọi điểm được chọn với độ khả dụng . Một mẫu ngẫu nhiên như vậy có kích thước (trong kỳ vọng) [và vì lợi ích của mâu thuẫn giả định rằng nó là]. Có các ô trống có các điểm từ ở hai bên, ở trên. Đối với mỗi hộp như vậy, sử dụng cấu trúc dữ liệu tìm kiếm phạm vi trực giao để tính toán chính xác có bao nhiêu điểm. Lặp lại quá trình này lần. Với xác suất cao, một trong những hộp bạn đã thử là hộp mong muốn.1/kn/kO((n/k)3)RO(k6logn)
Nhìn chung, thời gian chạy của nó là .O((n/k)3∗k6∗polylogn)=O(n3k3logO(1)n)
Để xem tại sao điều này làm việc, hãy xem xét hộp tối ưu. Nó có 6 điểm P trên ranh giới của nó. Xác suất mẫu ngẫu nhiên chọn sáu điểm này và không có điểm nào trong hộp ít nhất là . Do đó, nếu bạn lặp lại quá trình lần, với xác suất cao, một trong các mẫu ngẫu nhiên sẽ tạo ra hộp mong muốn dưới dạng hộp trống.1k6(1−1/k)k−6≈1/k6=pO((1/p)logn)
Vì rất chặt chẽ về số lượng ô trống (xem phần giới thiệu ở trên để biết các tài liệu tham khảo có liên quan), có vẻ như không thể có thuật toán nhanh hơn đáng kể.Θ(n3)
[Trong tài liệu tham khảo mà tôi đã đưa ra, họ đề cập rằng [17] cung cấp thuật toán liệt kê tất cả các ô trống tối đa trong số các điểm trong 3d trong thời gian , đây là hộp đen bạn cần cho ở trên .]O(n3log2n)