Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme

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

6. Algorithmen der Computer-Geometrie

16. All Pairs Shortest Path (ASPS)

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

Abschnitt: Algorithmendesign und Laufzeitanalyse

Das Briefträgerproblem

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

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)

Sortierverfahren für Felder (Listen)

8 Diskrete Optimierung

Das Falten-und-Schneiden Problem

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg

Kap. 4.2: Binäre Suchbäume

Datenstrukturen & Algorithmen

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Algorithmen II Vorlesung am

Kostenmaße. F3 03/04 p.188/395

Programmiertechnik II

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

Kapiteltests zum Leitprogramm Binäre Suchbäume

Suchen und Sortieren Sortieren. Heaps

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Graphen: Datenstrukturen und Algorithmen

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Algorithmen & Datenstrukturen 1. Klausur

GIS und raumbezogene Datenbanken

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

Algorithmik - Kompaktkurs

Datenstrukturen und Algorithmen SS07

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Häufige Item-Mengen: die Schlüssel-Idee. Vorlesungsplan. Apriori Algorithmus. Methoden zur Verbessung der Effizienz von Apriori

Punktbeschriftung in Dynamischen Karten

Überblick. Lineares Suchen

Über Kommentare und Ergänzungen zu diesen Lösungsbeispielen freuen wir uns!

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007

Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme. Faktorisierung. Stefan Büttcher

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Computer Graphik I Polygon Scan Conversion

Grundlagen der Programmierung

Algorithmische Geometrie

Sortieralgorithmen. Inhalt: InsertionSort BubbleSort QuickSort. Marco Block

13. Binäre Suchbäume

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Algorithmen und Datenstrukturen 2

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Ideen der Informatik Suchen und Sortieren [Ordnung muss sein ] Kurt Mehlhorn Adrian Neumann viele Folien von Kostas Panagiotou

Grundlegende Geometrie - Vorlesung mit integriertem Praxiskurs Klausur (08-10 Uhr Audimax, HS 1)

Expander Graphen und Ihre Anwendungen

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Algorithmen und Datenstrukturen (WS 2007/08) 63

Algorithmen und Datenstrukturen Suchbaum

Anwendungen der Wirtschaftsmathematik und deren Einsatz im Schulunterricht

12. Modelle für 3D-Objekte und -Szenen

Programmieren I. Kapitel 7. Sortieren und Suchen

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Nachklausur zur Einführung in die Geometrie im SS 2002 Lösung Aufgabe 1 1.Weg (kurz und einfach):

4.1 Einführung. 4.2 Z-Ordnung. 4.3 R-Bäume. 4.4 Quadtrees. Kapitel 3: Räumliche Indexstrukturen. 4. Räumliche Indexstrukturen

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Zeichnen von Graphen. graph drawing

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Sortierte Folgen 250

Algorithms for Regression and Classification

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1

Berechnung und Visualisierung von Voronoi-Diagrammen in 3D

Sortierverfahren. Sortierverfahren für eindimensionale Arrays

WS 2009/10. Diskrete Strukturen

PROSEMINAR ONLINE ALGORITHMEN

Einführung Point Cloud Library

Vorlesung 3 MINIMALE SPANNBÄUME

Laufzeit und Komplexität

Name: Seite 2. Beantworten Sie die Fragen in den Aufgaben 1 und 2 mit einer kurzen, prägnanten Antwort.

Teil II. Nichtlineare Optimierung

Handout 6. Entwicklung von Makros

Suchen und Sortieren (Die klassischen Algorithmen)

27. August 2013 Einleitung. Algorithmen und Datenstrukturen

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Binäre lineare Optimierung mit K*BMDs p.1/42

Verwendung einer Polaris als Kegelsonnenuhr zur Anzeige babylonischer und italienischer Stunden

Tutorium Algorithmen & Datenstrukturen

Bei Konstruktionen dürfen nur die folgenden Schritte durchgeführt werden : Beliebigen Punkt auf einer Geraden, Strecke oder Kreislinie zeichnen.

Tutorium 5 - Programmieren

Wir unterscheiden folgende drei Schritte im Design paralleler Algorithmen:

Algorithmen und Datenstrukturen

Formelsammlung zur Kreisgleichung

Einführung in die Informatik 1

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Grundlagen der 3D-Modellierung

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Geometrie Klasse 5 Basiswissen und Grundbegriffe der Geometrie

