ความซับซ้อนในการค้นหาลูกที่เพิ่มจำนวนคะแนนให้อยู่ในนั้น


10

x1,,xnR2rri=1n1xxir

ขั้นตอนวิธีการบังคับเดรัจฉานจะไปกว่าทุกจุดและนับจำนวนจุดที่อยู่ในระยะทางที่มีขนาดเล็กกว่าRที่จะให้ความซับซ้อนของ2)rO(n2)

มีแนวทางที่ดีกว่านี้ไหม?


คุณดูที่ควอดทรีและต้นไม้กั้นพื้นที่ไบนารีหรือไม่? ฉันคาดหวังว่าพวกเขาอาจให้อัลกอริทึมที่มีประสิทธิภาพมากขึ้นในทางปฏิบัติแม้ว่าฉันจะไม่ทราบว่าเวลาที่ใช้ในการแสดงผลเชิงเส้นตรงที่เลวร้ายที่สุดคืออะไร
DW

(ศูนย์กลางของballชื่อเรื่องต้องมาจากชุด?) แนวคิดหนึ่งอาจประเมินได้ว่ารัศมีมีขนาดเล็กเมื่อเทียบกับระยะทางเฉลี่ยไปยังเพื่อนบ้านที่ใกล้ที่สุดหรือตามลำดับเส้นผ่านศูนย์กลาง (และพิจารณาแนวทางสำหรับสุดขั้วเหล่านี้ (เครื่องบินกวาดสำหรับขนาดเล็ก ) และพื้นที่กว้างในระหว่าง) r
greybeard

จุดศูนย์กลางของลูกบอลควรเป็นแต่ถ้ามีอัลกอริทึมที่ดีกว่าโดยไม่มีเงื่อนไขฉันก็สนใจเช่นกัน xi
มานูเอล

ดูเหมือนว่าอัลกอริทึมที่เร็วกว่าสำหรับปัญหาการนับช่วงลูกไม่เป็นที่รู้จัก อย่างไรก็ตามหากคุณยอมรับคำตอบที่ไม่แน่นอนคุณสามารถประมาณดิสก์ด้วยกลุ่มของสี่เหลี่ยมที่มีทิศทางต่างกัน สำหรับการวางแนวแต่ละครั้งคุณจะต้องสร้างทรีช่วง ( en.wikipedia.org/wiki/Range_tree ) ซึ่งจะช่วยให้คุณสามารถนับคะแนนทั้งหมดในตารางในเวลาO ( l o g 2 ( n ) + k )เวลา ( k - จำนวนคะแนนที่ได้) O(n)O(log2(n)+k)
HEKTO

@ HEKTO คุณกำลังแนะนำการสร้างโครงสร้างต้นทุนเพื่อสอบถามว่าจุดหนึ่งอยู่ในรูปสี่เหลี่ยมผืนผ้าที่ต้นทุนO ( l o g 2 ( n ) + k )หรือไม่? จากนั้นข้ามจุดทั้งหมดเพื่อนับจำนวนจุดอื่น ๆ ที่อยู่ในลูกบอลโดยประมาณ? สิ่งนี้สามารถใช้งานได้ แต่จากนั้นหน่วยความจำที่จำเป็นสำหรับโครงสร้างข้อมูลดังกล่าวคืออะไร มันจะต่ำกว่าO ( n 2 ) )ไหม O(nlog(n))O(log2(n)+k)O(n2))
มานูเอล

คำตอบ:


5

ดูเหมือนว่าsublinearอัลกอริทึมสำหรับการนับช่วงบอลปัญหาไม่เป็นที่รู้จักสำหรับตอนนี้

อย่างไรก็ตามหากคุณยอมรับคำตอบที่ไม่แน่นอนคุณสามารถประมาณดิสก์ด้วยกลุ่มของสี่เหลี่ยมที่มีทิศทางต่างกัน สำหรับการวางแนวแต่ละครั้งคุณจะต้องสร้างทรีช่วงซึ่งจะช่วยให้คุณสามารถนับคะแนนทั้งหมดในช่องสี่เหลี่ยมในเวลา (k - คะแนนที่ได้รับจำนวนหนึ่ง)O(log2(n)+k)

ทรีช่วงแต่ละช่วงจะต้องใช้หน่วยความจำการประมาณที่ดีกว่าที่คุณต้องการให้ทิศทางมากขึ้นคุณควรใช้ ตัวอย่างเช่นการวางแนวสองแนวจะให้แปดเหลี่ยมซึ่งใกล้เคียงกับดิสก์ที่มีข้อผิดพลาดของพื้นที่น้อยกว่า 6%O(nlog(n))


3

คำตอบนั้นไม่ง่ายนักมีการศึกษาขั้นสูงของคำถามนี้ในทฤษฎีความซับซ้อน ดูเหมือนว่าจะได้รับการศึกษาเช่นปัญหาต่อไปนี้ซึ่งมุ่งเน้นไปที่การสอบถาม "การนับช่วงทรงกลม" อย่างรวดเร็ว ใช่ขอบเขตทางทฤษฎีที่ได้รับการปรับปรุงนั้นเป็นไปได้ แต่สิ่งเหล่านี้ดูเหมือนจะเป็นอัลกอริธึมที่เป็นนามธรรมซึ่งไม่ได้มีใครใช้เลย หากคุณต้องการการนำไปใช้งานจริงนั่นเป็นคำถามที่แตกต่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.