Geometrische Algorithmen
|
|
|
- Jörg Hajo Braun
- vor 9 Jahren
- Abrufe
Transkript
1 Geometrische Algorithmen Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich für Algorithmen und Datenstrukturen Institut für Computergraphik und Algorithmen Technische Universität Wien
2 Einführung Einführung Motivation Effiziente Algorithmen, die aufgrund geometrischer Daten (v.a. Koordinaten) im d-dimensionalen Raum gewisse Eigenschaften ausnutzen Anwendung Bildverarbeitung Computergraphik Chip Design...
3 Teil I Scan-Line Prinzip
4 Scan-Line Prinzip Grundlagen Scan-Line Prinzip Idee Gegeben eine Menge von Objekten in einem 2D Raum Vertikale Linie fegt v.l.n.r. über die Objektmenge und betrachtet nur Objekte, die gegenwärtig relevant sind Statisches 2D Problem dynamisches 1D Problem Aufteilung der Objekte bezüglich Scanline L Tote Objekte liegen vollständig links von L Aktive Objekte werden gegenwärtig von L geschnitten Inaktive Objekte liegen rechts von L, werden zukünftig von L geschnitten
5 Scan-Line für Schnitt iso-orientierter Liniensegmente Einführung Schnitt iso-orientierter Liniensegmente Aufgabenstellung Gegeben: n horizontale und vertikale Liniensegmente s 1,..., s n Gesucht: Alle Paare sich schneidender Segmente F H B C A E G D
6 Scan-Line für Schnitt iso-orientierter Liniensegmente Einführung Vereinfachte Annahme Alle Anfangs- und Endpunkte horizontaler Segmenten und alle vertikalen Segmente haben paarweise verschiedene x-koordinaten Naives Verfahren Alle Paare von Liniensegmenten auf Schnitt testen. Laufzeit: O(n 2 )
7 Scan-Line für Schnitt iso-orientierter Liniensegmente Algorithmus Scan-Line Verfahren Scan-Line L fegt v.l.n.r. über die Fläche und trifft auf die Liniensegmente. Mögliche Fälle: 1 Anfangspunkt eines horizontalen Segments s: s in L einfügen 2 Endpunkt eines horizontalen Segments s: s aus L löschen 3 Vertikales Segment s: s mit allen Liniensegmenten in L auf Schnitt testen Bemerkung Scan-Line muss sich nicht kontinuierlich fortbewegen Es genügt, Haltepunkte bei relevanten Ereignissen zu setzen
8 Scan-Line für Schnitt iso-orientierter Liniensegmente Algorithmus Algorithmus 1 Scan-Line für iso-orientierte Liniensegmente 1: Q = Menge der Haltepunkte in aufsteigender x-reihenfolge; 2: L = ; // Menge der aktiven Segmente, nach y sortiert 3: solange (Q ) { 4: p = nächster Haltepunkt von Q; 5: falls (p Anfangspunkt eines h. Segments s) dann { 6: Füge s in L ein; 7: } sonst { 8: falls (p Endpunkt eines h. Segments s) dann { 9: Entferne s aus L; 10: } sonst { 11: // p ist x-wert eines v. Segments [(p, y u ), (p, y o )] 12: Für alle h. Segmente t aus L mit y-koord. zwischen [y u, y o ]: gebe (s, t) als sich schneidendes Paar aus; 13: } 14: } 15: }
9 Scan-Line für Schnitt iso-orientierter Liniensegmente Algorithmus Beispiel: B A D C E A A A A A D D E D D E E E 0 (A,B) (A,C) (C,D)
10 Scan-Line für Schnitt iso-orientierter Liniensegmente Algorithmus Realisierung von L? Benötigte Operationen: 1 Einfügen eines neuen Elements 2 Entfernen eines Elements 3 Bestimmen aller Elemente in [(p, y u ), (p, y o )] (Bereichsabfrage) Mögliche Datenstrukturen Balancierte Binärbäume (AVL, Rot-Schwarz, etc.) Randomisierte Skiplisten...
11 Scan-Line für Schnitt iso-orientierter Liniensegmente Analyse Analyse Bereichsabfrage: O(log n + r) mit r = Anzahl der Elemente zwischen [(p, y u ), (p, y o )] Gesamtlaufzeit: O(n log n + R) mit R = Anzahl der sich schneidenden Segmente
12 Scan-Line für Schnitt von allgemeinen Liniensegmenten Einführung Schnitt von allgemeinen Liniensegmenten Aufgabenstellung Gegeben: Menge S = {s 1,..., s n } von n Liniensegmenten in der Ebene Gesucht: Menge echter Schnittpunkte (Kreuzung von Segmenten, die keine Endpunkte sind) y x
13 Scan-Line für Schnitt von allgemeinen Liniensegmenten Einführung Vereinfachende Annahmen Kein Segment ist senkrecht Schnitt zweier Segmente ist leer oder genau ein Punkt Nie mehr als 2 Segmente schneiden sich in einem Punkt Alle Endpunkte und Schnittpunkte haben paarweise verschiedene x-koordinaten
14 Scan-Line für Schnitt von allgemeinen Liniensegmenten Einführung Beobachtungen Schneiden sich Segmente s i mit s j, dann... waren s i und s j Nachbarn unmittelbar vor dem Schnittpunkt Es genügt, nur benachbarte Segmente auf Schnitt zu testen vertauscht sich die Anordnung von s i und s j in L nach dem Schnittpunkt Schnittpunkte sind auch Ereignisse Sie werden während des Scans dynamisch zur Ereignisstruktur hinzugefügt
15 Scan-Line für Schnitt von allgemeinen Liniensegmenten Algorithmus Zu betrachende Ereignisse Anfang eines Segments Ende eines Segments Schnitt zweier Segmente Verwendete Datenstrukturen Ereignisstruktur ES: speichert Ereignisse, aufsteigend nach x-koordinaten sortiert Initialisierung: Anfangs- und Endpunkte aller Segmente Scan-Line-Status Struktur SSS: speichert die aktiven Segmente, nach y-koordinaten sortiert Initialisierung: Leere Menge
16 Scan-Line für Schnitt von allgemeinen Liniensegmenten Algorithmus 40 KAPITEL 3. GEOMETRISCHE ALGORITHMEN Algorithmus 14 Algorithmus für das Segment-Schnitt Problem in allgemeiner Lage Initialisiere ES und SSS; Sortiere die 2n Endpunkte aufsteigend nach x-koordinate; Speichere resultierende Ereignisse in ES ; solange ES nicht leer { E = ES.NächstesEreignis(); falls E ist Segment Anfang dann { SSS.FügeEin(E.Segment); VS = SSS.Vorg(E.Segment); E = TesteSchnittErzeugeEreignis(E,VS); falls E dann { ES.FügeEin(E ); } NS = SSS.Nachf(E.Segment); E = TesteSchnittErzeugeEreignis(E,NS); falls E dann { ES.FügeEin(E ); } } falls E ist Segment Ende dann { VS = SSS.Vorg(E.Segment); NS = SSS.Nachf(E.Segment); SSS.Entferne(E.Segment); E = TesteSchnittErzeugeEreignis(VS,NS) falls E dann { ES.FügeEin(E ); } } falls E ist Schnittpunkt dann { Gib E.SegmentO und E.SegmentU aus; SSS.Vertausche(E.SegmentO,E.SegmentU); VS= SSS.Vorg(E.SegmentU); E =TesteSchnittErzeugeEreignis(E.SegmentU,VS); falls E dann { ES.FügeEin(E ); } NS = SSS.Nachf(E.SegmentO); E = TesteSchnittErzeugeEreignis(E.SegmentO,NS); falls E dann { ES.FügeEin(E ); } } }
17 Scan-Line für Schnitt von allgemeinen Liniensegmenten Algorithmus Algorithmus 2 Scan-Line für allgemeine Liniensegmente Initialisiere ES und SSS; solange ES nicht leer { E = ES.NächstesEreignis(); falls E ist Segment Anfang dann {... } falls E ist Segment Ende dann {... } falls E ist Schnittpunkt dann {... } }
18 Scan-Line für Schnitt von allgemeinen Liniensegmenten Algorithmus Fall 1: E ist Anfang eines Segments 1 E in Scan-Line-Status Struktur SSS einfügen 2 E mit seinem Vorgänger auf Schnitt testen Gegebenenfalls Schnittpunkt in Ereignisstruktur ES einfügen 3 E mit seinem Nachfolger auf Schnitt testen Gegebenenfalls Schnittpunkt in Ereignisstruktur ES einfügen
19 Scan-Line für Schnitt von allgemeinen Liniensegmenten Algorithmus Fall 2: E ist Ende eines Segments 1 Vorgänger und Nachfolger von E auf Schnitt testen Gegebenenfalls Schnittpunkt in Ereignisstruktur ES einfügen 2 E aus Scan-Line-Status Struktur SSS entfernen
20 Scan-Line für Schnitt von allgemeinen Liniensegmenten Algorithmus Fall 3: E ist Schnittpunkt zweier Segmente s o und s u 1 E als Schnittpunkt von s o und s u ausgeben 2 Reihenfolge von s o und s u in Scan-Line-Status Struktur SSS vertauschen 3 s u mit seinem Vorgänger auf Schnitt testen Gegebenenfalls Schnittpunkt in Ereignisstruktur ES einfügen 4 s o mit seinem Nachfolger auf Schnitt testen Gegebenenfalls Schnittpunkt in Ereignisstruktur ES einfügen
21 Scan-Line für Schnitt von allgemeinen Liniensegmenten Analyse Analyse Anzahl der Ereignisse: 2n + k mit k = Anzahl der Schnittpunkte, k = O(n 2 ) Zugriff auf Ereignisstruktur ES: O(log n 2 ) = O(log n) Zugriff auf Scan-Line-Status Struktur SSS: O(log n) Äußere Schleife wird maximal 2n + k mal durchlaufen Pro Durchlauf maximal 5 Operationen auf ES und SSS Gesamtaufwand: O((n + k) log n) Speicheraufwand: O(n 2 )
22 Scan-Line für Schnitt von allgemeinen Liniensegmenten Zusammenfassung Zusammenfassung Scan-Line fegt über eine Menge von Objekten Unterteilung: Tote Objekte, Aktive Objekte, Inaktive Objekte Nur gegenwärtig Aktive Objekte werden betrachtet Statisches 2D Problem dynamisches 1D Problem
23 Teil II Mehrdimensionale Bereichssuche
24 Mehrdimensionale Bereichssuche Aufgabenstellung Gegeben k-dimensionaler, rechteckiger Bereich D n Punkte im k-dimensionalen Raum Gesucht Alle Punkte, die in D liegen
25 Mehrdimensionale Bereichssuche Beispiele Beispiele k = 1: Zahlen in einer Folge zwischen a und b k = 2: Städte in einem Quadrat mit 100 km Seitenlänge und Mittelpunkt Wien k > 2: Datenbankabfragen: Personen mit Eigenschaften haben Informatik studiert zwischen 25 und 39 Jahre alt jährliches Einkommen zwischen ,- und ,- besitzen kein Handy
26 Mehrdimensionale Bereichssuche Lösungsansätze 1-dimensionaler Fall Realisierung: Balancierte Binärbäume, Skiplisten, etc. Aufwand: O(log n + R), R... Anzahl der Punkte im Bereich Höhere Dimensionen Naive Methode: alle Punkte durchtesten O(k n) Grid-Methode: Suchraum in Gridzellen unterteilen Mehrdimensionale Bäume
27 Mehrdimensionale Bereichssuche Zweidimensionale Bäume A G C F E D B G D A C B F E Struktur wie binäre Suchbäume Knoten representieren Punkte Verwendet abwechselnd x- und y-koordinaten als Schlüssel
28 Mehrdimensionale Bereichssuche Suche Algorithmus 3 Bereichssuche(Knoten p, Richtung d, Bereich D) falls p NULL dann { falls d == vert dann { (l, r) = (D.y 1, D.y 2 ); coord = p.y; rneu = horiz; } sonst { (l, r) = (D.x 1, D.x 2 ); coord = p.x; rneu = vert; } falls p D dann Ausgabe von p; falls l < coord dann Bereichssuche(p.left, rneu, D); falls coord < r dann Bereichssuche(p.right, rneu, D); }
29 Mehrdimensionale Bereichssuche Aufbau Aufbau Erstellung eines effizienten Baums? Möglichst balanciert, damit Höhe in O(log n)
30 Mehrdimensionale Bereichssuche Aufbau Vorgangsweise 1 Punkte nach x- bzw. y-koordinaten sortieren Folgen X und Y 2 Folge Y am Median-Element aufteilen Median-Element kommt in die Wurzel Teilfolgen Y 1 und Y 2 (beide etwa gleich lang) Teilfolgen X 1 und X 2 : dieselben Elemente wie in Y 1 und Y 2 in gleicher Reihenfolge wie in X 3 Analoge Fortsetzung mit X 1 und Y 1, sowie X 2 und Y 2, usw. bis Teilfolgen aus einem Element Blätter des Baumes
31 Mehrdimensionale Bereichssuche Aufbau Algorithmus 4 Aufbau(l, r, knoten, Xdir) falls l r dann { m = l+r 2 ; falls Xdir == true dann { knoten.eintrag = X[m]; Partitioniere Feld(Y, l, r, m); } sonst { knoten.eintrag = Y [m]; Partitioniere Feld(X, l, r, m); } lsohn = neuer linker Sohn(knoten); rsohn = neuer rechter Sohn(knoten); Aufbau(l, m 1, lsohn,!xdir); Aufbau(m + 1, r, rsohn,!xdir); }
32 Mehrdimensionale Bereichssuche Analyse Aufbau Rekursion: T (n) = 2T ( n 2 ) + c n Θ(n log n) Bereichsabfrage O( n + R), R... Anzahl der Punkte im Bereich
33 Mehrdimensionale Bereichssuche Höhere Dimensionen Erweiterung auf kd Bäume Analog wie 2D Bäume alle Dimensionen (in abwechselnder Reihenfolge) durchlaufen Performance Aufbau: Θ(k n log n) Suche: O(k n 1 1 k + R)
34 Mehrdimensionale Bereichssuche Zusammenfassung Zusammenfassung Effiziente Bereichsabfrage mittels mehrdimensionale Bäume Jede Ebene entspricht eine bestimmte Dimension Aufbau des Baumes mittels Aufteilung der sortierten Punktefolge an den Median-Elementen balanciert Suche analog wie bei Binärbäumen, unter Beachtung der aktuellen Dimension
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
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
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
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 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
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
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
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
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
Geometrie II. Deniz Neufeld Deniz Neufeld Geometrie II / 39
Geometrie II Deniz Neufeld 20.06.2016 Deniz Neufeld Geometrie II 20.06.2016 1 / 39 Ziel Umgehen mit großen, mehrdimensionalen Datenmengen Bereichssuche Nearest-Neighbour-Search Mehrdimensionale Datenverarbeitung
Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2014
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.81 Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS 2014 22. Oktober
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
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.
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
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
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
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
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 :
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
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,
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
Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO
Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:
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
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:
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 15 P Hinweise: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
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
Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion
Abschnitt 1 Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Aufgabe 1: Binäre Suchbäume: Iteratives Suchen/Einfügen/Löschen Das Material dieser Übung enthält in der Klasse Tree0 die
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
Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen
Suchbäume Suchbäume Prinzip Suchbaum Der Wert eines Knotens wird als Schlüssel verstanden Knoten kann auch weitere Daten enthalten, die aber hier nicht weiter betrachtet werden Werte der Schlüssel müssen
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
Algorithmische Geometrie 7. Punktsuche
Algorithmische Geometrie 7. Punktsuche JProf. Dr. Heike Leitte Computergraphik und Visualisierung Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4. Schnitte planarer
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure
7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht
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
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
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] [email protected] Gefädelte
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
Anwendungsbeispiel MinHeap
Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n
Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Geometrisches Problem: Problem: Nächstes Paar Eingabe: n Punkte in der Ebene Ausgabe: Das Paar q,r mit geringstem Abstand
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
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
Ü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
Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen
Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl
Informatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo [email protected] 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,
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
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
Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen
Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes
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
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
Sweep-Verfahren (Scan-Verfahren, Scanlinien- / Scanebenen- Verfahren): wichtige algorithmische Technik / Paradigma analog zu "divide and conquer"
3. Das Sweep-Verfahren Sweep-Verfahren (Scan-Verfahren, Scanlinien- / Scanebenen- Verfahren): wichtige algorithmische Technik / Paradigma analog zu "divide and conquer" Prinzip: Rückführung eines n-dim.
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur
Randomisierte Datenstrukturen
Seminar über Algorithmen DozentInnen: Helmut Alt, Claudia Klost Randomisierte Datenstrukturen Ralph Schäfermeier 13. 2. 2007 Das Verwalten von Mengen, so dass ein schneller Zugriff auf deren Elemente gewährleistet
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
ContainerDatenstrukturen. Große Übung 4
ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne
Abschnitt 19: Sortierverfahren
Abschnitt 19: Sortierverfahren 19. Sortierverfahren 19.1 Allgemeines 19.2 Einfache Sortierverfahren 19.3 Effizientes Sortieren: Quicksort 19.4 Zusammenfassung 19 Sortierverfahren Informatik 2 (SS 07) 758
1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee
AVL-Bäume. Aufgabentyp Fügen Sie in einen anfangs leeren AVL Baum die folgenden Schlüssel ein:... Wenden Sie hierbei konsequent den Einfüge /Balancierungsalgorithmus an und dokumentieren Sie die ausgeführten
Kapitel 9 Suchalgorithmen
Kapitel 9 Suchalgorithmen Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für Suchverfahren: u.a. Suchen in
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:
Datenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume [email protected] 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
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
Algorithmische Geometrie
Algorithmische Geometrie Wladimir Emdin und Martin Dames Skript vom 3.6.2005 1 Wiederholung und Erganzung zu Fortune Sweep Gegeben: eine endliche Menge an Punkten S R 2 Gesucht: Das Voronoi-Diagramm von
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
Algorithmen und Datenstrukturen 12
12. Juli 2012 1 Besprechung Blatt 11 Fragen 2 Binary Search Binäre Suche in Arrays Binäre Suchbäume (Binary Search Tree) 3 Sortierverfahren Allgemein Heapsort Bubblesort Insertionsort Mergesort Quicksort
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
Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.813 Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS 2014 22. Oktober
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
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
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite Aufgabe. / 6 P Instruktionen: ) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern Sie
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
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 10. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Suchverfahren für große Datenmengen bisher betrachtete Datenstrukturen
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Algorithmen und Datenstrukturen Teil 3 Suchen in Listen Version vom: 15. November 2016
Kapitel 2. Weitere Beispiele Effizienter Algorithmen
Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte
