Voronoi-Diagramme und Delaunay-Triangulierungen

Ähnliche Dokumente
Geradenarrangements und Dualität von Punkten und Geraden

Quadtrees und Meshing

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3

Polygontriangulierung

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Lineares Programmieren

Das Voronoi Diagramm. 1. Definition. 2. Eigenschaften. 3. Größe und Speicherung. 4. Konstruktion. 5. Verwendung

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1

2.7.1 Inside-Test Konvexe Hülle Nachbarschaften Schnittprobleme

Algorithmen II Vorlesung am

Punkt-in-Polygon-Suche Übersicht

Aufgabensammlung zur algorithmischen Geometrie

Informatik II, SS 2014

Geometrie 1. Christian Bay Christian Bay Geometrie / 46

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Geometrische Algorithmen

Geometrische Algorithmen Punkt-in-Polygon-Suche. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Punkt-in-Polygon-Suche

13. Binäre Suchbäume

Informatik II, SS 2014

Algorithmische Geometrie 7. Punktsuche (Teil 2)

Computer-Graphik I Verallgemeinerte Baryzentrische Koordinaten

Zusammenfassung Verallgemeinerungen VD Segmente/Pledge Algorithmus

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Grundlagen: Algorithmen und Datenstrukturen

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

M. Pester 29. Ein konvexes d-polytop ist eine begrenzte d-dimensionale polyedrale Menge. (d = 3 Polyeder, d = 2 Polygon)

Beschriftung in Dynamischen Karten

7. Triangulation von einfachen Polygonen

11. Elementare Datenstrukturen

Billard auf polygonförmigen Tischen

The weighted farthest color Voronoi diagram on trees and graphs

15. Elementare Graphalgorithmen

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle

Übung zur Vorlesung Algorithmische Geometrie

Datenstrukturen & Algorithmen

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Informatik II Vorlesung am D-BAUG der ETH Zürich

Lokalisierung von inneren und äußeren Grenzen in Sensornetzwerken

RHEINISCHE FRIEDRICH-WILHELMS-UNIVERSITÄT BONN INSTITUT FÜR INFORMATIK I

Vorlesung 2 KÜRZESTE WEGE

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

Geometrie 1. Roman Sommer. Informatik 2 Programmiersysteme Martensstraße Erlangen

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Informatik B Sommersemester Musterlösung zur Klausur vom

Vorlesung Datenstrukturen

6. Algorithmen der Computer-Geometrie

Erweiterung: Flächeninhalt mit Vorzeichen. a b, P, Q, R gegen Uhrzeigersinn a b, P, Q, R im Uhrzeigersinn

Das Heiratsproblem. Definition Matching

3. Übungsblatt zu Algorithmen I im SoSe 2017

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 11, Donnerstag, 15.

14. Rot-Schwarz-Bäume

Visualisierung von Graphen

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Hallo Welt für Fortgeschrittene. Geometrie I. Lukas Batz. Informatik 2 Programmiersysteme Martensstraße Erlangen

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Triangulierung von einfachen Polygonen

Informatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Abschnitt 18: Effizientes Suchen in Mengen

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt Semester ARBEITSBLATT 14 VERMESSUNGSAUFGABEN

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

4 Greedy-Algorithmen (gierige Algorithmen)

Das Problem der dreizehn Kugeln

Punktbeschriftung in Dynamischen Karten

Informatik II, SS 2014

Voronoi Diagramme und Delaunay Triangulation

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16.

Binärbäume: Beispiel

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Informatik II, SS 2014

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Maximale s t-flüsse in Planaren Graphen

11.1 Grundlagen - Denitionen

Triangulierungen von Punktmengen und Polyedern

Suchen und Sortieren Sortieren. Heaps

6. Triangulation von Polygonen

Sortierte Folgen 250

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Vorlesung 4 BETWEENNESS CENTRALITY

Übung zur Vorlesung Berechenbarkeit und Komplexität

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

Zusammenfassung. Benjamin Niedermann Vorlesung Algorithmische Kartografie

Virtuelle Realität Kollisionserkennung

Zum Einstieg. Mittelsenkrechte

SS 2005 FAU Erlangen Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner

Die Mittelsenkrechte im deduktiven Aufbau

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Algorithmische Graphentheorie

Transkript:

Vorlesung Algorithmische Geometrie Voronoi-Diagramme & Delaunay-Triangulierungen LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 07.06.2011

Erinnerung: Voronoi-Diagramm V(p) p p q p V(p) = {x R 2 : px < qx q P \ {p}} V({p, p }) = {x R 2 : px = p x < qx q P \ {p, p }} V({p, p, p }) = V(p) V(p ) V(p ) q V({p, p }) C P (q) P = {p, p } q = V({p, p, p }) C P (q) P {p, p, p }

