Punktlokalisation 1. Trapez-Zerlegungen. 2. Eine Suchstruktur. 3. Randomisierter, inkrementeller Algorithmus zur Konstruktion der Trapez-Zerlegung

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

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

Punkt-in-Polygon-Suche Übersicht

Algorithmische Geometrie 7. Punktsuche (Teil 2)

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

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

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

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden

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

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Punkt-in-Polygon-Suche Übersicht

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Geometrische Algorithmen

Distanzprobleme in der Ebene

Algorithmische Geometrie: Schnittpunkte von Strecken

Polygontriangulierung

Voronoi Diagrams. Christian Wellenbrock. December 1, 2009

Uberblick 1. Problemstellung 2. Kongurationsraum 3. Bewegungsplanung fur einen Punktroboter 4. Minkowski Summen 5. Pseudo-Scheiben 6. Bewegungsplanung

Geometrische Algorithmen

7. Triangulation von einfachen Polygonen

Lineares Programmieren

Algorithmische Geometrie 7. Punktsuche

Geometrische Datenstrukturen

Triangulierung von einfachen Polygonen

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3

Parallele Algorithmen in der Bildverarbeitung

2.7.1 Inside-Test Konvexe Hülle Nachbarschaften Schnittprobleme

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

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

7. Sortieren Lernziele. 7. Sortieren

Algorithmische Geometrie 5. Triangulierung von Polygonen

Polygon Triangulation. robot.scr. "Art Gallery Problem" Sichtbarkeitspolygon. Algorithmische Geometrie - SS 99 - Th. Ottmann

Geometrische Algorithmen Einige einfache Definitionen: Ist ein Punkt in einem Polygon? Punkt-in-Polygon-Problem. Das Punkt-in-Polygon-Problem

2.4. Triangulierung von Polygonen

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

Informatik II, SS 2016

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

Hallo Welt für Fortgeschrittene

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

Quadtrees und Meshing

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

7 Weitere Baumstrukturen und Heapstrukturen

durch Einfügen von Knoten konstruiert werden kann.

Quadtrees und Meshing

Seminar: Randomisierte Algorithmen Auswerten von Spielbäumen Nele Küsener

Algorithmen und Datenstrukturen I AVL-Bäume

Informatik II, SS 2014

Quadtrees und Meshing

Geometrische Algorithmen Segmentschnitt

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

6.1.2 Bem.: Für Vierecke ist der Begriff Innenwinkel im allgemeinen nicht sinnvoll. Skizze.

Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle. zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung "Algorithmische Geometrie"):

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

Triangulierung von Polygonen und das Museumsproblem

Kürzeste Wege in einfachen Polygonen. Sofiya Scheuermann 28. Januar 2008

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Polygontriangulierung

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Randomisierte Algorithmen 2. Erste Beispiele

Geometrie 1. Christian Bay Christian Bay Geometrie / 46

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

Distributed Algorithms. Image and Video Processing

Algorithmen zur Visualisierung von Graphen

Zentralübung zur Vorlesung Diskrete Strukturen

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Algorithmische Geometrie: Rest Lokalisierung von Punkten; Voronoi Diagramme (1/2)

Die Berechnung der Triangulation eines Polygons in fast-linearer Zeit.

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

\ 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.

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung 2 KÜRZESTE WEGE

Algorithmische Geometrie: Lineare Optimierung (I)

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

6.1.2 Bem.: Für Vierecke ist der Begriff Innenwinkel im allgemeinen nicht sinnvoll. Skizze.

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Very simple methods for all pairs network flow analysis

Sichtbarkeitsgraphen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Füllen von Primitiven

Algorithmen und Datenstrukturen

Das Ski Problem. Das Ski Problem 1 / 38

für n-elementige Punktmenge jedenfalls Ω(n log n), da mit VD die konvexe Hülle in linearer Zeit bestimmbar.

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Übung Algorithmen I

Anmerkungen zur Übergangsprüfung

Grundlagen: Algorithmen und Datenstrukturen

Wann sind Codes eindeutig entschlüsselbar?

Datenstrukturen und Algorithmen

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS

Rolf Wanka Sommersemester Vorlesung

12. Woche: Verifizierer, nicht-deterministische Turingmaschine, Klasse NP

2 Sortieren durch Vergleichen Eingabefolge a 1, a 2,..., a n 2, 1, 3 Sortieralg. Für festes n ist ein vergleichsbasierter Sortieralg. charakterisiert

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Das Steinerbaumproblem

Transkript:

Punktlokalisation 1. Trapez-Zerlegungen 2. Eine Suchstruktur 3. Randomisierter, inkrementeller Algorithmus zur Konstruktion der Trapez-Zerlegung 4. Analyse

Punktlokalisation

Einteilung in Streifen Anfragezeit: O(log n) binäre Suche in x und dann binäre Suche in y Richtung. Leider: SpeicherplatzΘ(n 2 ) n/2 planare Aufteilung der Ebene n/2