Transkript:

Folie 1 von 32 Geometrische Algorithmen Voronoi-Diagramme

Folie 2 von 32 Voronoi-Diagramme Übersicht Problemstellung Animation zur Konstruktion eines Voronoi-Diagramms Definition, Eigenschaften eines Voronoi-Diagramms Konstruktion des Voronoi-Diagramms Divide and Conquer Aufwand Konstruktion des Trennenden Kantenzugs Eigenschaften Animation Datenstruktur Worst Case Pseudocode: "Divide and Conquer", "Merge", "Tangente"

Folie 3 von 32 Problemstellung Welche Blume schnappt den Falter? 1x

Folie 4 von 32 Problemstellung Anwendungen Kollisionsproblem: Welche 2 Punkte haben den kleinsten Abstand (Roboter, Flugzeuge,...) Standortsuche: Wo wird die neue Filiale platziert... Filialenschließungsproblem: welches Paar von Filialen macht sich gegenseitig die größte Konkurrenz... Postamts-Problem: wo liegt das nächste Postamt (Krankenhaus,...) Einzugs- und Einflussgebiete von Versorgungsstationen (und ihre Größe) Bewertung von Standorten Modellierung von Nähe Delaunay-Triangulation Konvexe Hülle

Folie 5 von 32 Lösung Konstruktion eines Voronoi-Diagramms Interaktive Animation zum Voronoi-Diagramm Quelle: FernUniversität Hagen http://wwwpi6.fernuni-hagen.de/geometrie-labor/voroglide/

Folie 6 von 32 Lösung Definition des Voronoi-Diagramms Gegeben ist eine Menge M von n Punkten in der Ebene. Das Voronoi-Diagramm der Punktmenge zerlegt die Ebene in n disjunkte Gebiete (Voronoi-Regionen). Die Voronoi-Region eines Punktes p enthält genau einen der Punkte aus M sowie alle Punkte q, die näher an p als an jedem anderen Punkt p liegen ("Gebiete gleicher nächster Nachbarn").

Folie 7 von 32 Lösung Bezeichnungen im Voronoi-Diagramm 3x

Folie 8 von 32 Lösung Konvexe Menge, Konvexe Hülle Konvexe Menge Eine Menge P von Punkten ist konvex, wenn zu jedem Punktepaar p und q auch die verbindende Strecke pq ganz in P enthalten ist. Konvexe Hülle Die konvexe Hülle CH(P) einer Punktemenge P ist die kleinste konvexe Menge, die alle Punkte aus P enthält.

Folie 9 von 32 Lösung Eigenschaften von Voronoi-Diagrammen Vereinfachende Annahme: Aus der gegebenen Punktmenge M liegen keine 4 Elemente auf einem gemeinsamen Kreis. In jedem Voronoi-Knoten treffen sich genau drei Kanten. Das Voronoi-Diagramm von n Punkten hat höchstens 2n 5 Knoten und 3n 6 Kanten (linear!). Die Knoten mit unbeschränkten Regionen bilden die konvexe Hülle. Der Duale Graph, bei dem benachbarte Punkte miteinander verbunden werden, bildet eine >>Delaunay-Triangulation.

Folie 10 von 32 Exkurs Delaunay-Triangulation Für Punktmengen gibt es verschiedene Triangulationen, die alle dieselbe Anzahl von Dreiecken enthalten. Die Delaunay-Triangulation ist die Triangulation, bei der in jedem Dreieck der kleinste Winkel maximal wird. Falls z.b. kleine Winkel unerwünscht sind (Numerik!), ist die Delaunay- Triangulation optimal. Anwendungsbeispiel: Ausgangssituation für die Interpolation von Isolinien

Folie 11 von 32 Vorgehen Konstruktion des Voronoi-Diagramms

Folie 12 von 32 Konstruktion Divide and Conquer 5x

Folie 13 von 32 Konstruktion Betrachtung der Teilschritte Input Sortiere aufsteigend nach x-koordinate Split Bestimme den Median Zerlege in annähernd gleich große Teilmengen links und rechts des Medians Merge Konstruktion des trennenden Kantenzuges Abschneiden überflüssiger Kanten Bildung der Voronoi-Regionen (wie bei Overlay-Algorithmus) Einfachster Fall von Merge: Die Teilmengen enthalten je einen Punkt. Der trennende Kantenzug ist die Mittelsenkrechte dieser Punkte

