Punkt-in-Polygon-Suche Übersicht

Größe: px
Ab Seite anzeigen:

Download "Punkt-in-Polygon-Suche Übersicht"

Transkript

1 Folie 1 von 43 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 43 Praxisbeispiel Rollover am Bildschirm

2 Folie 3 von 43 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 43 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

3 Folie 5 von 43 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 43 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?

4 Folie 7 von 43 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 Kanten Kreise: 440 Maschen mit Kanten Gemeinden: Maschen mit Kanten Angaben für den Massstab 1: Quelle: ArcDeutschland 500, ESRI Folie 8 von 43 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.

5 Folie 9 von 43 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 43 Lösungsansatz 2 Eigenschaften von S' S' hat folgende Eigenschaften:! Die Maschen sind in Trapeze (ggf. Dreiecke) zerlegt.! Kanten sind in Teilkanten zerlegt. 2x

6 Folie 11 von 43 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 43 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.

7 Folie 13 von 43 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 43 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.

8 Folie 15 von 43 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 43 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).

9 Folie 17 von 43 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 43 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

10 Folie 19 von 43 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? Folie 20 von 43 Lösungsansatz 3 Vereinfachung des Beispiels Um im Folgenden die Übersicht zu wahren, wird die Beispielkarte geändert:! Löschen zweier Knoten: Ersetzen von drei Kanten durch eine Kante! Verschieben zweier Knoten 2x

11 Folie 21 von 43 Lösungsansatz 3 Vereinfachende Annahmen! Umschließen der Karte durch ein achsenparalleles Rechteck R: Vermeidung der unbeschränkte Masche "Außen"! Es existieren keine Knoten mit gleicher x-koordinate: Scherung oder Rotation um den Winkel ε um den Ursprung " ε ist sehr klein wodurch die Topologie erhalten bleibt " Später wird gezeigt, dass diese Transformation rein virtuell ist 2x Folie 22 von 43 Lösungsansatz 3 Konstruktion der Trapezkarte T(S) Vorgehen:! Bei der Salamikarte werden alle Kanten der Landkarte durchschnitten. Beim Tranchieren endet der Schnitt an der Kante. Dadurch werden nur die direkt betroffenen Kanten zerlegt. 2x

12 Folie 23 von 43 Lösungsansatz 3 Konstruktionsprinzip Trapezkarte Gegeben ist eine Landkarte S, umschlossen von einem Rechteck R; es existieren keine Knoten mit gleicher x-koordinate! Konstruiere für jeden Knoten aus S eine obere und eine untere vertikale Extension (Linie); diese Linien enden am Schnittpunkt mit der nächsten Kante aus S oder an R Die Trapezkarte T(S) ist eine Zerlegung, bestehend aus der Landkarte S, dem Rechteck R und den vertikalen Extensionen! T(S) besteht aus disjunkten Trapezen (Dreiecken), die von (höchstens) vier Seiten (Kanten) begrenzt werden: " Ein oder zwei vertikale Seiten, gebildet aus den Extensionen " Genau zwei nicht-vertikale Seiten, gebildet aus Segmenten von Kanten Folie 24 von 43 Lösungsansatz 3 Eigenschaften von T(S) 5 Fälle für die vertikalen Kanten (in der Abbildung die linken Kanten): 1. Die Kante entartet zu einem Punkt 2. Die untere vertikale Erweiterung trifft auf eine Kante von S 3. Die obere vertikale Erweiterung trifft auf eine Kante von S 4. Die Kante besteht aus oberer und unterer Extension 5. Die Kante besteht aus einer Kante des Rechtecks R (genau zwei Trapeze) 5x

