สำหรับจุดมีช่องว่างดูการแนะนำของบทความนี้http://www.cs.uwm.edu/faculty/ad/maximal.pdf เราสามารถคำนวณกล่องเหล่านี้ได้ในเวลานี้โดยประมาณ (ดูช่วงแนะนำสำหรับการอ้างอิง)nO(n3)
สำหรับปัญหาของคุณใช้ตัวอย่างที่สุ่มจากจุดที่ทุกจุดจะเลือกด้วย porbability k ตัวอย่างแบบสุ่มนั้นมีขนาด (ตามความคาดหมาย) [และเพื่อความขัดแย้งถือว่าเป็น] มีกล่องเปล่ามีคะแนนจากด้านข้างโดยด้านบน สำหรับแต่ละกล่องดังกล่าวให้ใช้ช่วงโครงสร้างมุมฉากค้นหาข้อมูลโครงสร้างเพื่อคำนวณจำนวนจุดที่มีอยู่ ทำซ้ำกระบวนการนี้ครั้ง ด้วยความน่าจะเป็นสูงกล่องใดกล่องหนึ่งที่คุณได้ลองคือกล่องที่ต้องการ1/kn/kO((n/k)3)RO(k6logn)
โดยรวม, เวลาการทำงานของที่นี่คือn)O((n/k)3∗k6∗polylogn)=O(n3k3logO(1)n)
หากต้องการดูว่าทำไมงานนี้ให้พิจารณากล่องที่เหมาะสมที่สุด มันมี 6 คะแนนของ P บนขอบเขตของมัน ความน่าจะเป็นที่กลุ่มตัวอย่างสุ่มเลือกหกจุดและไม่มีจุดภายในกล่องอย่างน้อยp ดังนั้นหากคุณทำซ้ำขั้นตอนครั้งด้วยความน่าจะเป็นสูงหนึ่งในตัวอย่างแบบสุ่มจะชักนำให้กล่องที่ต้องการเป็นกล่องเปล่า1k6(1−1/k)k−6≈1/k6=pO((1/p)logn)
เนื่องจากมีจำนวน จำกัด สำหรับกล่องที่ว่างเปล่า (ดูหน้ากระดาษข้างต้นสำหรับการอ้างอิงที่เกี่ยวข้อง) จึงไม่น่าเป็นไปได้ที่อัลกอริธึมที่เร็วกว่าΘ(n3)
[ในการอ้างอิงที่ฉันให้พวกเขาพูดถึงว่า [17] ให้อัลกอริทึมที่แจกแจงกล่องเปล่าสูงสุดทั้งหมดระหว่างจุดใน 3d ในเวลาซึ่งเป็นกล่องดำที่คุณต้องการสำหรับข้างต้น .]O(n3log2n)