Folie 14 von 32 Konstruktion Aufwand Der Zyklus ist log n - mal zu durchlaufen Die gewünschte Laufzeit O(n * log n) wird erreicht, wenn Split and Merge nicht mehr als O(n) Schritte benötigen. Was ist das schwierigste Teilproblem?

Folie 15 von 32 Konstruktion Schwierigstes Teilproblem Einfach: Input Sortiere aufsteigend nach x-koordinate Einfach: Split Bestimme den Median Zerlege in annähernd gleich große Teilmengen links und rechts des Medians Schwierig: Merge Konstruktion des trennenden Kantenzuges Abschneiden überflüssiger Kanten Bildung der Voronoi-Regionen (wie bei Overlay-Algorithmus) Einfachster Fall von Merge: Die Teilmengen enthalten je einen Punkt. Der trennende Kantenzug ist die Mittelsenkrechte dieser Punkte

Folie 16 von 32 Vorgehen Konstruktion des trennenden Kantezugs

Folie 17 von 32 Trennender Kantenzug Eigenschaften monoton in Nord-Süd-Richtung jede Kante ist Grenze zwischen einer blauen und einer gelben Region (Mittelsenkrechte) die nördlichsten und südlichsten Teilstücke sind unbeschränkt, also Halbgeraden die zugehörigen Punkte bilden dort unbeschränkte Voronoi-Regionen die Punkte liegen also jeweils auf der blauen bzw. gelben konvexen Hülle Problem: Wie werden diese Punkte gefunden?

Folie 18 von 32 Trennender Kantenzug Gemeinsame Tangente die gesuchten Punkte werden über die gemeinsame Tangente an die konvexen Hüllen CH(P1) und CH(P2) identifiziert (Bestimmung der Tangente folgt später) konvexe Hülle der gesamten Punktmenge ergibt sich aus den Teilstrukturen durch Einfügen zweier zusätzlicher Kanten konvexe Hülle ist Abfallprodukt der Erzeugung des Voronoi-Diagramms synchrone Herleitung beider Strukturen

Folie 19 von 32 Trennender Kantezug Animation 75x

Folie 20 von 32 Voronoi-Diagramm Datenstruktur Doppelt verkettete Kantenliste (wie bei Polygon-Overlay) Vorteile: Direkter Zugriff auf die benachbarten Maschen Durchlaufen des Kantenumrings in linearer Zeit

Folie 21 von 32 Trennender Kantenzug Aufwand Wie lange dauert die Konstruktion des trennenden Kantenzuges? - Ziel war O(n) Aufwand ist abhängig von: Zahl der Teilkanten / Knoten des Kantenzuges Zahl Berechnungen von Schnittpunkten mit den benachbarten Voronoi-Regionen

Folie 22 von 32 Trennender Kantenzug Länge im Worst Case Länge des Kantenzuges: O(n)

Folie 23 von 32 Trennender Kantenzug Worst Case des Umrings Größenordnung des Umrings: O(n)

Folie 24 von 32 Trennender Kantenzug Worste Case gesamt O(n) * O(n) = O(n²)? War jetzt alles umsonst? Nutzung der Eigenschaften: 1. Voronoi-Regionen sind konvex 2. Der trennende Kantenzug ist monoton. Lösung: Keine Kante öfter als zweimal anfassen.

Folie 25 von 32 Trennender Kantenzug Vermeidung des Worst Case Ziel: Keine Kante mehr als zwei mal "anfassen" Es gibt insgesamt höchstens 3* n 6 Kanten: O(n) Konvexität der Voronoi-Regionen: höchstens zwei Schnittpunkte mit der aktiven Halbgeraden Es genügt, die linken Kantenumringe im Uhrzeigersinn und die rechten Kantenumringe gegen den Uhrzeigersinn zu durchlaufen und den zuletzt gefundenen und verworfenen Schnittpunkt als Haltepunkt zu merken!