13 Folie 25 von 43 Lösungsansatz 3 Bezeichnungen Ein Trapez ist durch vier Elemente eindeutig festgelegt:! top( )! bottom( )! leftp( ): Linker Endpunkt von top( ) oder bottom( ) oder rechter Knoten einer dritten Kante (Trapez ganz links: einer der linken Knoten von R)! rightp( ): analog zu leftp( ) Folie 26 von 43 Lösungsansatz 3 Komplexität der Trapezkarte Satz 1: Eine Trapezkarte T(S) einer Landkarte S mit n Kanten enthält höchstens: a) 6n + 4 Knoten und b) 3n + 1 Trapeze. Beweis: a) >>Addition der vorkommenden Knoten b) mit Eulers Formel aus a) (als Übung)

14 Folie 27 von 43 Lösungsansatz 3 Beweis zu Satz 1a Satz 1: Eine Trapezkarte T(S) einer Landkarte S mit n Kanten enthält höchstens: (a) 6n + 4 Knoten Beweis: 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 Folie 28 von 43 Lösungsansatz 3 Adjazenz von Trapezen Zwei Trapeze und ' heißen adjazent, wenn sie sich entlang einer vertikalen Linie berühren. Es gilt entweder: top( ) = top( ') oder: bottom( ) = bottom( ') Ein Trapez kann höchstens zu vier Trapezen adjazent sein.

15 Folie 29 von 43 Lösungsansatz 3 Datenstruktur für T(S)! Möglich wäre eine doppelt verkettete Kantenliste! Wegen der einfachen Struktur der Trapeze bietet sich folgende Alternative an: " Elemente für Knoten (mit Koordinaten) von S (leftp( ), rightp( )) " Elemente für Kanten (mit Referenzen auf Knoten) von S (top( ), bottom( )) " Elemente für Trapeze von S'' mit Referenzen auf: # leftp( ) # rightp( ) # top( ) # bottom( ) # alle (maximal 4) adjazenten Trapeze! Beachte: Die Geometrie der Trapeze ist nur implizit, kann aber in konstanter Zeit rekonstruiert werden Folie 30 von 43 Lösungsansatz 3 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 mit 2 Arten von Elementen # X-Elemente für Knoten: Links oder Rechts? # Y-Elemente für Kanten: Oben oder Unten? " Trapezkarte und Baum werden simultan konstruiert

16 Folie 31 von 43 Lösungsansatz 3 Beispiel für T(S) und D Folie 32 von 43 Lösungsansatz 3 Aufbau des Beispiels 33x

17 Folie 33 von 43 Lösungsansatz 3 Zum Algorithmus! T(S) und D werden simultan konstruiert! Die Suchstrukur wird schrittweise aufgebaut: Nach "Einfügen" eines Elements in der Karte S erfolgt ein Update von Suchstruktur und Trapezkarte! D ist kein Baum, sondern ein DAG, ein directed acyclic graph, ein gerichteter azyklischer Graph! Dieser DAG ist zusammenhängend, hat genau eine Wurzel und genau ein Blatt für jedes Trapez von T(S)! In der berechneten Suchstruktur referenzieren sich die Blätter von D und die Trapeze von T(S) 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 Folie 34 von 43 Lösungsansatz 3 Pseudocode: Aufbau von T(S) & D Input: Eine Landkarte S mit n Kanten Output:Eine Trapezkarte T(S) und eine Suchstruktur D für T(S) in einem Rechteck R 1. Konstruiere ein umschließendes Rechteck R 2. Berechne eine Permutation s 1, s 2,...,s n der Kanten von S 3. for i = 1 to n 4. do Finde die Trapeze 0,..., k in T(S i-1 ), die von s i geschnitten werden 5. Lösche 0,..., k aus T(S i-1 ) und ersetze sie durch neue Trapeze 6. Entferne die Elemente für 0,..., k aus D i-1 und füge neue innere Knoten und Blätter an

18 Folie 35 von 43 Lösungsansatz 3 Übergang von i-1 zu i Offene Frage: Wie finden wir 0,..., k?! Konstruktion von T(S i ) und D i mit S i = {s 1,..., s i } unter Verwendung von T(S i-1 ) und D i-1! "Schleifeninvariante": T(S i-1 ) ist eine Trapezkarte und D(S i-1 ) ist eine Suchstruktur für diese Trapezkarte! Der Unterschied zwischen "i - 1" und " i " betrifft genau die Trapeze in T(S i-1 ), die von s i geschnitten werden Folie 36 von 43 Lösungsansatz 3 Pseudocode: Finde Trapeze Input: Das Segment s i, T(S i-1 ) und D(S i-1 ) Output: Die Trapeze 0,..., k, die von s i geschnitten werden. 1. Seien p i und q i linker und rechter Knoten von s i 2. Punkt-in-Polygon für p i in D i-1 : Finde 0 3. j = 0; 4. while q i liegt rechts von rightp( j ) 5. do if rightp( j ) liegt oberhalb von s i 6. then j+1 ist der untere rechte Nachbar von j 7. else j+1 ist der obere rechte Nachbar von j 8. j = j return 0,..., k Wir erhalten zwei Fälle

19 Folie 37 von 43 Lösungsansatz 3 Trapezfolge Fall 1 Folie 38 von 43 Lösungsansatz 3 Beispiel zum Fall 1 15x

20 Folie 39 von 43 Lösungsansatz 3 Trapezfolge Fall 2 Folie 40 von 43 Lösungsansatz 3 Beispiel für Fall 2 21x

21 Folie 41 von 43 Lösungsansatz 3 Effizienz I - Erwartungswerte Der oben beschriebene Algorithmus hat folgende Erwartungswerte (gemittelt über alle Permutationen von n Segmenten):! Konstruktion von T(S) und Aufbau von D(S): O(n log n)! Speicherplatz von D(S): O(n)! Punkt-in-Polygon-Suche mittels D(S): O(log n) Folie 42 von 43 Lösungsansatz Effizienz II - Bemerkungen! Der Erwartungswert bezieht sich auf die Menge aller Permutationen! Pech bei der Permutation kann zum Worst Case O(n) für die Suche und zu entsprechender Tiefe der Suchstruktur führen! Abhilfe durch Stop-Loss-Punkt setzen: Brich ab, falls D(S) zu tief wird, und fange neu an mit einer neuen Permutation! Differenz zum Worst-Case O(n) für die Suche und O(n 2 ) für die Konstruktion kann beliebig klein gemacht werden, ohne daß man von der O(n log n) Laufzeit für die Konstruktion von D(S) sehr stark abweicht

22 Folie 43 von 43 Lösungsansatz 3 Sonderfallbetrachtung Was macht man, wenn 2 Knoten die gleichen x-koordinaten haben?! Beobachtung: die vertikalen Extensionen müssen eigentlich nicht vertikal, sondern nur parallel sein! Wichtig sind nur die topologischen Invarianten links / rechts an den x-knoten und oben / unten an den y-knoten! Abhilfe durch Transformation (x,y) (x + ε * y, y) für geeignet kleines Epsilon! Diese Transformation wird aber in Wirklichkeit gar nicht durchgeführt, sondern: (x,y) liegt rechts von (x',y') falls x > x' oder x = x' und y > y'! Oben / Unten Vergleich an y-knoten für Segmente in the same spirit (als Übung)

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

Geometrische Algorithmen Punkt-in-Polygon-Suche. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Punkt-in-Polygon-Suche Folie 1 von 51 Geometrische Algorithmen Punkt-in-Polygon-Suche Folie 2 von 51 Punkt-in-Polygon-Suche Übersicht Praxisbeispiel/Problemstellung Zählen von Schnittpunkten Schnitt einer Halbgerade mit der

Mehr

Punkt-in-Polygon-Suche Übersicht

Punkt-in-Polygon-Suche Übersicht 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

Mehr

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

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer

Mehr

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.05.2011 Motivation Gegeben eine Position p = (p x, p y )

Mehr

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

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 22.05.2012 Nachtrag: Dynamische Bereichsabfragen Letzte Woche: kd-trees und Range-Trees

Mehr

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

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

Mehr

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

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :

Mehr

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

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x

Mehr

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 22.04.2014 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,

Mehr

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

Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme 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

Mehr

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,

Mehr

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

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,

Mehr

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

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 20.05.2014 Objekttypen in Bereichsabfragen y0 y0 y x x0 Bisher betrachteter Fall Eingabe:

Mehr

Algorithmische Geometrie 7. Punktsuche (Teil 2)

Algorithmische Geometrie 7. Punktsuche (Teil 2) Algorithmische Geometrie 7. Punktsuche (Teil 2) JProf. Dr. Heike Leitte Computergraphik und Visualisierung Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4. Schnitte

Mehr

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y GRUNDZÜGE DER ALGORITHMISCHEN GEOMETRIE Klausur 18. Juli 2008, 10:15-12:15 Uhr Name:................................... Matrikelnummer:................................... Anzahl beschriebener Blätter (ohne

Mehr

Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer

Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer Vorlesung Geometrische Algorithmen Generierung von Nicht-uniformen Netzen Sven Schuierer Uberblick 1. Anwendung 2. Anforderungen an Netze 3. Quadrantenbaume Quadrantenbaume fur Punktemengen Bestimmung

Mehr

Lineare Programmierung

Lineare Programmierung Übung Algorithmische Geometrie Lineare Programmierung LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann 14.05.2014 Übersicht Übungsblatt 4 Lineares

Mehr

Polygontriangulierung

Polygontriangulierung Vorlesung Algorithmische Geometrie Polygone triangulieren LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 26.04.2011 Das Kunstgalerie-Problem

Mehr

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

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.07.2012 Objekttypen in Bereichsabfragen y0 y0 y x x0 Bisher

Mehr

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente Lage zweier Segmente Prüfung auf Schnittfreiheit Formeln zum Geradenschnitt Feststellen des

Mehr

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente! Lage zweier Segmente! Prüfung auf Schnittfreiheit! Formeln zum Geradenschnitt! Feststellen

Mehr

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

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.07.2012 Objekttypen in Bereichsabfragen y0 y x x0 Bisher

Mehr

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

Algorithmische Geometrie 3. Schnitte von Liniensegmenten Algorithmische Geometrie 3. Schnitte von Liniensegmenten JProf. Dr. Heike Leitte Computergraphik und Visualisierung Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4.

Mehr

Algorithmische Geometrie: Schnittpunkte von Strecken

Algorithmische Geometrie: Schnittpunkte von Strecken Algorithmische Geometrie: Schnittpunkte von Strecken Nico Düvelmeyer WS 2009/2010, 3.11.2009 3 Phasen im Algorithmenentwurf 1. Konzentration auf das Hauptproblem 2. Verallgemeinerung auf entartete Eingaben

Mehr

2.2. Schnitte von Liniensegmenten

2.2. Schnitte von Liniensegmenten Wir wenden uns nun dem Problem (2) aus 1 zu. F15 Aus zwei Mengen S1, S2 von Liniensegmenten möchten wir alle Schnittpunkte der Segmente aus S1 mit denen aus S2 ermitteln. Wir legen fest, dass sich zwei

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

Mehr

Algorithmische Geometrie: Voronoi Diagramme (Teil 2)

Algorithmische Geometrie: Voronoi Diagramme (Teil 2) Algorithmische Geometrie: Voronoi Diagramme (Teil 2) Nico Düvelmeyer WS 2009/2010, 12.1.2010 Überblick 1 Definition und grundlegende Eigenschaften (Wied.) 2 Bestimmung des Voronoi Diagramms Gleitebenenverfahren

Mehr

Geometrische Algorithmen Segmentschnitt. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Segmentschnitt

Geometrische Algorithmen Segmentschnitt. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Segmentschnitt Folie 1 von 37 Geometrische Algorithmen Segmentschnitt Folie 2 von 37 Segmentschnitt Übersicht Zwei Segmente Lage zweier Segmente Prüfung auf Schnittfreiheit Formeln zum Geradenschnitt Feststellen des

Mehr

Algorithmische Techniken für Geometrische Probleme

Algorithmische Techniken für Geometrische Probleme Algorithmische Techniken für Geometrische Probleme Berthold Vöcking 14. Juni 2007 Inhaltsverzeichnis 1 Die Sweepline-Technik 2 1.1 Schnitte orthogonaler Liniensegmente............... 2 1.2 Schnitte beliebiger

Mehr

Algorithmische Geometrie: Delaunay Triangulierung (Teil 2)

Algorithmische Geometrie: Delaunay Triangulierung (Teil 2) Algorithmische Geometrie: Delaunay Triangulierung (Teil 2) Nico Düvelmeyer WS 2009/2010, 2.2.2010 Überblick 1 Delaunay Triangulierungen 2 Berechnung der Delaunay Triangulierung Randomisiert inkrementeller

Mehr

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.05.2011 Geometrie in Datenbanken In einer Personaldatenbank

Mehr

Liniensegmentschnitt. Doppelt verkettete Kantenliste. Überlagerung von 2 ebenen Graphen. Boolsche Operatoren für einfache Polygone (LEDA)

Liniensegmentschnitt. Doppelt verkettete Kantenliste. Überlagerung von 2 ebenen Graphen. Boolsche Operatoren für einfache Polygone (LEDA) Liniensegmentschnitt Motivation, Überlagerung von Karten, Problemformulierung Ein einfaches Problem und dessen Lösung mit Hilfe des Sweep-Line Prinzips Output-sensitiver Liniensegmentschnittalgorithmus

Mehr

Übungsblatt 7 - Voronoi Diagramme

Übungsblatt 7 - Voronoi Diagramme Karlsruher Institut für Technologie Algorithmische Geometrie Fakultät für Informatik Sommersemester 2012 ITI Wagner Martin Nöllenburg/Andreas Gemsa Übungsblatt 7 - Voronoi Diagramme 1 Voronoi-Zellen Sei

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

Polygontriangulierung

Polygontriangulierung Übung Algorithmische Geometrie Polygontriangulierung LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 05.05.2011 Ablauf Besprechung ÜB3 Korrektheitsbeweis

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 03.12.2013 Algorithmische Geometrie: Schnitte von Strecken Sweep-Line INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.06.2012 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

Polygontriangulierung

Polygontriangulierung Übung Algorithmische Geometrie Polygontriangulierung LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann 07.05.204 Ablauf Vergabe der Projekte Übungsblatt

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 17.06.2014 1 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden Vorlesung Algorithmische Geometrie von Punkten und Geraden INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 12.06.2012 Dualitätsabbildung Bisher haben wir Dualität für planare

Mehr

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00

Mehr

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

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1 Vorlesung Geometrische Algorithmen Sichtbarkeitsgraphen und kurzeste Wege Sven Schuierer Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale

Mehr

9. Natürliche Suchbäume

9. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

Mehr

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

Geometrische Algorithmen Einige einfache Definitionen: Ist ein Punkt in einem Polygon? Punkt-in-Polygon-Problem. Das Punkt-in-Polygon-Problem Geometrische Algorithmen Einige einfache Definitionen: Punkt: im n-dimensionalen Raum ist ein n-tupel (n Koordinaten) Gerade: definiert durch zwei beliebige Punkte auf ihr Strecke: definiert durch ihre

Mehr

Seminar. Algorithmische Geometrie

Seminar. Algorithmische Geometrie Seminar Algorithmische Geometrie WS 2000/2001 Thema: Konvexe Hülle Mirko Dennler 21439 Inhaltsverzeichnis Konvexe Hülle 1. Problemstellung 3 2. GRAHAMS SCAN 4-5 3. JARVIS' MARCH 5-6 4. QUICK HULL 6-7 5.

Mehr

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

Uberblick 1. Problemstellung 2. Kongurationsraum 3. Bewegungsplanung fur einen Punktroboter 4. Minkowski Summen 5. Pseudo-Scheiben 6. Bewegungsplanung Vorlesung Geometrische Algorithmen Bewegungsplanung fur Roboter (Robot Motion Planning) Sven Schuierer Uberblick 1. Problemstellung 2. Kongurationsraum 3. Bewegungsplanung fur einen Punktroboter 4. Minkowski

Mehr

Sortieren II / HeapSort Heaps

Sortieren II / HeapSort Heaps Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php

Mehr

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

Mehr

Parallele Algorithmen in der Bildverarbeitung

Parallele Algorithmen in der Bildverarbeitung Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren

Mehr

Algorithmische Geometrie: Arrangements und

Algorithmische Geometrie: Arrangements und Algorithmische Geometrie: Arrangements und Dualität Nico Düvelmeyer WS 2009/2010, 19.1.2010 Überblick 1 Strahlenverfolgung und Diskrepanz 2 Dualität Dualitäts-Abbildung Transformation des Problems zur

Mehr

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt U N S A R I V E R S A V I E I T A S N I S S Grundzüge von Algorithmen und Datenstrukturen, WS /6: Lösungshinweise zum 3. Übungsblatt Christian Hoffmann, Fabian Bendun Aufgabe 3. (a) Sei j i + = n die Größe

Mehr

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

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

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Geometrie II Benjamin Zenke Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Closest Pair Divide & Conquer Bereichssuche Gitterverfahren k-d-tree Sweep-Line-Algorithmen

Mehr

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche Algorithmische Geometrie: Abfragen Orthogonaler Bereiche Nico Düvelmeyer WS 2009/2010, 8.12.2009 Überblick 1 1-dimensionale Bereichsabfragen 2 Kd-Baum Struktur Aufbau Abfrage mit dem Kd-Baum 3 Range-Baum

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 156, Seite 56 im Skript) Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die letzte Ebene vollständig besetzt ist,

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015 Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter

Mehr

elementare Datenstrukturen

elementare Datenstrukturen elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber af@myipv6.de elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste

Mehr

7. Triangulation von einfachen Polygonen

7. Triangulation von einfachen Polygonen 1 7. Triangulation von einfachen Polygonen 2 Ziel Bessere Laufzeit als O(n log n) durch schnelleres Berechnen der Trapezzerlegung des Polygons. 3 Idee Finde Methode, den Anfangspunkt einer Strecke in der

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge

Mehr

Polygontriangulierung

Polygontriangulierung Vorlesung Algorithmische Geometrie Polygone triangulieren INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.05.2012 Das Kunstgalerie-Problem Aufgabe: Installiere ein Kamerasystem

Mehr

Kapitel 6: Algorithmen der Computer-Geometrie

Kapitel 6: Algorithmen der Computer-Geometrie LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Kapitel 6: Algorithmen der Computer-Geometrie Skript zur Vorlesung Geo-Informationssysteme Wintersemester 2015/16 Ludwig-Maximilians-Universität

Mehr

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt Divide and Conquer Das Divide - and - Conquer Prinzip Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt 2 Quicksort: Sortieren durch Teilen

Mehr

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005 Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005 Antonia Wittmers Igor Savchenko Konvexe Hüllen Inkrementeller Algorithmus für die konvexe Hülle Dabei heißt inkrementeller Algorithmus,

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Proportional Symbol Maps

Proportional Symbol Maps Proportional Symbol Maps Florian Simon 8. Dezember, 2009 Proportional Symbol Maps Gegeben: Punkte p 1,..., p n R 2 mit zugeordneten Werten w 1,..., w n R Proportional Symbol Maps Gegeben: Punkte p 1,...,

Mehr

Kap. 3: Sortieren (3)

Kap. 3: Sortieren (3) Kap. 3: Sortieren (3) Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 6. VO DAP2 SS 2009 30. April 2009 Überblick Quick-Sort Analyse von Quick-Sort Quick-Sort

Mehr

Voronoi Diagrams. Christian Wellenbrock. December 1, 2009

Voronoi Diagrams. Christian Wellenbrock. December 1, 2009 December 1, 2009 Das Voronoi Diagramm Problemstellung Gegeben: Menge der Zentren P = {p 1,..., p n } R 2 Das Voronoi Diagramm Problemstellung Gegeben: Menge der Zentren P = {p 1,..., p n } R 2 Gesucht:

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 - AVL-Bäume: Entfernen) Prof. Dr. Susanne Albers Definition von AVL-Bäumen Definition: Ein binärer Suchbaum heißt AVL-Baum oder höhenbalanziert,