Wdh: Beach-Line β l Definition: Die Beach-Line β l ist die untere Kontur der Parabeln f l p für die bereits besuchten Punkte. Beob.: Ziel: Beach-Line ist x-monoton Schnittpunkte der Beach-Line zeichnen die Voronoi- Kanten speichere (implizit) aktuelle Kontur β l statt Vor(P ) l

Wdh: Punkt-Events trifft l auf einen Punkt, kommt neue Parabel zu β l hinzu die beiden Schnittpunkte erzeugen neue Teilkante Lemma: Neue Bögen auf β entstehen nur durch Punkt-Events. Korollar: β besteht aus maximal 2n 1 Parabelbögen

Wdh: Kreis-Events p i p j p k p i p j p k p i p j p k q Def.: verschwindet der Bogen für p j so laufen fp l i, fp l j, fp l k einen gemeinsamen Punkt q Kreis C P (q) geht durch p i, p j, p k und berührt l q ist Voronoi-Knoten durch Der unterste Punkt des Kreises durch drei Punkte mit konsekutiven Bögen auf β definiert ein Kreis-Event. Lemma: Bögen von β werden nur durch Kreis-Events entfernt. Lemma: Für jeden Voronoi-Knoten gibt es ein Kreis-Event.

Datenstrukturen doppelt-verkettete Kantenliste (DCEL) D für Vor(P ) Achtung: am Schluss bounding box wg. Halbgeraden einfügen balancierter binärer Suchbaum T für implizite Beach-Line Blätter entsprechen Parabelbögen von links nach rechts innerer Knoten p i, p j entspricht Schnittpunkt von p i und p j Pointer von inneren Knoten auf zugeh. Kanten in D p 1 p 2 p 3 p 4 p 5 p 4, p 5 p 2, p 3 p 5, p 4 p 1, p 2 p 3, p 4 p 5 p 4 p 1 p 2 p 3 p 4 Priority Queue Q für die Punkt- und Kreis-Events Pointer von Kreis-Events auf zugeh. Blätter in T und umgekehrt

Fortune s Sweep Algorithmus VoronoiDiagram(P R 2 ) Q new PriorityQueue(P ) T new BalancedBinarySearchTree() D new DCEL() // DS für Vor(P ) while not Q.empty() do p Q.ExtractMax() if p Punkt-Event then HandlePointEvent(p) else α Bogen von β, der entfernt werden soll HandleCircleEvent(α) // Punkt-Events sortiert nach y // Beach-Line behandle innere Restknoten von T (Halbgeraden von Vor(P )) return D

Punkt-Events behandeln HandlePointEvent(Punkt p) O(log n) Suche in T den Bogen α vertikal über p. Hat α pointer auf Kreis-Event in Q, lösche es aus Q. Teile α in α 0 und α 2. Sei α 1 neuer Bogen für p. Füge Kanten q, p und p, q in D ein. Prüfe, α 0, α 1 und α 1, α 2, auf Kreis-Events. In T : q q q, p α α 2 q p, q α 0 α 1 Laufzeit? α 0 p q p α 1 α 2 Schnittpunkte

Kreis-Events behandeln HandleCircleEvent(Bogen α) T.delete(α); Schnittpunkte in T updaten Entferne alle Kreis-Events zu α aus Q. Füge Knoten V({p, p, p }) und Kante V({p, p }) in D ein. Update potenzielle Kreis-Events, α left, α right und α left, α right, in Q. Laufzeit? O(log n) α left α p p p α right

