กำลังแรงเดรัจฉาน Delaunay triangulation อัลกอริธึมที่ซับซ้อน


16

ในหนังสือ"เรขาคณิตการคำนวณ: อัลกอริธึมและการประยุกต์ใช้"โดย Mark de Berg และคณะมีอัลกอริทึมแรงเดรัจฉานที่ง่ายมากสำหรับการคำนวณสามเหลี่ยมเดอลูเนย์ อัลกอริทึมใช้ความคิดของขอบผิดกฎหมาย - ขอบที่อาจไม่ปรากฏในสมการ Delaunay ที่ถูกต้องและต้องถูกแทนที่ด้วยขอบอื่น ๆ ในแต่ละขั้นตอนอัลกอริทึมจะค้นหาขอบที่ผิดกฎหมายเหล่านี้และทำการกระจัดที่ต้องการ (เรียกว่าการพลิกขอบ ) จนกระทั่งไม่มีขอบที่ผิดกฎหมาย

อัลกอริทึมการบีบอัดทางกฎหมาย ( T )

อินพุต บางสมTของจุดที่ตั้งPเอาท์พุต สมการทางกฎหมายของPP
P

ในขณะที่ มีขอบที่ผิดกฎหมายp i p j doTpipj

ให้และP ฉันพีเจพีลิตรเป็นรูปสามเหลี่ยมสองรูปที่อยู่ติดกับหน้าฉันพีเจpipjpkpipjplpipj
ลบจากTและเพิ่มp k p lแทน ผลตอบแทน TpipjTpkpl
T

ฉันได้ยินมาว่าอัลกอริทึมนี้ทำงานในเวลาในกรณีที่แย่ที่สุด; อย่างไรก็ตามมันไม่ชัดเจนสำหรับฉันว่าข้อความนี้ถูกต้องหรือไม่ ถ้าใช่จะพิสูจน์ได้อย่างไรว่าขอบเขตบนนี้O(n2)


5
ในรูปแบบที่คุณได้ระบุไว้ข้างต้นก็จะใช้เวลาเวลา อย่างไรก็ตามการใช้สแต็คก็สามารถทำได้ในO ( n 2 )เวลา คุณสามารถดูหน้าสุดท้ายในเอกสารประกอบการบรรยายเหล่านี้ อาร์กิวเมนต์พื้นฐานคือสามารถมีได้มากที่สุด( nO(n3)O(n2)พลิกขอบ (n2)
rizwanhudda

2
@rizwanhudda: ทำไมไม่ตอบคำถามนี้ล่ะ?
Raphael

คำตอบ:


8

การหาสมการ Delaunay ถือได้ว่าเป็นตัวนูนด้านล่างของจุด 2d ที่ยกขึ้นไปยังพาราโบลา ดังนั้นหากคุณตั้งค่าจุด 2d ของคุณและกำหนดให้กับทุก ๆ จุด a- z -coordinate z i = x 2 i + y 2 1ดังนั้นการฉายภาพของเปลือกนูนด้านล่างลงในx y -plane ช่วยให้คุณสมการ Delaunay(xi,yi)zzi=xi2+y12xy

Using this perspective, what does it mean for an edge (pi,pj) to be illegal? First of all, for every triangulation T we can use the parabolic map to get a 3d (triangulated) surface that projects down to T. Of course, this surface is not necessarily convex, if it would be convex, T would be the Delaunay triangulation. Simply speaking, the edge (pi,pj) is an obstruction for the convexity of the surface, a concave edge. When flipping this edge we change the situation on the lifted surface only locally. So lets look at the 4 points pi,pj,pk,plpipjpkpipjpl define the the concave edge (pi,pj), the triangles pkplpi and pkplpj define the a convex edge (pl,pk). Therefore, flipping an illegal edge corresponds to replacing a concave edge by a convex edge in the lifting. Notice that this flips might turn other convex edges to concave edges.

3D Flip interpretation Remark: The image is not geometrically correct and should only be considered as a sketch.

Let T be the triangulation after the flip. The lifted surface of T "contains" the surface of T. By this I mean that if you watch the two surfaces from the xy plane you see only triangles from the surface of T (or triangles that are in both surfaces). You could also say that the surface of T encloses more volume. Also, the edge (pi,pj) lies now "behind" the lifted surface induced by T when watching from the xy plane.

During the flip sequence we get a sequence of surfaces with strictly increasing volume. Thus, the edge (pi,pj) lies "behind" all these surfaces. Hence, it can never reappear during the flipping process. Since there are only n choose 2 possible edges, we have at most O(n2) flips.

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