Punkt-in-Polygon-Suche Übersicht

Ähnliche Dokumente
Punkt-in-Polygon-Suche Übersicht

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

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

7. Triangulation von einfachen Polygonen

6. Triangulation von Polygonen

Algorithmische Geometrie 7. Punktsuche (Teil 2)

7. Sortieren Lernziele. 7. Sortieren

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

Grundlagen der Programmierung

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

6. Algorithmen der Computer-Geometrie

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

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

Aufgabensammlung zur algorithmischen Geometrie

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Geometrie 1. Christian Bay Christian Bay Geometrie / 46

6. Übung zur Linearen Optimierung SS08

Geometrische Algorithmen

4.9.7 Konstruktion der Suffixbäume

Algorithmen für schwierige Probleme


Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen

Übung zur Vorlesung Berechenbarkeit und Komplexität

Geoinformation I Geometr.-topol. Datenstrukturen

4. Kreis- und Wegeprobleme Abstände in Graphen

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Triangulierung von einfachen Polygonen

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

Algorithmen & Datenstrukturen 1. Klausur

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

Geradenarrangements und Dualität von Punkten und Geraden

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

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

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Geometrische Algorithmen

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

Grundlagen: Algorithmen und Datenstrukturen

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

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

2.7.1 Inside-Test Konvexe Hülle Nachbarschaften Schnittprobleme

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

Einstieg in die Informatik mit Java

Grundlagen: Algorithmen und Datenstrukturen

Download Jens Conrad, Hardy Seifert

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

Datenbanken: Indexe. Motivation und Konzepte

Indexieren und Suchen

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

WS 2009/10. Diskrete Strukturen

Bäume, Suchbäume und Hash-Tabellen

Vorwort. 1 Flüsse in Planaren Graphen. 1.1 Flüssen in Planaren Graphen als Kürzeste-Wege-Problem

Lernmodul 2 Geometr.-topol. Datenstrukturen. Lernmodul 2: Geoobjekte und ihre Modellierung - Geometr.-topol. Datenstrukturen

Kollisionserkennung

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14

3. Musterlösung. Problem 1: Boruvka MST

Abschnitt 18: Effizientes Suchen in Mengen

Datenstrukturen. einfach verkettete Liste

3. Musterlösung. Problem 1: Heapsort

Algorithmen & Komplexität

m2l 60.odt Klausur 12/I B 1. Gegeben seien zwei Geraden. Wie gehen Sie vor, um über deren Lagebeziehung eine Aussage zu treffen.

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

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

INTERVALLBÄUME. Tanja Lehenauer, Besart Sylejmani

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Übung: Algorithmen und Datenstrukturen SS 2007

Elemente der Algebra

Vorlesungen vom 5.Januar 2005

Flächenberechnung mit Integralen. Flächenberechnung mit Integralen. Flächenberechnung mit Integralen. Flächenberechnungen mit Integralen

Klausur Theoretische Informatik I WS 2004/2005

Triangulierung von einfachen Polygonen

1. Übungsblatt zu Algorithmen II im WS 2011/2012

Institut für Mathematik Geometrie und Lineare Algebra J. Schönenberger-Deuel

Vier Farben reichen! Von farbigen Landkarten und kniffeligen Beweisen. Martin Oellrich. Warum eine Karte? 3. Warum stetige Grenzen?

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

July 04, Geometrie I. Hallo Welt! für Fortgeschrittene. Daniel Uebler

Bipartite Graphen. Beispiele

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Polygontriangulierung

Klausur Algorithmen und Datenstrukturen

Abschnitt: Algorithmendesign und Laufzeitanalyse

Westfählische Wilhelms-Universität. Eulersche Graphen. Autor: Jan-Hendrik Hoffeld

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Übersicht Datenstrukturen und Algorithmen. Literatur. Algorithmus: Wikipedia Definition. Vorlesung 1: Einführung. Prof. Dr.

1. Übung Algorithmentechnik

Algorithmen und Datenstrukturen Kapitel 10

