Algorithmische Geometrie 7. Punktsuche
|
|
|
- Adolf Diefenbach
- vor 8 Jahren
- Abrufe
Transkript
1 Algorithmische Geometrie 7. Punktsuche JProf. Dr. Heike Leitte Computergraphik und Visualisierung
2 Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4. Schnitte planarer Unterteilungen 5. Triangulierung von Polygonen 6. Lineare Programme 7. Punktsuche 8. Voronoidiagramme und Delaunay-Triangulierung 9. Allgemeine Suchstrukturen 2
3 Was ist wo? Kollisionserkennung (Beispiel Diablo III) 3
4 Was ist wo? Beispiel RayCasting [wikipedia] 4
5 Was ist wo? [Christoph Garth, 2008] 5
6 Volker Gaede, Oliver Günther. Multidimensional access methods. ACM Comput. Surv., 30(2): ,
7 Volker Gaede, Oliver Günther. Multidimensional access methods. ACM Comput. Surv., 30(2): ,
8 Anfrage an Räuml. Datenbanken Raumbezogene Datenbanken (spatial databases) enthalten geometrische Objekte wie Punkte, Liniensegmente, Kurvensegmente, Polygone, Flächenstücke oder Polyeder. An solche Datenbanken werden verschiedene Suchanfragen gerichtet. Man unterscheidet [Gaede/Günther, S. 11/12] Exact Match Query (EMQ): Zu einem Objekt o' mit räumlicher Ausdehnung o.g E finde alle Objekte o mit der gleichen räumlichen Ausdehnung wie o'! d EMQ (o ' )= {o o. G=o '. G } d Point Query (PQ): Zu einem Punkt p E finde alle Objekte o, die p enthalten! PQ ( p)= {o p o.g = p } Range Query (RQ): zu einem d-dimensionalen Interval Id = [l1, u1]x... x [ld, ud] finde alle Objekte o mit mindestens einem Punkt in Id! RQ ( I d )= { o I d o.p } 8
9 Anfrage an Räuml. Datenbanken 9
10 Anfrage an Räuml. Datenbanken Intersection Query (IQ): Zu einem Objekt o' mit räumlicher Ausdehnung o '. G E finde alle Objekte o, die o' schneiden! d IQ (o ' )= {o o. G o '. G } Enclosure Query (EQ): Zu einem Objekt o' mit räumlicher Ausdehnung o'. G Ed finde alle Objekte o, die o' umschließen! EQ(o ' )= {o o '.G o. G=o '. G } Containment Query (CQ): Zu einem Objekt o' mit räumlicher Ausdehnung o '. G E finde alle Objekte o, die o' enthalten sind! d CQ (o ' )= { o o '. G o.g =o. G } Adjacency Query (AQ): Zu einem Objekt o' mit räumlicher Ausdehnung o '.G E d finde alle zu o' inzidenten Objekte o! AQ (o' )= { o o. G o '. G o.g o o ' G o = } 10
11 Anfrage an Räuml. Datenbanken Nearest Neighbor Query (NNQ): Zu einem Objekt o' mit räumlicher Ausdehnung o '.G E d finde alle Objekte o mit minimalem Abstand von o'! NNQ (o ' )= { o o ' ' : dist (o '.G, o.g ) dist (o '.G, o ' '.G ) } Spatial Join: Für zwei Mengen räumlicher Objekte R, S und ein raum-bezogenes Prädikat Q finde alle Paare o, o ' R S mit o. G,o '.G =TRUE! R Θ S = {(o, o ' ) o R o ' S Θ(o.G, o '.G ) } Beispiele für Q sind intersects, contains, is-enclosed-by, adjacent, northwest distance is larger than.... Wir werden uns in diesem Kapitel nur mit der Point Query befassen, sowie der Range Query (Bereichsabfrage) für Punktdatenbanken. Weitere Datenstrukturen werden in Kapitel 9 besprochen. 11
12 1D Bereichssuche in bin. Suchbaum Bevor wir zwei Dimensionen und dann die höheren Dimensionen betrachten, nehmen wir uns den eindimensionalen Fall vor. Wir nutzen einen binären Suchbaum. (Arrays lassen sich nicht gut verallgemeinern.) Für ein Intervall [x, x'] suchen wir dann sowohl x als auch x' und finden so den gesuchten Teil des Baumes, etwa für [x, x'] =[18, 77] im folgenden Bild. 12
13 1D Bereichssuche in bin. Suchbaum Wir erhalten letztlich eine Reihe von Teilbäumen, die komplett innerhalb [x, x'] liegen und die Elemente entlang der Suchpfade, die drinnen oder draußen liegen können. 13
14 1D Bereichssuche Algorithmus Um zu einem Algorithmus zu kommen, müssen wir den Knoten finden, an dem obere und untere Schranke getrennt werden. 14
15 1D Bereichssuche Algorithmus Dann können wir den Algorithmus angeben: 15
16 Bereichssuche Komplexität Es gilt offensichtlich Lemma 3.4: Algorithmus 1DRANGEQUERY liefert genau die Punkte der Bereichssuche. Da ReportTree in linearer Zeit ablaufen kann (der Baum hat weniger innere Knoten als Blätter), gilt Theorem3.5: Sei P eine Menge von n Punkten in R. Die Menge P kann in O(n log n) in einem balancierten binären Suchbaum gespeichert werden, der O(n) Speicher benötigt. Die Range Query benötigt O(k + log n) Zeit (k ist Anzahl der Ausgabepunkte). Somit ist der präsentierte Algorithmus ausgabensensitiv (worst case ist O(n), was man auch ohne Suchstruktur schaffen würde). 16
17 Point Quadtree Eine ältere, bekannte Datenstruktur für Punktdaten ist der Point Quadtree [R.A. Finkel, J.L. Bentley, Quad trees: a data structure for retrieval on composite keys, Acta Informatica 4(1):1-9, 1974]. Hier werden die Punkte in der Datenbank zur Zerlegung der Ebene genutzt, indem die Punkte in einem Quadtree einsortiert werden und jeder Punkt ein Rechteck durch seine Koordinaten in vier kleinere Rechtecke zerlegt, die den Kindern zugeordnet werden. Optimierungsstrategien helfen bei der Balancierung der Bäume. Natürlich gibt es auch Octrees für Punkte in E3 und d-dim. Point Quadtrees für Punkte im Ed. 17
18 kd-baum Da im Point Quadtree an jedem Knoten d Tests (d = Dimension der Daten) durchgeführt werden und auch d Werte abzulegen sind, hat man den kd-baum eingeführt, der als binärer Raum organisiert ist und in der Praxis deutlich effizienter arbeitet, sofern die Punkte irregulär sind. Wir betrachten eine Menge P von Punkten in der Ebene. Um diese in einen binären Suchbaum einsortieren zu können, unterteilen wir abwechselnd nach x- und nach ykoordinate. Also wechselt der Sortierschlüssel von Ebene zu Ebene und jeder Knoten zerlegt ein Rechteck in zwei Rechtecke. 18
19 kd-baum Algorithmus Damit der Algorithmus korrekt arbeitet, sollte bei geraden n der Median die kleinere der beiden mittleren Positionen liefern. 19
20 kd-baum Komplexität Der Median einer Menge von n Elementen kann in linearer Zeit ermittelt werden, etwa indem man beim Quicksort-Algorithmus nur das längere der beiden entstandenen Teile weiter durchsucht. (Dies ist kein worst-case linearer Algorithmus, aber zufällige Pivotwahl führt auf erwartete lineare Zeit. Ein echter worst case linearer Algorithmus ist kompliziert.) Für unseren Algorithmus ist es jedoch klüger, gleich alle Punkte nach x- und y-koordinate zu sortieren, da man den Median dann in konstanter Zeit finden kann und in linearer Zeit die sortierten Teilfelder für die Rekursion zu finden sind. Als Zeitkomplexität ergibt sich T n = { O 1 O n 2T n/ 2, n=0,1 n 1 } also O(n log n), was auch für die Sortierung gilt. Lemma 3.1: Ein kd-baum für n Punkte nutzt O(n) Speicher und kann in O(n log n) Zeit gebaut werden. 20
21 Bereichssuche auf kd-bäumen Zu jedem Knoten eines kd-baumes gehört ein (möglicherweise unbeschränktes) achsenparalleles Rechteck der Ebene. 21
22 Bereichssuche auf kd-bäumen Wir wenden uns nun einer Bereichsabfrage zu. Wir wollen also alle Punkte im kd-baum angeben, die in einem Bereich R = [l1, n1] x [l2, n2] liegen. Dazu müssen wir bei jedem Knoten des Baumes prüfen, ob das zugehörige Rechteck R schneidet oder nicht. Wenn R geschnitten wird und das Rechteck ganz in R liegt, können wir alle Punkte im Teilbaum einfach ausgeben. 22
23 Bereichssuche auf kd-bäumen Für die Schnitttests sollte man die achsenparallele Box des zugehörigen Knotens am besten stets übergeben und mittels der Koordinaten anpassen. 23
24 Bereichssuche auf kd-bäumen Komplexität Lemma 3.2: Die Bereichssuche (Range Query) mit einem achsenparallelen Rechteck R in einem Kd-Baum mit n Punkten kann in O n k Zeit ausgeführt werden, wobei k die Anzahl der Punkte in R ist. Beweis: Zunächst halten wir fest, dass die Zeit zur Ausgabe eines Teilbaumes linear ist, also in den Zeilen 4 und 8 O(k) Schritte anfallen. Nun müssen wir die Anzahl der Rekursionsschritte zählen. Diese fallen an, wenn die Region eines Knotens einen echten Schnitt mit R liefert. Dazu berechnen wir eine Schranke für die Anzahl der Unterteilungslinien, die die linke und rechte Kante von R schneiden. Sei l eine vertikale Linie und T ein kd-baum. Sei l (root (T)) die Linie zur Wurzel des kdbaumes. l schneidet nun entweder die Region links von l (root(t)) oder rechts davon, aber nicht beide. Wegen der Konstruktion der kd-bäume müssen wir noch eine Stufe tiefer gehen, bevor wir die gleiche Situation wie zu Beginn haben. Da in der 2. Ebene die Linien senkrecht zu l verlaufen, werden jetzt in einem Teil beide Bereiche von l getroffen. Als Rekursion für die Zeit Q(n) ergibt sich Q n = { 0 1 n=1 2 2Q n/ 4, n 1 } und letztlich Q n =O n. Die gilt natürlich analog für eine horizonq n ergeben sich tale Linie. Insgesamt Schnitte mit den Rändern von R. QED. 24
25 Bereichssuche auf kd-bäumen Für die Schnitttests sollte man die achsenparallele Box des zugehörigen Knotens am besten stets übergeben und mittels der Koordinaten anpassen. O( k ) O( n ) O( k ) 25
26 kd-bäume Komplexitäten Insgesamt gilt für kd-bäume: Theorem 3.3: Ein kd-baum für eine Menge P von n Punkten in der Ebene nutzt O(n) Speicher und kann in O(n log n) Zeit gebaut werden. Eine Bereichsabfrage (Range Query) benötigt O n k Zeit, wobei k die Anzahl der Punkte im Bereich ist. kd-bäume sind auch in höheren Dimensionen einsetzbar. Konstruktion erfolgt wieder in O(n log n) und für die Range Query ergibt sich O(n1-1/d + k). 26
27 Range Trees Um von den O n k des planaren kd-baumes zu O(log n + k) genauer O(log2n + k), zu kommen, kann man mehr Speicher einsetzen. Der Range Tree benötigt O(n log n). Wieder trennen wir xkoordinatensuche und y-koordinatensuche. Für eine Range Query R = [x, x'] x [y, y'] lösen wir den x-teil durch einen binären Suchbaum, der uns log n komplette Teilbäume liefert, deren Elemente in [x, x'] sind: Um nun letztlich die Punkte in R zu finden, nutzen wir an jedem Knoten im binären Baum der x-koordinaten einen Baum der y-koordinaten, der nach dem gleichen Prinzip organisiert ist und alle Punkte im entsprechenden y-teilbaum anhand der y-koordinaten organisiert. Dies ist eine Datenstruktur mit mehreren Ebenen (multi-level data structure). 27
28 2D Range Tree Man beachte, dass in den Blättern der y-bäume die Punkte und nicht nur die ykoordinaten stehen. 28
29 Range Tree Speicherbedarf Lemma 3.6: Ein Range Tree für eine Menge von n Punkten benötigt O(n log n) Speicher. Beweis: Für eine feste Tiefe des x-baumes steht ein Punkt nur in einem der dort verankerten (assoziierten) y-bäume. Da die y-bäume als binäre Bäume O(m) Speicher für m Elemente benötigen, benötigen alle y-bäume O(n) Speicher. Der x-baum hat Tiefe O(log n), also folgt O(n log n) für den Speicher des Range Trees. QED. 29
30 Range Tree Komplexität Der Algorithmus BUILD2DRANGETREE benötigt mehr als O(n log n) Zeit zum Aufbau, wenn die Punkte nicht bzgl. der y-koordinate sortiert sind, da ein binärer Suchbaum im Allgemeinen nur in O(m log m) zu bauen ist. Nach einer Sortierung der Punkte genügt O(m) und wir erhalten O(n log n) auch für die Zeit. 30
31 Range Tree Bereichssuche Mit Hilfe von 1DRANGEQUERY lässt sich nun auch 2DRANGEQUERY formulieren. 31
32 Range Tree Komplexität Suche Lemma 3.7: Eine Bereichsuche mit einem achsenparallelen Rechteck in einem Range Tree mit n Punkten benötigt O(log2 n + k) Zeit, wobei k die Anzahl der Elemente im gesuchten Bereich ist. Beweis: An jedem der bis zu O(log n) Punkte entlang des Suchpfades rufen wir möglicherweise 1DRANGEQUERY auf. Dies erfordert O(log n + kv) Schritte, wobei kv die im Teilbaum gesuchten Punkte sind. Insgesamt ergeben sich O(log2 n + k) Schritte, da S kv = k. QED. Theorem 3.8: Sei P eine Menge von n Punkten in der Ebene. Ein Range Tree für P nutzt O(n log n) Speicher und kann in O(n log n) gebaut werden. Die Bereichsabfrage (Range Query) mit einem achsenparallenen Rechteck erfordert O(log2 n + k) Schritte, wobei k die Anzahl der Punkte im Rechteck ist. 32
33 Literatur 33
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.
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
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
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
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
Algorithmische Geometrie 1. Einführung
Algorithmische Geometrie 1. Einführung JProf. Dr. Heike Leitte Computergraphik und Visualisierung Algorithmische Geometrie Veranstaltung: 2 SWS Vorlesung: Mi, 9:15 10:45 1 SWS Übung: Do 14:00 16:00 Übungen:
Algorithmische Geometrie 5. Triangulierung von Polygonen
Algorithmische Geometrie 5. Triangulierung von Polygonen JProf. Dr. Heike Leitte Computergraphik und Visualisierung Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4.
Dualität + Quad-trees
Übung Algorithmische Geometrie Dualität + Quad-trees LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 30.06.2011 Übersicht Übungsblatt 10 - Dualität
Geometrische Algorithmen
Geometrische Algorithmen Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich für Algorithmen und Datenstrukturen Institut für Computergraphik und Algorithmen Technische Universität Wien Einführung
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
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
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:
Exkurs: Datenstruktur Quad Tree
Exkurs: Datenstruktur Quad Tree Prof. Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering LS11 Universität Dortmund 27. VO WS07/08 04. Februar 2008 1 Mehrdimensionale Suchstrukturen Gegeben: Menge S von
Punkt-in-Polygon-Suche Übersicht
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
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
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
Algorithmische Geometrie 4. Schnitte planarer Unterteilungen
Algorithmische Geometrie 4. Schnitte planarer Unterteilungen JProf. Dr. Heike Leitte Computergraphik und Visualisierung Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten
Hallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Geometrie II Tiago Joao Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Koordinatenkompression Beispiel: SafeJourney Typische compress-funktion Bereichssuche
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
2.4. Triangulierung von Polygonen
Als drittes Problem haben wir in Kapitel 1 die Triangulierung von Polygonen identifiziert, die etwa bei der Überwachung eines Museums durch Kameras auftritt. F70 F71 Definition und Theorie: Definition
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
Kollisionserkennung
1 Kollisionserkennung von Jens Schedel, Christoph Forman und Philipp Baumgärtel 2 1. Einleitung Wozu wird Kollisionserkennung benötigt? 3 - für Computergraphik 4 - für Simulationen 5 - für Wegeplanung
6. Algorithmen der Computer-Geometrie
6. Algorithmen der Computer-Geometrie 1. Einführung 2. Schnitt von zwei Strecken 3. Punkt-in-Polygon-Test 4. Schnitt orthogonaler Strecken 5. Punkteinschlussproblem Geo-Informationssysteme 146 6.1 Computer-Geometrie
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
5/24/07. Allgemeine Regeln zur Optimierung. Octree / Quadtree. 5D-Octree für Strahlen [Arvo u. Kirk 1987] Primitive in adaptiven Gittern / Octrees
Allgemeine Regeln zur Optimierung Octree / Quadtree "Premature Optimization is the Root of All Evil" [Knuth] Idee: extreme Variante der rekursiven itter Erst naïv und langsam implementieren, dann optimieren!
Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
Quadtrees und Meshing
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.06.2012 Motivation: Meshing von Platinenlayouts Zur Simulation der Hitzeentwicklung
KD-Bäume. ein Vortrag von Jan Schaefer
ein Vortrag von Jan Schaefer Überblick - Kurzer Rückblick: Quad Trees - KD-Baum bauen - Effizienz des Konstruktionsalgorithmus - Regionen - Bereichssuche - Effizienz des Suchalgorithmus - Anwendungsgebiete
Mehrdimensionale Zugriffspfade und Dateiorganisation
Mehrdimensionale Zugriffspfade und Dateiorganisation Gliederung Begriffe, Anforderungen und Probleme, Anwendungsgebiete Konkrete Techniken Bäume Grid-File Mehrdimensionales Hashing Begriffe Eindimensionale
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
Quadtrees und Meshing
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 21.06.2011 Motivation: Meshing von Platinenlayouts Zur Simulation
Begriffsklärung: Dominanz
Einführung Begriffsklärung: Dominanz Gegeben: d-dimensionaler Raum, jeder Punkt p im Raum hat d Attribute: (p 1,,p d ) Definition Dominanz: 1 i d : p i p i und 1 i d : p i < p i Begriffsklärung: Dominanz
Quad-trees. Benjamin Niedermann Übung Algorithmische Geometrie
Übung Algorithmische Geometrie Quad-trees LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Benjamin Niedermann 02.07.2014 Übersicht Übungsblatt 11 - Quadtrees Motivation:
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
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
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
Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:
HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter
Quadtrees und Meshing
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 24.06.2014 Motivation: Meshing von Platinenlayouts Zur Simulation der Hitzeentwicklung
Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle
Kapitel 9 Algorithm. Geometrie Kürzeste Abstände Konvexe Hülle Überblick Teilgebiet der Informatik, in dem es um die Entwicklung effizienter Algorithmen und die Bestimmung der algorithmischen Komplexität
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
2.7.1 Inside-Test Konvexe Hülle Nachbarschaften Schnittprobleme
2.7 Geometrische Algorithmen 2.7.1 Inside-Test 2.7.2 Konvexe Hülle 2.7.3 Nachbarschaften 2.7.4 Schnittprobleme 1 2.7 Geometrische Algorithmen 2.7.1 Inside-Test 2.7.2 Konvexe Hülle 2.7.3 Nachbarschaften
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
Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer
Kapitel Andere dynamische Datenstrukturen
Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2017/2018 Vorlesung#13, 12.12.2017
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.
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
Abschnitt 18: Effizientes Suchen in Mengen
Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes
Übung zur Vorlesung Algorithmische Geometrie
Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 Bruder-Bäume, B-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei Wörterbuchoperationen
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
Algorithmen und Datenstrukturen I AVL-Bäume
Algorithmen und Datenstrukturen I AVL-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 01.12.2017 14:42 Algorithmen und Datenstrukturen I, AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum
Datenstrukturen und Algorithmen D-INFK
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
Mehrwegbäume Motivation
Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung
Algorithmische Geometrie
Algorithmische Geometrie 1-1 Inhaltsverzeichnis 1. Einführung 2. Basiskonzepte 3. Punktsuche 4. Voronoidiagramme und Delaunaytriangulierung 5. Allgemeine Suchstrukturen 1-2 1.1. Was ist? (Computational
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei
M. Pester 29. Ein konvexes d-polytop ist eine begrenzte d-dimensionale polyedrale Menge. (d = 3 Polyeder, d = 2 Polygon)
M. Pester 29 6 Konvexe Hülle 6.1 Begriffe Per Definition ist die konvexe Hülle für eine Menge S von lich vielen Punkten die kleinste konvexe Menge, die S enthölt (z.b. in der Ebene durch ein umspannes
Übung Algorithmen I
Übung Algorithmen I.6.5 Christoph Striecks [email protected] (Mit Folien von Julian Arz, Timo Bingmann und Sebastian Schlag.) Roadmap Hinweise zur Übungsklausur (Weitere) Traversierungen von Binärbäumen
Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS
Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 309 Allgemeines Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 310
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
Musterlösung Datenstrukturen und Algorithmen
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
INTERVALLBÄUME. Tanja Lehenauer, Besart Sylejmani
INTERVALLBÄUME Tanja Lehenauer, Besart Sylejmani Datenstrukturen in der Informatik Baumstrukturen Warum Intervallbäume? Centered Interval Tree Konstruktion Suchen eines Punktes Suchen eines Intervalls
Algorithmen und Datenstrukturen Bereichsbäume
Algorithmen und Datenstrukturen Bereichsbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung k-d Baum BSP Baum R Baum Motivation
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
Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als
{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
4.4 MX-Quadtrees (I) MatriX Quadtree Verwaltung 2-dimensionaler Punkte Punkte als 1-Elemente in einer quadratischen Matrix mit Wertebereich {0,1} rekursive Aufteilung des Datenraums in die Quadranten NW,
4.4 Quadtrees. Literatur
4.4 Quadtrees Überblick Klasse räumlicher Indexstrukturen, die den Datenraum rekursiv in 4 gleich große Zellen unterteilen (Quadranten NW, NE, SW, SE) Verwaltung von Punkten, Kurven, Flächen usw., häufig
Seminar Computerspiele Räumliche Datenstrukturen. Ralf Pramberger
Seminar Computerspiele Räumliche Datenstrukturen Ralf Pramberger Themen 2 1. Grundlagen Szene Sichtbarkeit (Raytracing) Culling 2. Räumliche Datenstrukturen Bounding Volume Hierarchie Quadtree/Octree BSP-Tree
Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern
Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische
Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3
Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3 LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Andreas Gemsa 26.06.2012 Prüfung! Termine: 20. Juli 27.
Algorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
Geometrische Datenstrukturen
Geometrische Datenstrukturen 1. Rechteckschnitt 2. Segment Bäume 3. Intervall Bäume 4. Prioritätssuchbäume 1. Rechteckschnitt - Schwenke horizontale Scan-Line von oben nach unten. - Speichere die Schnitte
Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme
Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien
Informatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo [email protected] 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO INF.02031UF (2-4)-Bäume [email protected] 1 7. Bäume Bäume als Datenstruktur Binärbäume Balancierte Bäume (2-4)-Bäume Anwendung: Mischbare Warteschlangen
Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen
Geometrie I Sebastian Redinger 01.07.2015 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Gliederung Grundlagen CCW Polygone Picks Theorem Konvexe Hülle - Graham Scan - Jarvis March 2 Gliederung
Klausur Algorithmen und Datenstrukturen II 29. Juli 2013
Technische Universität Braunschweig Sommersemester 2013 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und Datenstrukturen
lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr
3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:
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
Geometrie 1. Christian Bay Christian Bay Geometrie / 46
Geometrie 1 Christian Bay 02.07.2013 Christian Bay Geometrie 1 02.07.2013 1 / 46 Inhaltsverzeichnis Grundlagen CCW Polygone Picks Theorem Konvexe Hülle Christian Bay Geometrie 1 02.07.2013 2 / 46 Geometrie
14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).
Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15
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 18. März
Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510
Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),
5.1. Intervallbäume (Intervall Trees)
5.1. Intervallbäume (Intervall Trees) Oft steht man vor der Aufgabe aus einer großen Menge von Liniensegmenten diejenigen auszuwählen, die zumindest teilweise innerhalb eines Rechteckes liegen. Ein typisches
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
Quadtrees. Christian Höner zu Siederdissen
Quadtrees Christian Höner zu Siederdissen Quadtrees Zum Verständnis benötigt... Was sind Quadtrees Datenstruktur Wofür Quadtrees Operationen auf dem Baum Vor- und Nachteile (spezialisierte Formen) Zum
