คำถามติดแท็ก computational-geometry

คำถามเกี่ยวกับการแก้ปัญหาเชิงอัลกอริทึมของปัญหาเรขาคณิตหรืออัลกอริทึมอื่น ๆ ที่ใช้ประโยชน์จากเรขาคณิต


4
ระยะทางที่สั้นที่สุดระหว่างจุดใน A และจุดใน B
ให้สองเซตและแต่ละอันมีจุดเชื่อมต่อจุดบนเครื่องบินคำนวณระยะทางที่สั้นที่สุดระหว่างจุดหนึ่งในและจุดหนึ่งในคือ\}AAABBBnnnAAABBBmin { dist(p,q) | p∈A∧q∈B }min { dist(p,q) | p∈A∧q∈B }\min \space \{\mbox{ } \text{dist}(p, q) \mbox{ } | \mbox{ } p \in A \land q \in B \space \} ฉันไม่แน่ใจว่าฉันถูกหรือไม่ แต่ปัญหานี้คล้ายกับปัญหาที่สามารถแก้ไขได้โดยการเขียนโปรแกรมเชิงเส้นในเรขาคณิตเชิงคำนวณ อย่างไรก็ตามการลดลงของ LP ไม่ตรงไปตรงมา นอกจากนี้ปัญหาของฉันยังเกี่ยวข้องกับการค้นหาสเปคที่บางที่สุดระหว่างจุดสองชุดซึ่ง LP สามารถแก้ไขได้อย่างชัดเจนในO(n)O(n)O(n)ในพื้นที่สองมิติ

1
ครอบคลุมสี่เหลี่ยมผืนผ้าโดยสายการกวาด
ฉันได้รับแบบฝึกหัดโชคไม่ดีที่ฉันไม่ประสบความสำเร็จ มีชุดของรูปสี่เหลี่ยมเป็นและสี่เหลี่ยมผืนผ้า{0} การใช้อัลกอริธึมการกวาดล้างบนเครื่องบินกำหนดว่าครอบคลุมโดยชุดหรือไม่R1. .RnR1..RnR_{1}..R_{n}R0R0R_{0}R0R0R_{0}R1. .RnR1..RnR_{1}..R_{n} สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับหลักการของอัลกอริทึมบรรทัดกวาดดูที่นี่ ให้เริ่มต้นจากจุดเริ่มต้น. เริ่มแรกเรารู้จักอัลกอริทึมการกวาดบรรทัดเป็นอัลกอริทึมสำหรับการค้นหาจุดตัดเซกเมนต์ของบรรทัดที่ต้องการโครงสร้างข้อมูลสองแบบ: ชุดของคะแนนเหตุการณ์ (จัดเก็บจุดสิ้นสุดของส่วนและจุดแยก)QQQ สถานะ (โครงสร้างแบบไดนามิกสำหรับชุดเซกเมนต์ของเส้นการกวาดที่ตัดกัน)TTT แนวคิดทั่วไป:สมมติว่าบรรทัดการกวาดเป็นเส้นแนวตั้งที่เริ่มเข้าใกล้ชุดของสี่เหลี่ยมจากด้านซ้าย ทั้งหมดเรียงพิกัดของรูปสี่เหลี่ยมและเก็บไว้ในในการเพิ่มการสั่งซื้อ - ควรใช้เวลาn) เริ่มต้นจากจุดเหตุการณ์แรกสำหรับทุก ๆ จุดกำหนดชุดของรูปสี่เหลี่ยมที่ตัดกันที่พิกัดกำหนดระบุส่วนต่อเนื่องของรูปสี่เหลี่ยมผืนผ้าแยกและตรวจสอบว่าพวกเขาครอบคลุมที่พิกัดปัจจุบันทั้งหมดหรือไม่ ด้วยเป็นต้นไม้ไบนารีมันจะใช้เวลาn) หากส่วนใดส่วนหนึ่งของยังคงเปิดอยู่ล.llxxxQQQO ( n บันทึกn )O(nlog⁡n)O(n\log n)xxxR0R0R_{0}xxxTTTO ( บันทึกn )O(log⁡n)O(\log n)R0R0R_{0}R0R0R_{0}ไม่ได้ครอบคลุมอย่างสมบูรณ์ รายละเอียด:แนวคิดของอัลกอริทึมการตัดเซกเมนต์คือเซ็กเมนต์ที่อยู่ติดกันตัดกัน จากข้อเท็จจริงนี้เราได้สร้างสถานะและดูแลรักษาตลอดขั้นตอนวิธี ฉันพยายามค้นหาความคิดที่คล้ายกันในกรณีนี้และจนถึงขณะนี้โดยไม่ประสบความสำเร็จสิ่งเดียวที่ฉันสามารถพูดได้ก็คือสี่เหลี่ยมสองรูปตัดกันถ้าพิกัดและตรงกันของพวกเขาทับซ้อนกันTTTxxxYyy ปัญหาคือวิธีการสร้างและดูแลรักษาและความซับซ้อนของการสร้างและดูแลรักษาคืออะไร ฉันคิดว่าต้นไม้ Rมีประโยชน์อย่างมากในกรณีนี้ แต่เนื่องจากฉันพบว่ามันยากมากที่จะกำหนดสี่เหลี่ยมผืนผ้าขอบเขตขั้นต่ำโดยใช้ต้นไม้ RTTTTTT คุณมีความคิดเกี่ยวกับวิธีการแก้ปัญหานี้และโดยเฉพาะอย่างยิ่งวิธีการสร้างหรือไม่?TTT
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.