Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Punktsuche in Landkarten In welcher Masche liegt q? Außen x y Landkarte S mit n Kanten q
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Anzahl der Schnittpunkte gerade: außerhalb ungerade: innerhalb Vorgehen I (naiv) è Naives Verfahren: Test für jede Masche iterieren è Aufwand: mindestens O(n) è Analogie: Element in Menge èlog(n) bei Verwendung einer geeigneten Struktur èAVL-Baum èSortierter Array, Bisektion è Ist log(n) auch hier zu erreichen?
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Vorgehen II (semi-naiv) Außen x y q Aufteilung der Landkarte durch vertikale Linien Konstruktion einer Karte S
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Außen q Eigenschaften der Zerlegung I Die Maschen werden in Trapeze (ggf. Dreiecke) zerlegt Dadurch werden auch die Kanten in Teilkanten zerlegt Kein Knoten liegt im Inneren eines Trapezes Die Teilkanten eines Streifens lassen sich anordnen Übung: Vergleich mit Scan-Line beim Segmentschnitt x y
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Jede Kante lässt sich einer in y-Richtung folgenden Masche zuordnen q x y Außen Eigenschaften der Zerlegung II Jeder Abschnitt eines Streifens liegt in genau einer Masche
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Jede Kante lässt sich einer in y-Richtung folgenden Masche zuordnen q x y Außen Eigenschaften der Zerlegung III Jeder Abschnitt eines Streifens liegt in genau einer Masche
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Vorgehen I Aufteilung der Landkarte vertikale Linien Konstruktion einer Karte S Außen Sortierte Speicherung der x-Koordinaten der Vertikalen in einem Array Sortierte Speicherung der Kanten jedes Streifens in einem Array q x y
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Algorithmus punktsuche binäre Suche, wie q zu den Kanten(Segmenten) liegt Algorithmus punktsuche { binäre Suche des Streifens, der q enthält, im Array der x- Koordinaten q x y
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Algorithmus punktsuche falls ein Segment direkt unterhalb (direkt oberhalb)q gefunden wird, ist die gesuchte Masche gefunden} direkt unterhalb q x y binäre Suche, wie q zu den Kanten(Segmenten) liegt Algorithmus punktsuche { binäre Suche des Streifens, der q enthält, im Array der x- Koordinaten
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Binäre Suche in einem sortierten Array Suche der Position einer Zahl x in einem Array A der Länge n bestimme die mittlere Position i und den Wert A[i] Fall x = A[i]: return i Fall x < A[i]: setze die Suche in der linken Hälfte von A rekursiv fort Fall x > A[i]: setze die Suche in der rechten Hälfte von A rekursiv fort Übung: Adaptiere den Algorithmus so, dass er das nächst kleinere Element findet Adaptiere den Algorithmus so, dass er auf einen Array von Segmenten anwendbar ist.
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Komplexität der Suche Gesamtkomplexität: O(log n) Algorithmus punktsuche { binäre Suche des Streifens der q enthält im Array der x-Koordinaten falls ein Segment direkt unterhalb q gefunden wird, ist die gesuchte Masche gefunden} Binäre Suche in einem Array mit maximaler Länge 2n: O(log n) Binäre Suche in einem Array mit maximaler Länge n: O(log n) binäre Suche, wie q zu den Kanten(Segmenten) liegt
Lutz Plümer - Diskrete Mathematik II - SS Vorlesung Speicheranforderung Aufteilung der Landkarte durch vertikale Linien Konstruktion einer Karte S Sortierte Speicherung der x-Koordinaten der Vertikalen in einem Array Sortierte Speicherung der Kanten jedes Streifens in einem Array Array der x-Koordianten benötigt O(n) Array jedes Streifens benötigt O(n) Gesamtkomplexität: O(n²)
Speicheranforderung (Beispiel worst-case) Lutz Plümer - Diskrete Mathematik II - SS Vorlesung