Einteilung in Trapeze Annahme: x-koordinaten paarweise verschieden Beobachtungen: Jede vert. Kante hat mindestens einen Punkt mit einem Segmentende gemein. Geg: n Segmente mit Bounding Box R (nicht-schneidend) Ges: vertikale Dekomposition T(S)

Beobachtungen: f R f ist konvex f ist beschränkt Jede nicht-vertikale Kante von f ist Teil eines Segmentes von S oder des Recktecks R

Trapez-Zerlegung für Menge von Liniensegmenten Jede Fläche der Trapez-Zerlegung einer Menge S von Liniensegmenten in allgemeiner Lage hat eine oder zwei vertikale und genau zwei nicht-vertikale Seiten

Für jedes Trapez t in T(S) ist die linke vertikale Begrenzung definiert durch den Endpunkt lp(t) eines Segmentes aus S. rp(t) ist analog definiert.

5 Fälle (für linke Trapezkante) a) b) lp(t) top(t) bottom(t) c) d) e) linke Kante ist gleich bounding box-kante (Gilt für das linkeste Trapez!)

Satz: Die Trapez-Zerlegung T(S) einer Menge S von n Liniensegmenten in allgemeiner Lage besteht aus höchstens 6 n + 4 Ecken und 3 n + 1 Trapezen. Bew.: (1) Jede Ecke von T(S) ist - Ecke von R oder - Endpunkt eines Segments von S oder - Punkt, an dem eine Vertikale durch Endpunkt eines Segments von S auf Element von S oder auf R trifft. 4 2 n 2 * (2 n) 6 n + 4

Satz: Die Trapez-Zerlegung T(S) einer Menge S von n Liniensegmenten in allgemeiner Lage besteht aus höchstens 6 n + 4 Ecken und 3 n + 1 Trapezen. Bew.: (2) Betrachte für jedes t in T(S) den Punkt lp(t): - Für genau ein t ist eine Ecke von R der Punkt lp(t). - Jeder linke Endpunkt eines Segmentes aus S ist lp(t) für höchstens zwei t aus T(S). - Jeder rechte Endpunkt eines Segmentes aus S ist lp(t) für höchstens ein t aus T(S). 1 2n n 3 n + 1

Nachbartrapeze Längs vertikaler Kante benachbart (a) Segmente in allgemeiner Lage: Jedes Trapez hat höchstens 4 Nachbartrapeze. (b) Beliebige Menge S von Segmenten Anzahl Nachbartrapeze unbeschränkt.

Vertikale Nachbarschaften, Segmente in allgemeiner Lage Trapez t ist (vertikaler) Nachbar von t gdw top(t) = top(t ) oder bottom(t) = bottom(t ) t = ul_neighbor(t) gdw t ist oberer linker Nachbar von t gdw top(t) = top(t ) und t links von t. bl_neighbor, ur_neighbor, br_neighbor... Speicherung einer Trapez-Zerlegung T(S): Speichere die Menge S und für jedes Trapez t: - Zeiger auf top(t), bottom(t) - Zeiger auf lp(t), rp(t) - Zeiger auf die maximal 4 Nachbarn ul, bl, ur, br Beob.: t ist durch top(t), bottom(t), lp(t), rp(t) eindeutig bestimmt!

Eine Suchstruktur A 1l B 1 2l C D 2 1r F E G 2r A B C 1l 1 2l 2 1r E 2 2r G D F Diagramm: Endpunkte entscheiden links, rechts Segmente entscheiden oben, unten

A 1l B 1 2l C D 2 1r F E G 2r

Ein randomisierter inkrementelleralgorithmus Eingabe: Menge S von n sich nicht-schneidenen Segmenten Ausgabe: Trapez-Zerlegung T(S) und Suchstruktur D Berechne R, initialisiere T(S) und D Bringe die Elemente s1,...,sn von S in zufällige Reihenfolge for i = 1,...,n do Nehme si hinzu und verändere T(Si-1) => T(Si) und D(Si-1) => D(Si) Invariante: Im Schritt i ist T(Si) korrekte Trapez-Zerlegung von Si und D(Si) eine zugehörige Suchstruktur.

Ein randomisierter inkrementelleralgorithmus Eingabe: Menge S von n sich nicht-schneidenen Segmenten Ausgabe: Trapez-Zerlegung T(S) und Suchstruktur D Berechne R, initialisiere T(S) und D Bringe die Elemente s1,...,sn von S in zufällige Reihenfolge for i = 1,..,n Finde Menge t1,t2,...,tk Trapezen, die si schneidet Ersetze t0,t1,..,tk in T durch neue Trapeze Entferne t0,t1,..,tk in D und erzeuge neue Blätter Verbinde neue Blätter mit inneren Knoten Fragen: Wie finde ich die Schnitttrapeze? Wie werden T und D aktualisiert (a) falls neues Segment keine früheren schneidet (b) falls neues Segment frühere schneidet?

