หมายเหตุ : คำถามได้รับการปรับปรุงใหม่ในคำตอบของฉัน: สมมติว่าตอนนี้เราสามารถหาบรรพบุรุษที่ต่ำที่สุดในเวลาแล้ว ANN สามารถทำได้ในหรือไม่
Quadtrees เป็นดัชนีเชิงพื้นที่ที่มีประสิทธิภาพ ฉันมีปริศนาที่มีการใช้การค้นหาเพื่อนบ้านที่ใกล้ที่สุดในโครงสร้างควอดทรีบีบอัดตามที่อธิบายไว้ใน [2] (โดยไม่ต้องลงรายละเอียดการค้นหาจะเลื่อนจากบนลงไปตามสี่เหลี่ยมจัตุรัสที่มีระยะเท่ากันซึ่งสิ้นสุดในโหนดหางของเส้นทางที่มีระยะเท่ากันในรูปภาพที่แนบนี้อาจเป็นโหนดใด ๆ ในภาคตะวันออกเฉียงใต้ที่เต็มไปด้วยจุด)
สำหรับอัลกอริทึมในการทำงานเราจะต้องรักษาแต่ละโหนด - สี่เหลี่ยมจัตุรัสที่มี quadrants ไม่ว่างอย่างน้อยสองตัว - พอยน์เตอร์สำหรับแต่ละโหนดที่ต่ำที่สุด (ใกล้เคียงที่สุดในลำดับชั้น) โหนดบรรพบุรุษในแต่ละสี่ทิศทาง (ทิศเหนือทิศตะวันตกทิศใต้ ตะวันออก) ลูกศรสีเขียวเหล่านี้ถูกระบุด้วยลูกศรสีเขียวสำหรับโหนดบรรพบุรุษทางทิศตะวันตกของโหนด (ลูกศรชี้ไปที่ศูนย์กลางของจัตุรัสบรรพบุรุษ)
กระดาษที่อ้างว่าตัวชี้เหล่านี้สามารถอัปเดตใน O (1) ระหว่างการแทรกจุดและการลบ อย่างไรก็ตามเมื่อดูที่การแทรกจุดสีเขียวดูเหมือนว่าฉันจำเป็นต้องอัปเดตพอยน์เตอร์จำนวนเท่าใดก็ได้ในกรณีนี้พวกเขาหกคน
ฉันหวังว่าจะมีเคล็ดลับในการอัปเดตตัวชี้นี้ในเวลาที่แน่นอน อาจมีรูปแบบของการอ้อมที่สามารถใช้ประโยชน์ได้หรือไม่?
แก้ไข:
ส่วนที่เกี่ยวข้องจากกระดาษคือ 6.3 ที่อ่าน: "ถ้าเส้นทางมีโค้งแล้วนอกจากบรรพบุรุษที่ต่ำที่สุดของเราควรพิจารณาแต่ละทิศทางต่ำสุด บรรพบุรุษของที่ไปสู่ทิศทางนั้น [... ] การหาสี่เหลี่ยมเหล่านี้จากสามารถทำได้ในเวลาต่อหนึ่งตารางถ้าเราเชื่อมโยงพอยน์เตอร์เพิ่มเติมกับแต่ละตารางในชี้ไปที่บรรพบุรุษที่ใกล้ที่สุดสำหรับแต่ละทิศทาง ตัวชี้เหล่านี้ยังสามารถปรับปรุงได้ในเวลาในระหว่างการแทรกหรือการลบจุด "q 2 d q q O ( 1 ) 2 d Q 0 O ( 1 )
[2]: Eppstein, D. และ Goodrich, MT และ Sun, JZ,“ The Quad Quadtree: โครงสร้างข้อมูลแบบไดนามิกอย่างง่ายสำหรับข้อมูลหลายมิติ,” ในการประชุมวิชาการประจำปีครั้งที่ยี่สิบเอ็ดเรื่องเรขาคณิตเชิงคำนวณ, หน้า 296–305 พ.ศ. 2548