Folie 26 von 32 Merge Zusammenfassung der Schritte Die Voronoi-Diagramme VD(P1) und VD(P2) sind bereits berechnet. Die konvexen Hüllen CH(P1) und CH(P2) seien ebenfalls an dieser Stelle bekannt. 1. Bestimme die obere und untere Tangente von CH(P1) U CH(P2) 2. Konstruiere CH(P1 U P2) 3. Bilde die Mittelsenkrechten zu den beiden neu eingeführten Kanten 4. Konstruiere den trennenden Kantenzug als Verbindung der beiden Mittelsenkrechten 5. Entferne die überstehenden Kanten 6. Bilde die neu entstandenen Voronoi-Regionen (Maschen)

Folie 27 von 32 Merge Bestimmen der oberen Tangente 10x

Folie 28 von 32 Pseudocode Divide and Conquer Input: Liste P mit mindestens 1 Punkt Output: Voronoi-Diagramm der Punktmenge P VoronoiDiagramm BaueVoro(Punktliste P) if Anzahl der Punkte in P größer als 1 Divide: Zerlege P in zwei etwa gleich große Teillisten P1 und P2; //Berechne rekursiv Voronoi-Diagramme von P1 und P2 VoronoiDiagramm VD1 = BaueVoro(P1); VoronoiDiagramm VD2 = BaueVoro(P2); Ergebnis = Merge(VD1, VD2); return Ergebnis; else return (Voronoi-Diagramm des Punktes in P, ganze Ebene);

Folie 29 von 32 Pseudocode Merge I Input: Zwei Voronoi-Diagramme VD1 und VD2 für zwei Punktmengen P1 und P2; die x- Koordinaten der Punkte in VD1 sind kleiner als die in VD2. Output: Das Voronoi-Diagramm von P1 U P2.

Folie 30 von 32 Pseudocode Merge II VoronoiDiagramm Merge(VD1, VD2) Konstruiere die konvexen Hüllen von VD1 und VD2; (p,q) = findeoberetangente(ch(p1),ch(p2)); (r,s) = findeunteretangente(ch(p1),ch(p2)); while (untere Mittelsenkrechte g(r,s) ist noch nicht erreicht) Bestimme für die aktuelle Mittelsenkrechte g(p,q) den Schnittpunkt P mit der Voronoi-Region p, an dem nicht im letzten Schritt die Mittelsenkrechte abgeschnitten wurde; den Schnittpunkt Q mit der Voronoi-Region q, an dem nicht im letzten Schritt die Mittelsenkrechte abgeschnitten wurde; die zugehörigen Nachbarn p' (q' ), die mit p (q) die Kante gemeinsam haben, auf der P (Q) liegt; if Q ist höher als P ersetze q durch q' und schneide g(p,q) an der Stelle Q ab; if P ist höher als Q ersetze p durch p'und schneide g(p,q) an der Stelle P ab; bestimme die neue aktuelle Mittelsenkrechte g(p,q); return Ergebnis;

Folie 31 von 32 Pseudocode Tangente Input: Zwei konvexe Hüllen CH(P1) und CH(P2) ; die größte x-koordinate von CH(P1) ist kleiner als die kleinste x-koordinate von CH(P2). Output: Ein Paar (u,w) von Punkten, das die obere Tangente zu CH(P1) und CH(P2) festlegt. Punktepaar findeoberetangente(ch(p1),ch(p2)) u = Punkt in CH(P1) mit der größten x-koordinate; w = Punkt in CH(P2) mit der kleinsten x-koordinate; do L(u,w) = Gerade durch u und w; u' = Knoten, der in CH(P1) auf u gegen Uhrzeigersinn folgt; w' = Knoten, der in CH(P2) auf w im Uhrzeigersinn folgt; while(u' liegt über L(u,w)) u <- u'; while(w' liegt über L(u,w)) w <- w'; while(u oder w haben sich geändert) return (u,w);

Folie 32 von 32 Voronoi-Diagramme Literatur Klein, Rolf: Algorithmische Geometrie. Addison-Wesley Longman, Bonn, 1997 Okabe, Atsuyuki et al.: Spatial Tesselations: Concepts and Applications of Voronoi- Diagramms. John Wiley & Sons, 2000 Ottman, Thomas, Widmayer, Peter: Algorithmen und Datenstrukturen. 3. Auflage - Spektrum Akademischer Verlag, Heidelberg, Berlin, Oxford, 1996 Preparata, F. P., Shamos, M. I.: Computational Geometry: An Introduction. Springer- Verlag, New York, 1985