Mehr

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30 Geometrie 2 Julian Fischer 6.7.2009 Julian Fischer Geometrie 2 6.7.2009 1 / 30 Themen 1 Bereichssuche und kd-bäume 1 Bereichssuche 2 kd-bäume 2 Divide and Conquer 1 Closest pair 2 Beispiel: Points (IOI

Mehr

Geoinformation I Landkarten

Geoinformation I Landkarten Folie 1 von 17 Geoinformation I Landkarten Folie 2 von 17 Landkarte Übersicht! Tesselation: Definition! Landkarte " Definition " Einschränkungen " Topologische Beziehungen " Euler-Formel " Topologische

Mehr

Geoinformation I Landkarten

Geoinformation I Landkarten Folie 1 von 17 Geoinformation I Landkarten Folie 2 von 17 Landkarte Übersicht Tesselation: Definition Landkarte Definition Einschränkungen Topologische Beziehungen Euler-Formel Topologische Fehler Integritätsbedingungen

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele

Mehr

Datenstrukturen und Algorithmen D-INFK. Musterlösung 1

Datenstrukturen und Algorithmen D-INFK. Musterlösung 1 Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer

Mehr

Geometrische Algorithmen

Geometrische Algorithmen Geometrische Algorithmen Thomas Röfer Motivation Scan-line-Prinzip Konvexe Hülle Distanzprobleme Voronoi-Diagramm Rückblick Manipulation von Mengen Vorrangwarteschlange Heap HeapSort swap(a, 0, 4) 1 5

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode

Mehr

Berechnung von Abständen

Berechnung von Abständen 3. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w V ist die minimale Länge eines Weges von v nach w.

Mehr

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.

Mehr

7. Sortieren Lernziele. 7. Sortieren

7. Sortieren Lernziele. 7. Sortieren 7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

Lösungen zu Kapitel 5

Lösungen zu Kapitel 5 Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V

Mehr

Aufgabensammlung zur algorithmischen Geometrie

Aufgabensammlung zur algorithmischen Geometrie 1 Aufgabensammlung zur algorithmischen Geometrie 2012WS Andreas Kriegl 1. Konvexe Hülle als Durchschnitt. Zeige, daß der Durchschnitt konvexer Mengen wieder konvex ist und somit die konvexe Hülle einer

Mehr

5. Vorrangwarteschlangen - Priority Queues

5. Vorrangwarteschlangen - Priority Queues 5. Vorrangwarteschlangen - Priority Queues Priority Queues unterstützen die Operationen Insert(), Delete(), ExtractMin(), FindMin(), DecreaseKey(), Merge(). Priority Queues per se sind nicht für IsElement()-Anfragen,

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

9 Arrangements und Dualität

9 Arrangements und Dualität 9 Arrangements und Dualität 9.1 Strahlenverfolgung und Diskrepanz Wir betrachten eine Anwendung aus der Computergraphik: realistische Bilder von 3D- Szenen lassen sich durch ray tracing berechnen. Für

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 11 (1.6.2016) Binäre Suchbäume III Algorithmen und Komplexität Tiefe eines binären Suchbaums Worst-Case Laufzeit der Operationen in binären

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen

Mehr

Algorithmen zur Visualisierung von Graphen

Algorithmen zur Visualisierung von Graphen Algorithmen zur Visualisierung von Graphen Teile & Herrsche-Algorithmen: Bäume und serien-parallele Graphen Vorlesung im Wintersemester 20/202..202 Algorithmen zum Zeichnen von Bäumen Anwendbarkeit Gut

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

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

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr