Punkt-in-Landkarte II

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Baumstrukturen Richard Göbel.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - Balancierte Bäume, AVL-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Union-Find-Strukturen
Algorithmen und Datenstrukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung Foliendesign: cand. geod. Jörg Steinrücken.
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Lösung der Aufgabe 1: Die Erweiterung des Diagramms auf „Winged Egde“ besteht in zwei Beziehungen, nr-Kante und vl-Kante, zwischen der Klasse Kante. Jede.
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Übung zum R-Baum, Gegeben ist die dargestellte Menge von Rechtecken, die in der Reihenfolge 1, 7, 9, 13, 3, 5, 11, 6, 8, 10, 4, 14, 12, 2 eingegeben.
Geoinformation II Vorlesung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
2. Die rekursive Datenstruktur Baum 2
Datenstrukturen für Landkarten
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 8 SS 2000 Punkt-in-Polygon-Verfahren II (Trapezkarte)
Geoinformation II Vorlesung 4 SS 2001 Voronoi-Diagramme.
Modellierung des Raumes
Geoinformation II Vorlesung 3 SS 2001 Polygon Overlay.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 9 SS 2000 Punkt-in-Polygon-Verfahren III (R/R + -Baum)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Konstruktion der Voronoi-Diagramme I
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Graphen und Bäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Landkarten Landkarten sind Tesselationen mit folgenden Eigenschaften:
Algorithmische Probleme in Funknetzwerken IV
Neuer Abschnitt: Modellierung des Raumes
Eine kurze Geschichte der Graphentheorie
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 4 WS 01/02 Quadtrees.
„Topologie“ - Wiederholung der letzten Stunde
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Voronoi-Diagramme.
Binärer Baum, Binärer Suchbaum I
Geoinformation II 6. Sem. Vorlesung April 2000 Geometrische Algorithmen - ein einführendes, größeres Beispiel für ein Semester-begleitendes Programmier.
Diskrete Mathematik I Vorlesung 7 Binärer Suchbaum III.
Konvexe Hüllen (Convex Hulls)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung 4 4. Mai 2000 Voronoi-Diagramm.
Binärbäume.
AVL-Bäume.
Vorlesung April 2000 Polygon Overlay
Lösung der Aufgabe 1: Die Erweiterung des Diagramms auf „Winged Egde“ besteht in zwei Beziehungen, nr-Kante und vl-Kante, zwischen der Klasse Kante. Jede.
Diskrete Mathematik II
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Straße * besteht aus Flurstück 1 Masche 2 begrenzt 3..* Kante 2 2..* begrenzt Lösung der Aufgabe 1: Die Ergänzung (grau) des Diagramms besteht.
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Punkt-in-Landkarte II Geoinformation III Vorlesung 2 WS 2001/02 Punkt-in-Landkarte II (Trapezkarte)

Lösung 2: Trapezkarte R

Trapezkarte: Konstruktionsprinzip Die Trapezkarte T(S) einer Landkarte S wird wie folgt konstruiert: Bilde ein umschließendes Rechteck R Vermeidung der unbeschränkten Masche „Außen“ Konstruiere für jeden Endpunkt P eines Segments aus S eine obere und eine untere vertikale Extension (Linie); diese Linien enden am Schnittpunkt mit dem nächsten Segment aus S oder an R Diese Konstruktion zerlegt R in disjunkte Trapeze, die von (höchstens) 4 Seiten begrenzt werden: Ein oder zwei vertikale Seiten, gebildet aus den Extensionen Eine obere und eine untere Seite, gebildet aus den Segmenten

Trapezkarte: vereinfachende Annahme Es gibt keine zwei Knoten mit gleicher x-Koordinate, d.h. es gibt keine vertikalen Kanten Falls diese Annahme nicht erfüllt ist, kann sie durch Rotation um den Ursprung + Scherung mit einem sehr kleinen Winkel , der topologisch „nichts kaputt macht“, hergestellt werden Später werden wir sehen, dass diese Transformation rein virtuell ist

5 Fälle für die vertikalen (linken) Kanten 1. Kante entartet zu einem Punkt 2. Die untere vertikale Er-weiterung trifft auf eine Kante von S 3. Die obere vertikale Er-weiterung trifft auf eine Kante von S 4. Kante besteht aus oberer und unterer Extension 5. Kante besteht aus einer Kante von R

Bezeichnungen rightp(D) leftp(D) top(D) D bottom(D)

Trapezkarte - Eigenschaften Satz: Eine Trapezkarte einer Landkarte S mit n Kanten enthält höchstens (a) 6n + 4 Knoten und (b) 3n + 1 Trapezoide. Beweis: (a) Ein Knoten der Trapezkarte ist entweder ein Eckpunkt von R  4 ein Knoten der Karte S  2*n Endknoten einer Extension  2*2*n (n Kanten  2* n Knoten  2 * 2 * n Endknoten) Insgesamt: 6n + 4

Trapezkarte - Eigenschaften Satz: Eine Trapezkarte einer Landkarte S mit n Kanten enthält höchstens 6n + 4 vertikale Linien und sowie 3n + 1 Trapeze. Beweis: (b): aus a) mit Eulers Formel (als Übung)

Trapezkarte - Eigenschaften Zwei Trapeze T und T‘ heißen adjazent, wenn sie sich entlang einer vertikalen Linie berühren T T‘ Es gilt entweder top(T) = top(T‘) oder T‘ T T‘ T bottom(T) = bottom(T‘)