Datenstrukturen & Algorithmen

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

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

Datenstrukturen und Algorithmen SS07

8. Modelle für feste Körper

Übersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.

Datenstrukturen & Algorithmen

Flüsse in Netzwerken. Seminar über Algorithmen SoSe Mike Rohland & Julia Schenk

Kapitel 9 Suchalgorithmen

Effiziente Algorithmen Übung 2

Algorithmen und Datenstrukturen

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume Digitale Suchbäume Heaps

2.5. Aufgaben zu Dreieckskonstruktionen

Zum Einstieg. Mittelsenkrechte

Transkript:

Folie 1 von 19 Punkt-in-Polygon-Suche Übersicht Praxisbeispiel/Problemstellung Zählen von Schnittpunkten Schnitt einer Halbgerade mit der Masche Aufwandsbetrachtung Streifenkarte Vorgehen und Eigenschaften Speicherung der Daten / Suche in den Daten Aufwandsbetrachtung Trapezkarte

Folie 2 von 19 Praxisbeispiel Rollover am Bildschirm

Folie 3 von 19 Problemstellung 1 In welcher Masche liegt Punkt P? Allgemein: Gegeben ist eine räumliche Datenbank und eine Klasse typischer Anfragen Gesucht wird eine Datenstruktur, die einen effizienten Algorithmus unterstützt Konkret: Gegeben ist eine Landkarte S und ein Punkt P Gesucht wird die Masche M, die den Punkt P beinhaltet

Folie 4 von 19 Lösungsansatz 1 Halbgerade am Punkt anlegen Aus dem >>Jordanschen Kurvensatz folgt: Konstruiere ausgehend von P eine Halbgerade in beliebiger Richtung P liegt außerhalb des begrenzten Gebietes, wenn eine gerade Anzahl von Schnittpunkten entsteht. P liegt innerhalb des begrenzten Gebietes, wenn eine ungerade Anzahl von Schnittpunkten entsteht. 1x

Folie 5 von 19 Theorem Jordanscher Kurvensatz Nach Jordan: Eine geschlossene Jordankurve S zerlegt die Ebene in zwei zusammenhängende Gebiete, von denen genau eines nicht beschränkt ist. Zwei Punkte der Ebene können genau dann durch eine Jordankurve J verbunden werden, die S nicht schneidet, wenn sie entweder beide im Inneren oder beide im Äußeren von S liegen.

Folie 6 von 19 Lösungsansatz 1 Suchaufwand Das Verfahren muss für jede Masche iteriert werden: Aufwand für ein Polygon mit n Kanten: O(n) Aufwand bei m Polygonen: O(m*n) Der Aufwand für eine Suche nach dem Jordanschen Kurvensatz beträgt O(m*n). Mit welchem Verfahren kann der Suchaufwand verringert werden?

Folie 7 von 19 Praxisbeispiel Bundesrepublik Deutschland In der Praxis kann die Anzahl der Maschen und Kanten sehr schnell hoch werden: Bundesrepublik Deutschland: 1 Masche Bundesländer: 16 Maschen mit 17.700 Kanten Kreise: 440 Maschen mit 75.000 Kanten Gemeinden: 13.900 Maschen mit 300.000 Kanten Angaben für den Massstab 1:500.000 Quelle: ArcDeutschland 500, ESRI

Folie 8 von 19 Vorgehensweise 2 Konstruktion eines Index Der Aufbau eines Index kostet Zeit. Diese amortisiert sich jedoch bei der Abfrage. Allgemein: Gegeben: Räumliche Datenbank und eine Klasse typischer Anfragen Gesucht: Datenstruktur, die einen möglichst schnellen Algorithmus unterstützt Konkret: Gegeben: Landkarte S und ein Punkt P Gesucht: Index für die schnelle Identifikation der zugeordneten Masche M.