Finden der Schnitttrapeze t j+1 ist rechter Nachbar von t j t0 t1 t2 t3 s i In T(Si) werden exakt diejenigen Trapeze verändert, die von s geschnitten werden. i Falls rp(t j ) liegt oberhalb von s i, dann ist sonst ist t = ur_neighbor(t ). j+1 j Clou: t0 kann durch eine Anfrage in der Suchstruktur D(Si-1) der Iteration i-1 gefunden werden. t j+1 = lr_neighbor(t j ),

Segment komplett enthalten Dekomposition t s p q A C D B T(Si-1) T(Si) Suchstruktur D(Si-1) D(Si-1) t 4 neue Trapeze - 1 altes Trapez Suchtiefe + 3 A C p s D q B

Segment schneidet Dekomposition p s t0 t1 t2 t3 q T(Si-1) Suchstruktur B A D C E F T(Si) D(Si-1) D(Si) t0 t1 t2 t3 6 neue Trapeze - 4 alte Tiefe +2 s s s B A C D s E q F

Abschätzung der Tiefe der Suchstruktur D S Menge von n Segmenten in allgemeiner Lage, q beliebiger, fester Anfragepunkt. Tiefe von D: im worst case: 3n, im Mittel: O( log n) Betrachte Anfrage mit q in D Xi = # in Iteration i erzeugter Knoten auf dem Suchpfad Xi <= 3 Pi = Wahrscheinlichkeit dafür, dass im Schritt i ein Knoten auf dem Suchpfad nach q erzeugt wird E[Xi] <= 3 Pi Beobachtung: Im Schritt i wird Knoten auf Suchpfad nach q erzeugt, gdw Trapez t(q, i-1) in T(S i-1 ), das q enthält, ist nicht dasselbe wie das Trapez t(q, i), das q in T(S i ) enthält.

Sei t(q,i) das Trapez, das q in der zu Schritt i gehörenden Zerlegung T(Si) enthält. => E[Xi] <= 3 Prob[t(q,i) <> t(q,i-1)] Beob.: t(q,i) hängt nur von Si, nicht von der Reihenfolge ab, in der die Elemente von Si eingefügt wurden. Rückwärtsanalyse: Pi ist die Wahrscheinlichkeit dafür, dass t(q,i) aus Zerlegung T(Si) verschwindet, wenn si aus T(Si) verschwindet. Beob.: t=t(q,i) verschwindet mit si aus T(Si) gdw. si definiert eine der Seiten von t gdw. top(t(q,i)) = si oder bottom(t(q,i)) = si oder (lp(t(q,i)) oder rp(t(q,i)) verschwindet mit si)

Prob[top(t(q,i)=si] = Prob[bottom(t(q,i))=si] = 1/i Prob[lp(t(q,i)) verschwindet mit si aus T(Si)] = 1/i Prob[rp(t(q,i)) verschwindet mit si aus T(Si)] = 1/i Pi = Prob[t(q,i)<>t(q,i-1)] = Prob[t(q,i) nicht in T(S i-1 )] <= 4/i n => Σ i=1 n Σ i=1 E[ Xi] = 12/i = 12 Hn = O(log n)

Analyse Größe der Suchstruktur D D hat O(n) Blätter, weil jedes Blatt genau ein Trapez der Zerlegung T(S) repräsentiert. # Knoten von D n <= O(n) + Σ (Anzahl innerer Knoten erzeugt in Schritt i) i=1 = O(n^2) O(i) Im worst case hat D insgesamt O(n^2) Knoten

Analyse Größe der Suchstruktur D Satz: D hat im Mittel O(n) viele Knoten Bew. o.b.d.a betrachte innere Knoten, da Blätter in O(n) Xi = # der in Schritt i erzeugten inneren Knoten Es gilt: n Σ i=1 n Σ i=1 E[ Xi] = E[Xi] Sei d(t,s) = 1, falls t in T(Si) durch s gelöscht wird, und 0 sonst Da maximal 4 Segmente ein gegebenes Trapez löschen, folgt: Σ s in Si Σ t in T(Si) d(t,s) <= 4 #(T(Si)) = O(i)

E[Xi] = 1/i Σ d(t,s) s in Si Σ t in T(Si) <= 1/i O(i) = O(1) Der Erwartungswert für die Zahl der im Schritt neu erzeugten inneren Knoten der Suchstruktur D ist in O(1). n => E[ Σ Xi] = O(n) i=1 Zusammenfassung: Sei S eine planare Flächeneinteilung der Ebene mit n Kanten. Dann kann man in erwarteter Zeit O(n log n) eine Suchstruktur der erwarteten Grösse O(n) konstruieren, sodass für einen beliebigen Anfragepunkt q eine Point-Location Anfrage in erwarteter Zeit O(log n) beantwortet werden kann.