Konstruktion und Suche Probleme: Konstruktion der Trapezkarte T(S) Unterstützung der Suche in einer Trapezkarte Idee für das weitere Vorgehen: Unterstützung der Suche durch eine Art „binärer Suchbaum“ D(S) mit 2 Sorten von Knoten X-Knoten für Endpunkte / Extensionen Links oder Rechts? Y-Knoten für Segmente Oben oder Unten? Trapezkarte und „Baum“ werden simultan konstruiert

T(S) und D(S) D E F G A B C p1 q1 s1 p2 q2 s2 p1 A q1 s1 B C p2 q2 s2

Schrittweise Konstruktion von T(S) und D(S)

Trapezkarte und Suchstruktur zweier Kanten X p1

Trapezkarte und Suchstruktur zweier Kanten

Trapezkarte und Suchstruktur zweier Kanten X A X q1 p1

Trapezkarte und Suchstruktur zweier Kanten q1 A q1 s1 s1 q1 s1 p1

Trapezkarte und Suchstruktur zweier Kanten q1 A B Y s1 Y s1 q1 X p1 B X p2

Trapezkarte und Suchstruktur zweier Kanten q1 s1 B Y A B Y s1 q1 p1 p2 p2 p2

Trapezkarte und Suchstruktur zweier Kanten q1 s1 B Y A B Y s1 q1 X C p1 p2 p2 q2 C X

Trapezkarte und Suchstruktur zweier Kanten q1 s1 B C p2 X A B q2 s1 q1 q2 C p1 s2 p2 q2 X

Trapezkarte und Suchstruktur zweier Kanten q1 s1 B C p2 q2 A B C p1 q1 s1 s2 s2 p2 s2 q2 s2 s2

Trapezkarte und Suchstruktur zweier Kanten q1 s1 B C p2 q2 s2 A B C E G p1 q1 s1 D G p2 q2 s2 F E D F

Beachte: T(S) und D(S) werden simultan konstruiert D(S) ist kein Baum, sondern ein „DAG“, ein „directed acyclic graph“, ein gerichteter azyklischer Graph Dieser DAG ist zusammenhängend und hat genau eine Wurzel Unterschied zum Baum: innere Knoten können mehrere Vorgänger haben Die Blätter von D(S) und die Trapeze von T(S) referenzieren sich gegenseitig Wie stets hängt die Tiefe (=Güte) des Baumes von der Reihenfolge der Bearbeitung der Segmente ab Idee: Zufällige Permutation der Segmente von S

Datenstruktur für T(S) Möglich wäre eine doppelt verkettete Kantenliste (s. Overlay) Wegen der einfachen Struktur der Trapeze bietet sich folgende Alternative an: Knoten (mit Koordinaten) Segmente (mit Referenzen auf Knoten) Trapeze mit Referenzen auf: Top Bottom Leftp Rightp alle (maximal 4) Nachbarn Beachte: Die Geometrie der Trapeze ist nur implizit, kann aber in konstanter Zeit rekonstruiert werden

Skizze: Konstruktion von T(S) und D(S) Input: Eine Menge S von n Segmenten Konstruiere ein umschließendes Rechteck R Berechne eine Permutation s1, s2,...,sn von S for i= 1 to n do Konstruiere T(Si) und D(Si) mit Si = {s1, s2,...,si} unter Verwendung von T(Si-1) und D(Si-1) „Schleifeninvariante“: T(Si-1) ist eine Trapezkarte und D(Si-1) ist eine Suchstruktur für diese Trapezkarte Der Unterschied zwischen „i-1“ und „i“ betrifft genau die Trapeze in T(Si-1) , die von si geschnitten werden

Von T(Si-1) und D(Si-1) zu T(Si) und D(Si) Fall 1: si liegt in genau einem Trapez  Input: Das Segment si, T(Si-1) und D(Si-1) Idee: Nutze die Suchstruktur D(Si-1), um  schnell zu finden Vorgehen: Modifiziere T(Si-1) und D(Si-1) in der auf den folgenden Folien beschriebenen Weise:

Einfügen einer Kante I D(Si-1) T(Si-1)   pi

Einfügen einer Kante I D(Si-1) pi qi pi si pi qi qi si si

Einfügen einer Kante I T(Si) D(Si) D(Si-1) A C qi si pi B D si pi qi A

Von T(Si-1) und D(Si-1) zu T(Si) und D(Si) Fall2 Fall 2: si liegt in mehrere Trapezen 1, 2,... n Input: Das Segment si, T(Si-1) und D(Si-1) Teilziel: Bestimmung von 1, 2,... n Beobachtungen: j ist rechter Nachbar von j-1 Jedes Trapez  hat maximal 2 rechte Nachbarn Der richtige kann mit rightp(j-1) rasch identifiziert werden: wenn rightp(j-1) oberhalb von si, dann wähle den unteren rechten Nachbarn, sonst den oberen Der Übergang von j-1 zu j ist also einfach Nutze D(Sj-1) um 1 schnell zu finden Modifiziere T(Si-1) und D(Si-1) nun auf die folgende Weise:

Einfügen einer Kante II D(Si-1) 1 2 0 3 T(Si-1) 2 3 1 0 qi pi

Einfügen einer Kante II D(Si-1) 1 2 0 2 qi 1 qi 0 qi si pi

Einfügen einer Kante II D(Si-1) si si si si si si qi si qi si si pi

Einfügen einer Kante II D(Si) D(Si-1) qi si D T(Si) E A F A B C D F qi si C B si pi E