Fortune s Sweep Algorithmus Satz: Für eine Menge P von n Punkten berechnet Fortune s Sweep Algorithmus das Voronoi-Diagramm Vor(P ) in O(n log n) Zeit und O(n) Platz. Beweisskizze: jedes Event benötigt O(log n) Zeit n Punkt-Events 2n 5 Kreis-Events (= #Knoten von Vor(P )) Fehlalarme erzeugen & löschen bereits inklusive Bemerkung: degenerierte Eingaben diesmal unproblematisch: Kreis-Events vor Punkt-Events, sonst Reihenfolge beliebig Kreis-Events für k 4 Punkte: Länge-0 Kanten und Knotenduplikate im Postprocessing entfernen zweideutiges Punktevent: beliebigen Bogen wählen

Diskussion Gibt es weitere Varianten von Voronoi-Diagrammen? Ja! Beispielsweise kann der Algorithmus bei gleicher Laufzeit und Platzbedarf auch für Voronoi-Diagramme von Strecken modifiziert werden. Auch andere Metriken wie L p oder additiv/ multiplikativ gewichtete Voronoi-Diagramme sind möglich. Was passiert in höheren Dimensionen? Voronoi-Diagramm für Polygone definieren die sog. Mittelachse, die z.b. in der Bildverarbeitung wichtig ist. Auch farthest-point Voronoi-Diagramme sind möglich. Die Komplexität von Vor(P ) steigt auf Θ(n d/2 ) und die Laufzeit zur Berechnung auf O(n log n + n d/2 ).

Anregungen aus der Zwischenevaluation Druckversion der Folien ab sofort online verfügbar Beweise und Tafel/Folien alle Beweise in der Literatur (meist [BCKO08]) detailliert nachlesbar Musterlösung für Übungsblätter Andreas wird die Lösungsideen schriftlich skizzieren Folien schneller und fehlerfrei online stellen sind auch bisher immer kurz nach der Vorlesung verfügbar; bei Fehlern bitte Bescheid geben!

Delaunay-Triangulierungen Grafik c Rodrigo I. Silveira Dr. Martin No llenburg Vorlesung Algorithmische Geometrie

Terrainmodellierung Höhenmesspunkte p = (x p, y p, z p ) Projektion π(p) = (p x, p y, 0) Interpolation 1: jeder Punkt bekommt Höhe des nächsten Messpunktes

Terrainmodellierung Höhenmesspunkte p = (x p, y p, z p ) Projektion π(p) = (p x, p y, 0) Interpolation 2: trianguliere Messpunkte und interpoliere auf Dreiecken

Terrainmodellierung Höhenmesspunkte p = (x p, y p, z p ) Aber wie sieht eine gute Triangulierung aus? Projektion π(p) = (p x, p y, 0) Interpolation 2: trianguliere Messpunkte und interpoliere auf Dreiecken

Triangulierung von Punkten Def.: Eine Triangulierung einer Punktmenge P R 2 ist eine maximale planare Unterteilung mit Knotenmenge P. CH(P ) Beob.: alle inneren Facetten sind Dreiecke äußere Facette ist Komplement der konvexen Hülle Satz 1: Sei P eine Menge von n nicht kollinearen Punkten und h die Anzahl Punkte auf CH(P ). Dann hat jede Triangulierung von P (2n 2 h) Dreiecke und (3n 3 h) Kanten.

Zurück zur Höheninterpolation 0 0 1240 1000 19 20 0 0 1240 1000 19 20 10 980 36 10 980 36 990 990 6 6 1008 28 1008 28 4 23 890 Höhe 985 Höhe 23 4 23 890 Intuitiv: Vermeide zu schmale Dreiecke! Oder: maximiere die kleinsten Dreieckswinkel!

Winkeloptimale Triangulierungen Def.: Sei P R 2 eine Punktemenge, T eine Triangulierung von P und m die Anzahl der Dreiecke. Dann ist A(T ) = (α 1,..., α 3m ) der Winkelvektor von T mit den sortierten Dreieckswinkeln α 1 α 3m. Für zwei Triangulierungen T und T von P definiere die Ordnung A(T ) > A(T ) als lexikographische Ordnung. T heißt winkeloptimal, falls A(T ) A(T ) für alle Triangulierungen T von P. T A(T ) = (60, 60, 60, 60, 60, 60 ) T A(T ) = (30, 30, 30, 30, 120, 120 )

Kantenflips Def.: Sei T eine Triangulierung. Eine Kante e von T heißt unzulässig, wenn der kleinste Winkel der zu e inzidenten Dreiecke durch einen Kantenflip größer wird. Beob.: Sei e eine unzulässige Kante von T und T = flip(t, e). Dann gilt A(T ) > A(T ). min i α i = 60 e T flip(t, e) min i α i = 30 e T

Der Satz von Thales Satz 2: Alle Dreiecke aus den Endpunkten des Kreisdurchmessers und eines Halbkreispunktes sind rechtwinklig. a b Satz 2 : Alle Dreiecke aus den Endpunkten einer Sekante l = ab und eines Kreispunktes c auf der gleichen Seite von l haben den gleichen Winkel an c. Für Dreiecke abd mit d innerhalb des Kreises gilt adb > acd, für e außerhalb des Kreises gilt aeb < acd. e c c d a b aeb < acb = ac b < adb

Zulässige Triangulierungen Lemma 1: Seien prq und pqs zwei Dreiecke in T und C der Umkreis von prq. Dann ist pq unzulässig genau dann wenn s int(c). Bilden p, q, r, s ein konvexes Viereck (s C) so ist entweder pq oder rs unzulässig. Beweisskizze: s ϕ pr > θ pr ϕ pr ϕ rq ϕ ps > θ ps p ϕ p θ sq θ rq ϕ ps r ϕ qs θ ps θ pr q ϕ q ϕ rq > θ rq ϕ qs > θ qs ϕ p > θ rq ϕ q > θ pr

Zulässige Triangulierungen Lemma 1: Seien prq und pqs zwei Dreiecke in T und C der Umkreis von prq. Dann ist pq unzulässig genau dann wenn s int(c). Bilden p, q, r, s ein konvexes Viereck (s C) so ist entweder pq oder rs unzulässig. Bem.: Charakterisierung symmetrisch bzgl. r und s s C pq und rs zulässig Kante unzulässig Viereck konvex Def.: Triangulierung ohne unzulässige Kanten heißt zulässig. Gibt es immer eine zulässige Triangulierung?

Zulässige Triangulierungen Lemma 1: Seien prq und pqs zwei Dreiecke in T und C der Umkreis von prq. Dann ist pq unzulässig genau dann wenn s int(c). Bilden p, q, r, s ein konvexes Viereck (s C) so ist entweder pq oder rs unzulässig. Bem.: Charakterisierung symmetrisch bzgl. r und s s C pq und rs zulässig Kante unzulässig Viereck konvex Def.: Triangulierung ohne unzulässige Kanten heißt zulässig. while T hat unzulässige Kante e do flip(t, e) return T terminiert, da A(T ) wächst und #Triangulierungen endlich (< 30 n, [Sharir, Sheffer 2011])

Zwischenbilanz Es gilt: Jede winkeloptimale Triangulierung ist zulässig. Aber ist jede zulässige Triangulierung auch winkeloptimal?

Die Delaunay-Triangulierung Sei Vor(P ) das Voronoi-Diagramm einer Punktmenge P. Def.: Der Graph G = (P, E) mit E = {pq V(p) und V(q) sind benachbart} heißt Dualgraph von Vor(P ). Def.: Die geradlinige Zeichnung von G heißt Delaunay-Graph DG(P ). DG(P ) Georgy Voronoy (1868 1908) Boris Delone (1890 1980)

Eigenschaften Satz 3: DG(P ) ist kreuzungsfrei. Beweisskizze: Der Bisektor b(p, q) definiert eine Voronoi-Kante r b(p, q) mit C P (r) P = {p, q}. bzw. Die Kante pq ist in DG(P ) es gibt einen leeren Kreis C p,q mit p und q auf dem Rand. Beob.: Ein Voronoi-Knoten v in Vor(P ) mit Grad k entspricht einem konvexen k-eck in DG(P ). Ist P in allgemeiner Lage (keine 4 Punkte auf eine Kreis), so sind alle Facetten in DG(P ) Dreiecke Delaunay-Triangulierung

Charakterisierung Satz über Voronoi-Diagramme: Ein Punkt q ist ein Voronoi-Knoten C P (q) P 3, der Bisektor b(p i, p j ) definiert eine Voronoi-Kante q b(p i, p j ) mit C P (q) P = {p i, p j }. Satz 4: Sei P eine Menge von Punkten. Punkte p, q, r sind Knoten der gleichen Facette in DG(P ) Kreis durch p, q, r ist leer Kante pq ist in DG(P ) es gibt einen leeren Kreis C p,q durch p und q Satz 5: Sei P Punktmenge und T eine Triangulierung von P. T ist Delaunay-Triangulierung Umkreis jedes Dreiecks ist im Inneren leer.

Zulässigkeit und Delaunay-Triangulierungen Satz 6: Sei P Punktmenge und T eine Triangulierung von P. T ist zulässig T ist Delaunay-Triangulierung. Beweisskizze: t p s q r

Zulässigkeit und Delaunay-Triangulierungen Satz 6: Sei P Punktmenge und T eine Triangulierung von P. T ist zulässig T ist Delaunay-Triangulierung. Beob.: Ist P in allgemeiner Lage ist DG(P ) eindeutig zulässige Triangulierung ist eindeutig wissen: T winkeloptimal T zulässig DG(P ) winkeloptimal! Ist P nicht in allgemeiner Lage, so ist zumindest für jede Triangulierung einer großen Facette von DG(P ) der minimale Winkel gleich (Übung!).

Zusammenfassung Satz 7: Für n beliebige Punkte kann in O(n log n) Zeit eine Delaunay-Triangulierung berechnet werden. (Voronoi-Diag. + Triangulierung großer Facetten) Korollar: Für n Punkte in allgemeiner Lage kann in O(n log n) Zeit eine winkeloptimale Triangulierung berechnet werden. Sind die Punkte nicht in allgemeiner Lage, lässt sich zumindest eine Triangulierung mit maximalem kleinsten Winkel in O(n log n) Zeit berechnen.