Folie 9 von 19 Lösungsansatz 2 Konstruktion der Streifenkarte S' Vorgehen: Konstruktion einer Karte S' durch Aufteilung der Landkarte mit vertikalen Geraden durch alle Knoten. Folge: In allen Schnittpunkten der Geraden mit den Kanten entstehen neue Knoten. 2x

Folie 10 von 19 Lösungsansatz 2 Eigenschaften von S' S' hat folgende Eigenschaften: Die Maschen sind in Trapeze (ggf. Dreiecke) zerlegt. Kanten sind in Teilkanten zerlegt. 2x

Folie 11 von 19 Lösungsansatz 2 Vorteil von S' Die Karte erhält eine Struktur, die wir ausnutzen können: Die Streifen sind in x-richtung angeordnet. Innerhalb eines Streifens sind die Teilkanten und damit die Trapeze in y-richtung angeordnet. 2x

Folie 12 von 19 Lösungsansatz II Speicherung der Daten Die Datenspeicherung erfolgt in Arrays: Ein Array enthält die x-koordinaten der Streifen. Jeder Streifen enthält ein Array der y-koordinaten der Teilkanten.

Folie 13 von 19 Lösungsansatz 2 Intervall-Bisektion Zwei schnelle binäre Suchalgorithmen werden für die Suche nach der Masche hintereinander geschaltet: Binäre Suche im Array der x- Koordinaten nach dem Streifen, der P enthält. Binäre Suche nach dem zugehörigen Trapez in diesem Streifen. Sobald die Teilkante direkt >>unterhalb/ oberhalb von P gefunden ist, ist die gesuchte Masche gefunden. 3x

Folie 14 von 19 Bemerkungen Eigenschaften der Maschen Es gilt: Jeder Abschnitt eines Streifens liegt genau in einer Masche. Jede Kante lässt sich einer in y- Richtung folgenden Masche zuordnen. Die Fläche"Außen" muss ebenfalls als Masche angesehen werden.

Folie 15 von 19 Lösungsansatz 2 Suchaufwand Der Suchaufwand dieses Lösungsansatzes entsteht durch: Binäre Suche im Array der x-koordinaten nach dem Streifen, der P enthält: Binäre Suche in einem Array mit maximaler Länge 2n: O(log n) Binäre Suche nach der Lage von P zu den Teilkanten im Array der y-koordinaten: Binäre Suche in einem Array mit maximaler Länge n: O(log n) Der Aufwand für die binäre Suche in einer Streifenkarte beträgt O(log n). Im >>Vergleich zum Lösungsansatz 1 hat sich der Suchaufwand verbessert.

Folie 16 von 19 Vergleich Suchaufwand der zwei Lösungsansätze Der Aufwand für eine Suche nach dem Jordanschen Kurvensatz beträgt O(n). Der Suchaufwand für die binäre Suche in einer Streifenkarte beträgt O(log n).

Folie 17 von 19 Lösungsansatz 2 Speicherbedarf Es entsteht eine hohe Speicheranforderung durch: die sortierte Speicherung der x-koordinaten der vertikalen Geraden in einem Array: Array der x-koordinaten: O(n) die sortierte Speicherung der y-koordinaten der Teilkanten jedes Streifens von oben nach unten in einem Array: Array der y-koordinaten: O(n) Die Speicheranforderung für die Daten dieses Lösungsansatzes beträgt O(n²)

Folie 18 von 19 Lösungsansatz 2 Worst Case Speicherbedarf Der Worst Case tritt tatsächlich auf: In ungünstigen Fällen erfolgt mit diesem Verfahren eine sehr hohe Knoten- und Teilkantenbildung und damit ein hohes Datenaufkommen. Wie kann der Speicherbedarf verringert werden? 1x

Folie 19 von 19 Problemstellung 3 Verringerung des Speicherbedarfs Zwischenresümee: Die Zerlegung in Streifen führt zu einer schnellen Suche. Allerdings ist der Speicherbedarf unvertretbar hoch. Problem: Gibt es eine bessere Zerlegung, die die Laufzeit erhält und den Speicherbedarf verringert?