Komplexität des Brute-Force-Delaunay-Triangulationsalgorithmus


16

In dem Buch "Computational Geometry: Algorithms and Applications" von Mark de Berg et al. Gibt es einen sehr einfachen Brute-Force-Algorithmus zur Berechnung von Delaunay-Triangulationen. Der Algorithmus verwendet den Begriff der illegalen Kanten - Kanten, die möglicherweise nicht in einer gültigen Delaunay-Triangulation vorkommen und durch einige andere Kanten ersetzt werden müssen. Bei jedem Schritt findet der Algorithmus nur diese unzulässigen Kanten und führt die erforderlichen Verschiebungen durch (sogenannte Kantenflips ), bis keine unzulässigen Kanten mehr vorhanden sind.

Algorithmus LegalTriangulation ( )T

Eingabe . Einige Triangulation von einer Punktmenge . Ausgabe . Eine rechtliche Triangulation von .TP
P

während eine illegale Kante enthält do Sei und die beiden Dreiecke neben . Entferne von und füge stattdessen . Rückkehr .Tpipj

pipjpkpipjplpipj
pipjTpkpl
T

Ich habe gehört, dass dieser Algorithmus im schlimmsten Fall in läuft . Mir ist jedoch nicht klar, ob diese Aussage richtig ist oder nicht. Wenn ja, wie kann man diese Obergrenze beweisen?O(n2)


5
In der Form, die Sie oben angegeben haben, dauert es Zeit. Bei Verwendung eines Stapels kann dies jedoch in O ( n 2 ) -Zeit erfolgen. Sie können sich die letzte Seite in diesem Skript ansehen . Das grundlegende Argument ist, dass es höchstens Edge Flips geben kann. O(n3)O(n2)(n2)
Rizwanhudda

2
@ Rizwanhudda: Warum nicht eine Antwort machen?
Raphael

Antworten:


8

Eine Delaunay-Triangulation kann als die untere konvexe Hülle des zum Paraboloid angehobenen 2d-Punkt-Sets betrachtet werden. Wenn Sie also Ihre 2d Punktmenge nehmen und jedem Punkt eine z- Koordinate z i = x 2 i + y 2 1 zuweisen , dann die Projektion der unteren konvexen Hülle in die(xi,yi)zzi=xi2+y12 -Ebene gibt Ihnen die Delaunay-Triangulation.xy

Was bedeutet es in dieser Perspektive, wenn eine Kante illegal ist? Zuallererst können wir für jede Triangulation T die parabolische Karte verwenden, um eine dreidimensionale (triangulierte) Oberfläche zu erhalten, die nach unten zu T projiziert . Natürlich ist diese Oberfläche nicht unbedingt konvex, wenn sie konvex wäre, wäre T die Delaunay-Triangulation. Einfach ausgedrückt ist die Kante ( p i , p j ) ein Hindernis für die Konvexität der Oberfläche, eine konkave Kante. Wenn wir diese Kante umdrehen, ändern wir die Situation auf der angehobenen Fläche nur lokal. Schauen wir uns also die 4 Punkte an(pi,pj)TTT(pi,pj)pi,pj,pk,pl . In 3d bilden sie einen Tetraeder, der bis in das Viereck hineinragt. Da die beiden Dreiecke und p i p j p l die konkave Kante ( p i , p j ) definieren , definieren die Dreiecke p k p l p i und p k p l p j die konvexe Kante (pipjpkpipjpl(pi,pj)pkplpipkplpj . Daher entspricht das Umdrehen einer unzulässigen Kante dem Ersetzen einer konkaven Kante durch eine konvexe Kante beim Anheben. Beachten Sie, dass diese Umkehrungen andere konvexe Kanten in konkave Kanten verwandeln können.(pl,pk)

3D Flip Interpretation Anmerkung: Das Bild ist nicht geometrisch korrekt und sollte nur als Skizze betrachtet werden.

Sei die Triangulation nach dem Flip. Die angehobene Oberfläche T ' „enthält“ die Oberfläche von T . Damit meine ich, dass Sie nur Dreiecke von der Oberfläche von T 'sehen (oder Dreiecke, die sich auf beiden Oberflächen befinden) , wenn Sie die beiden Oberflächen von der x y- Ebene aus betrachten . Man könnte auch sagen, dass die Oberfläche von T ' mehr Volumen einschließt. Auch die Kante ( p i , p j ) liegt jetzt "hinter" der angehobenen Oberfläche, die durch T ' induziert wird , wenn von x y aus beobachtet wirdTTTxyTT(pi,pj)Txy Ebene aus beobachtet wird.

Während der Flip-Sequenz erhalten wir eine Folge von Oberflächen mit streng zunehmendem Volumen. Somit liegt die Kante "hinter" all diesen Oberflächen. Daher kann es während des Kippvorgangs niemals wieder angezeigt werden. Da es nur n wähle 2 mögliche Kanten gibt, haben wir höchstens O ( n 2 ) Flips.(pi,pj)nO(n2)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.