Geometrische Algorithmen

Größe: px
Ab Seite anzeigen:

Download "Geometrische Algorithmen"

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 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

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

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

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

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

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

Datenstrukturen und Algorithmen

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

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

Geometrie II. Deniz Neufeld Deniz Neufeld Geometrie II / 39

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

Mehr

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2014

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

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 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

Datenstrukturen und Algorithmen D-INFK

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

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Mehr

INTERVALLBÄUME. Tanja Lehenauer, Besart Sylejmani

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

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

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

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

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

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

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 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

Mehr

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

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:

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

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

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Mehr

Hallo Welt für Fortgeschrittene

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

Mehr

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

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

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Mehr

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. 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

Mehr

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) 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

Mehr

Algorithmische Geometrie 7. Punktsuche

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

Mehr

Datenstrukturen & Algorithmen

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

Mehr

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

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

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

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle

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

Mehr

Algorithmen und Datenstrukturen 1

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

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

Anwendungsbeispiel MinHeap

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

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

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

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

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

Ü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

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

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

Mehr

Informatik II Prüfungsvorbereitungskurs

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,

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

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

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen

Ü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

Mehr

Algorithmen und Datenstrukturen I AVL-Bäume

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

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

Sweep-Verfahren (Scan-Verfahren, Scanlinien- / Scanebenen- Verfahren): wichtige algorithmische Technik / Paradigma analog zu "divide and conquer"

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.

Mehr

Vorlesung Datenstrukturen

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

Mehr

Randomisierte Datenstrukturen

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

Mehr

Geometrische Datenstrukturen

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

Mehr

ContainerDatenstrukturen. Große Übung 4

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

Mehr

Abschnitt 19: Sortierverfahren

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

Mehr

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

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

Mehr

Kapitel 9 Suchalgorithmen

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

Mehr

Vorlesung Datenstrukturen

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:

Mehr

Datenstrukturen und Algorithmen

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

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

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

Mehr

Algorithmische Geometrie

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

Mehr

KD-Bäume. ein Vortrag von Jan Schaefer

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

Mehr

Algorithmen und Datenstrukturen 12

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

Mehr

Exkurs: Datenstruktur Quad Tree

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

Mehr

Algorithmen und Datenstrukturen 1 VU 6.0 Nachtragstest SS Oktober 2014

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

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

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

Mehr

6. Algorithmen der Computer-Geometrie

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

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Mehr

Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern

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

Mehr

Algorithmen und Datenstrukturen 1

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

Mehr

Algorithmen und 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

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

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

Mehr