Hallo Welt für Fortgeschrittene

Größe: px
Ab Seite anzeigen:

Download "Hallo Welt für Fortgeschrittene"

Transkript

1 Hallo Welt für Fortgeschrittene Geometrie II Tiago Joao Informatik 2 Programmiersysteme Martensstraße Erlangen

2 Inhalt Koordinatenkompression Beispiel: SafeJourney Typische compress-funktion Bereichssuche Gitterverfahren k-d-baum Nearest Neighbour Closest Pair Divide and Conquer k-d-baum Voronoi-Diagramme Fortune's Algorithmus Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 2

3 Koordinatenkompression Wann: Großer Koordinatenraum Wenige Koordinaten Wozu: Raum verkleinern, d.h. unnötige Bereiche weglassen Algorithmus soll schneller laufen Vorsicht: wichtige Informationen dürfen dadurch nicht verloren gehen Ergebnis darf nicht verfälscht werden Meist bei Problem mit Flächenberechnung nutzbar Oft Vorstufe zum Flut-Algorithmus Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 3

4 Problem SafeJourney Eingabe: Stadt-Layout mit Straßen Anfangspunkt A und Zielpunkt Z Lösung: Finde einen Weg zwischen A und Z, wobei so wenig Straßen wie möglich überquert werden Ausgabe: Minimale Anzahl an zu überquerenden Straßen Genaue Problembeschreibung: [2] Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 4

5 Safejourney Beispiel A Z Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 5

6 Lösung: Flut-Algorithmus Die Kompression ist nur ein Vorschritt um das Problem hinterher effizienter zu lösen Man flutet alle erreichbaren Bereiche ohne eine Straße zu überqueren Ist der Punkt Z darin, so ist die Antwort 0. Nun flutet man alle angrenzenden Koordinaten Ist der Punkt Z darin, so ist die Antwort 1. Das wird solange wiederholt bis Z gefunden wird Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 6

7 Safejourney Beispiel A Z Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 7

8 Interessante Punkte: Die Straßen Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 8

9 Interessante Punkte: A und Z Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 9

10 Unnötige Punkte entfernt Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 10

11 Kompression Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 11

12 Lösung: Flut-Algorithmus Blau = 0 Rot = 1 Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 12

13 Compress-Funktion Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 13

14 Compress-Funktion Werte einfügen Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 14

15 Compress-Funktion Werte einfügen sortieren Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 15

16 Compress-Funktion Werte einfügen sortieren Duplikate löschen Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 16

17 Compress-Funktion Werte einfügen sortieren Duplikate löschen Kompression Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 17

18 Bereichssuche Gegeben: Menge von Punkten in einem k-dimensionalem Raum Bereich R k R k Gesucht: Alle Punkte Beispiele: 1D: Welche Zahlen liegen im Intervall [i, j]? 2D: Welche dieser Städte liegt in einem 20 km Umkreis? 3D: Welche Flugzeuge muss ich warnen, damit sie um dieses einen 1km Abstand halten? Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 18

19 Bereichssuche Naive Lösung: Über alle iterieren und überprüfen Laufzeit bei n Punkten: O n Mit ein bisschen Voranalyse müsste es doch schneller gehen Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 19

20 Gitterverfahren Idee: R k schon zu Beginn in Unterräume aufteilen Gegebene Punkte in diese einsortieren Nur infrage kommende Räume untersuchen Bsp: 3D: vorzugsweise in Würfel 2D: in Quadrate Dadurch entsteht ein Gitter (2D-Array aus Listen) Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 20

21 Gitterverfahren 2D Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 21

22 Gitterverfahren 2D Bereich fragwürdig Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 22

23 Gitterverfahren Pro: Contra: Einfach zu implementieren Gittergröße d sollte vorher Wahrscheinlich schneller bekannt sein!! als naiver Ansatz Sonst: Viele leere Quadrate d<< werden überprüft Zu viele Punkte werden d>> überprüft Das führt zu schlechtem Laufzeitverhalten Laufzeit: nicht bestimmbar Worst-case: Best-case: O n O x, x N n Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 23

24 k-d-baum k dimensionaler binärer Suchbaum Idee: In jeder Ebene des Baums sortiert man nach einer anderen Dimension, und beginnt dann wieder von vorne in der selben Reihenfolge. Bsp. 2D: x, y, x, y,... oder y, x, y, x, Bsp. 3D: x, y, z, x, y, z, Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 24

25 k-d-baum O n k log n Aufbau des Baums in: O n log 2 n Bei einem Sortieralgorithmus von Median, wie z.b. Heapsort Besser wäre Quickselect mit Ohne Median droht Entartung! O n O n log n für den Speicherplatz für den Baum: O n 1 1 k a O k n Bereichsanfrage: Wobei die Antwortgröße bezeichne a Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 25

26 k-d-baum 1D: ganz normaler Binärbaum kd: analog zu 2D Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 26

27 2-d-Baum Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 27

28 2-d-Baum Annahme: keine zwei Punkte haben die selbe Koordinate! Median wäre besser! Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 28

29 2-d-Baum Was passiert dann mit diesem Beispiel: Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 29

30 2-d-Baum 1-d-Baum 1-d-Baum überprüfen 1-d-Baum Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 30

31 2-d-Baum Beispiel für Bereichssuche x in [1, 2] y in [2, 3] Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 31

32 2-d-Baum Beispiel für Bereichssuche unnötig unnötig unnötig x in [1, 2] y in [2, 3] testen Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 32

33 Nearest Neighbour in 2D Nächster-Nachbar-Problem Ermittle aus n Punkten, den Punkt mit dem kleinsten Abstand zum Punkt x Naiv: Alle überprüfen O n Mit Hilfe eine 2-d-Baums: O log n Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 33

34 Nearest Neighbour in 2D Erster Schritt Radius zur Wurzel ist das aktuelle Minimum Nur dort absteigen, wo das Minimum größer ist als der Abstand zur Bounding Box Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 34

35 Nearest Neighbour - Beispiel (3, 5) Abstand = 1 Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 35

36 Nearest Neighbour - Beispiel Abstand = 2 (3, 5) Abstand > 1 Abstand = 1 Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 36

37 Nearest Neighbour - Beispiel Abstand = 2 (3, 5) Abstand > 1 Nicht testen! Nicht testen! Abstand = 1 Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 37

38 Nearest Neighbour in 2D Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 38

39 Nearest Neighbour in 2D ungünstiger Fall Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 39

40 Closest Pair im 2D Auch MinimalPaar genannt Gegeben: n Punkte Gesucht: Die zwei Punkte, die den kürzesten (euklidischen) Abstand zueinander haben Naiver Ansatz: Jede Kombination von Punkten prüfen O n 2 Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 40

41 Closest Pair im 2D mit Divide and Conquer Divide: Teile die Punktmenge in zwei fast gleich große Mengen Conquer: Finde rekursiv in jeder Menge das Closest Pair Ist das korrekt? Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 41

42 Closest Pair im 2D mit Divide and Conquer Divide: Teile die Punktmenge in zwei fast gleich große Mengen Conquer: Finde rekursiv in jeder Menge das Closest Pair Combine: Finde das Closest Pair mit jeweils einem Punkt aus beiden Mengen Return: Closest Pair aus den drei Ergebnissen Laufzeit: O n log n Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 42

43 Closest Pair im 2D mit Divide and Conquer Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 43

44 Closest Pair im 2D mit k-d-baum Berechne für jeden Knoten den minimalen Abstand zu allen anderen Knoten: Steige hier immer nur im k-d-tree ab, wenn der Abstand des Punktes zur Bounding Box des Unterbaums kleiner als der bisherige minimale Abstand ist. Man berechnet zu jedem Knoten den nächsten Nachbarn Man muss den Suchknoten explizit ausschließen Laufzeit: O n log n Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 44

45 Closest Pair im 2D mit k-d-baum Berechne für jeden Knoten den minimalen Abstand zu allen anderen Knoten: Steige hier immer nur im k-d-tree ab, wenn der Abstand des Punktes zur Bounding Box des Unterbaums kleiner als der bisherige minimale Abstand ist. Man berechnet zu jedem Knoten den nächsten Nachbarn Man muss den Suchknoten explizit ausschließen Laufzeit: O(n log(n)) Closest Pair im kd mit k-d-baum Laufzeit: O(n log(n)) Die Anzahl an Dimensionen ist unwichtig! Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 45

46 Voronoi-Diagramme Definition: Gegeben sei eine Menge Dann ist ein Voronoi-Bereich definiert als M ={P 1,..., P n } R 2 V P i = {Q R 2 d Q, P i d Q, P j, für j i} Gesamtheit der Voronoi-Bereiche ist das Voronoi-Diagramm Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 46

47 Voronoi-Diagramme Voronoi-Kante: Für jeden Punkt der Kante existiert ein Kreis, der genau zwei Punkte aus M schneidet Voronoi-Knoten: Es existiert ein Kreis der mind. drei Punkte aus M schneidet V(i) V-Knoten V-Kante Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 47

48 Voronoi-Diagramme Anwendungen: Problem Watchtower [8] Postamt- oder Feuerwehrproblem in Bestimmung des größten leeren Kreises Bestimmung aller nächsten Nachbarn in Sowie des Closest Pair O log n O n Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 48

49 Voronoi-Diagramm: Konstruktion Naiver Ansatz: Für jeden Punkt aus M Berechne die Geraden zu jedem anderen Punkt aus M Lass die Geraden sich schneiden O n 2 Wähle die richtigen Schnittpunkte O n 3 O n 4 O n Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 49

50 Voronoi-Diagramm: Konstruktion Naiver Ansatz: Für jeden Punkt aus M Berechne die Geraden zu jedem anderen Punkt aus M Lass die Geraden sich schneiden O n 2 Wähle die richtigen Schnittpunkte O n 3 O n 4 O n Divide and Conquer: O n log n Leider sehr schwer zu implementieren! Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 50

51 Voronoi-Diagramm: Konstruktion Fortune's Algorithmus: Laufzeit: Speicherplatz: Sweep-Line O n log n O n fertig beach-line sweep-line Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 51

52 Fortune P : Menge von Punkten VD : Doppelt-verlinkte Kantenliste : Binärer Suchbaum für Beach-Line (x-sortiert) Q : Prioritätswarteschlange mit zwei verschiedenen Events (y-sortiert) Site-Event: neuer Punkt aus M Es entsteht ein neuer Bogen in der Beach-Line Circle-Event: ein Bogen wird zu einem Punkt Es entsteht ein Voronoi-Knoten Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 52

53 Fortune Algorithmus: Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 53

54 Fortune Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 54

55 Fortune Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 55

56 Fragen? Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 56

57 Literatur [1] Problem Sculpture [2] Problem SafeJourney, TopCoder Inc. c=problem_statement&pm=5918&rd= module=static&d1=match_editorials&d2=srm277 [3] Hallo Welt! Folien 2010, 2012, 2013 Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 57

58 Literatur [4] Rolf Klein Algorithmische Geometrie Springer, Berlin; 2. Auflage [5] G. Aumann, K. Spitzmüller Computerorientierte Geometrie BI Wissenschaftsverlag, 1993 [6] Raymond Hill Javascript-Voronoi Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 58

59 Literatur [7] Allan Odgaard, Benny Kjær Nielsen A visual implementation of Fortune's Voronoi algorithm [8] Problem Watchtower, TopCoder Inc. c=problem_statement&pm=2014 Hallo Welt für Fortgeschritten Geometrie II Tiago Joao Folie 59

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Geradenarrangements und Dualität von Punkten und Geraden

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

Mehr

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

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

Das Voronoi Diagramm. 1. Definition. 2. Eigenschaften. 3. Größe und Speicherung. 4. Konstruktion. 5. Verwendung Das Voronoi Diagramm 1. Definition 2. Eigenschaften 3. Größe und Speicherung 4. Konstruktion 5. Verwendung Das Voronoi- Diagramm Voronoi Regionen Euklidische Distanz: d(p,q) = (px-qx)^2+(py-qy)^2 Das Voronoi-Diagramm

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

Minimal spannende Bäume

Minimal spannende Bäume http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende 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

7. Sortieren Lernziele. 7. Sortieren

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

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

Mehr

Geometrische Algorithmen

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

Mehr

SS 2005 FAU Erlangen 20.6.2005. Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner

SS 2005 FAU Erlangen 20.6.2005. Eine Wegeplanungs-Strategie. Jeremy Constantin, Michael Horn, Björn Gmeiner SS 2005 FAU Erlangen 20.6.2005 Voronoi Diagramm Eine Wegeplanungs-Strategie Jeremy Constantin, Michael Horn, Björn Gmeiner Grundseminar: Umgebungsexploration und Wegefindung mit Robotern am Beispiel "Katz

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

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

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

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

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

Mehr

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill Konvexe Hülle Hierbei handelt es sich um ein klassisches Problem aus der Algorithmischen Geometrie, dem Teilgebiet der Informatik, in dem man für geometrische Probleme effiziente Algorithmen bestimmt.

Mehr

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

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). 8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame

Mehr

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

Geometrie 1. Roman Sommer. Informatik 2 Programmiersysteme Martensstraße Erlangen Geometrie 1 Roman Sommer Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Grundlagen Punkte, Vektoren Schreibweise: Skalar: Vektor: Komponente: Punkt: (spitzer) Winkel zw. zwei Vektoren:

Mehr

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3

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.

Mehr

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin Konvexe Hülle Konvexe Hülle AK der Algorithmik 5, SS 2005 Hu Bin Anwendung: Computergraphik Boundary Kalkulationen Geometrische Optimierungsaufgaben Konvexe Hülle: Definition Mathematik Konvex: Linie zwischen

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

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

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

Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen Technische Universität Wien Institut für Computergraphik und Algorithmen Abteilung für Algorithmen und Datenstrukturen 186.114 Algorithmen und Datenstrukturen 1 UE 2.0 186.099 Programmiertechnik und theoretische

Mehr

Sortierverfahren für Felder (Listen)

Sortierverfahren für Felder (Listen) Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

Binärbäume: Beispiel

Binärbäume: Beispiel Binärbäume Als Beispiel für eine interessantere dynamische Datenstruktur sehen wir uns jetzt Binärbäume an Ein Binärbaum wird rekursiv definiert: Er ist leer oder besteht aus einem Knoten (die Wurzel des

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

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

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

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Konzepte der Informatik Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Inhaltsverzeichnis Suchen Binärsuche Binäre Suchbäume 16.10.2015 Dr. Werner

Mehr

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für "balanciert":

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für balanciert: Balancierte Bäume Aufwand, ein Element zu finden, entspricht der Tiefe des gefundenen Knotens im worst case = Tiefe des Baumes liegt zwischen log N und N Definition für "balanciert": es gibt verschiedene

Mehr

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

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

Mehr

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

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

Mehr

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

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

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

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

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

Mehr

Punkt-in-Polygon-Suche Übersicht

Punkt-in-Polygon-Suche Übersicht Folie 1 von 43 Punkt-in-Polygon-Suche Übersicht! Praxisbeispiel/Problemstellung! Zählen von Schnittpunkten " Schnitt einer Halbgerade mit der Masche " Aufwandsbetrachtung! Streifenkarte " Vorgehen und

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des

Mehr

3. Übungsblatt zu Algorithmen I im SoSe 2017

3. Übungsblatt zu Algorithmen I im SoSe 2017 Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799

Mehr

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

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

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group

Mehr

Informatik B Sommersemester Musterlösung zur Klausur vom

Informatik B Sommersemester Musterlösung zur Klausur vom Informatik B Sommersemester 007 Musterlösung zur Klausur vom 0.07.007 Aufgabe : Graphen und Graphalgorithmen + + + () Punkte Für eine beliebige positive, ganze Zahl n definieren wir einen Graphen G n =

Mehr

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Grundlagen: Algorithmen und Datenstrukturen

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

Mehr

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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

JAVA - Suchen - Sortieren

JAVA - Suchen - Sortieren Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik

Mehr

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können. 6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente

Mehr

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

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls

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

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

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

Mehr

Informatik II, SS 2014

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

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7) Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter

Mehr

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011

Vorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011 Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei

Mehr

Quadtrees und Meshing

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

Mehr

Algorithmische Geometrie. Prof. Dr. Thomas Ottmann. Mitarbeit: PD Dr. Sven Schuierer Dr. Stefan Edelkamp

Algorithmische Geometrie. Prof. Dr. Thomas Ottmann. Mitarbeit: PD Dr. Sven Schuierer Dr. Stefan Edelkamp Algorithmische Geometrie Prof. Dr. Thomas Ottmann Mitarbeit: PD Dr. Sven Schuierer Dr. Stefan Edelkamp Literatur: M. de Berg, M. van Krefeld, M. Overmars O. Schwarzkopf: Computational Geometry (Algorithms

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

Praktikum 3 Algorithmik SS Aufgabe 10: Aufgabe 9 ( Skyline-Problem ) weitere Aufgaben folgen. Name:... Matr-Nr:...

Praktikum 3 Algorithmik SS Aufgabe 10: Aufgabe 9 ( Skyline-Problem ) weitere Aufgaben folgen. Name:... Matr-Nr:... Praktikum 3 Algorithmik SS 2007 14052007 Aufgabe 9: Aufgabe 10: Das Skyline-Problem Union-Find-Strukturen weitere Aufgaben folgen Name: Matr-Nr: Datum: Unterschrift des Dozenten (wenn bestanden): Aufgabe

Mehr

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Suchbäume mit inneren Knoten verschiedener Knotengrade. Was bisher geschah rekursive Datenstrukturen: lineare Datenstrukturen: Liste, Stack, Queue hierarchische Datenstrukturen: Bäume allgemeine Bäume Binäre Bäume Unäre Bäume = Listen Tiefe eines Knotens in

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung

Mehr

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...) Inhalt: Einleitung, Begriffe Baumtypen und deren Kodierung Binäre Bäume Mehrwegbäume Prüfer

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 11. Übung Verkettete Listen, Sortieren Insertionsort, Mergesort, Radixsort, Quicksort Clemens Lang Übungen zu AuD 19. Januar 2010 Clemens Lang (Übungen zu AuD) Algorithmen

Mehr

Quicksort ist ein Divide-and-Conquer-Verfahren.

Quicksort ist ein Divide-and-Conquer-Verfahren. . Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.

Mehr

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Universität des Saarlandes

Universität des Saarlandes Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

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

1. Übungsblatt zu Algorithmen II im WS 2011/2012 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Moritz Kobitzsch, Dennis Schieferdecker. Übungsblatt zu Algorithmen II im WS 0/0 http://algo.iti.kit.edu/algorithmenii.php

Mehr

Informatik II. PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri

Informatik II. PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri Informatik II PVK Part1 Severin Wischmann wiseveri@student.ethz.ch n.ethz.ch/~wiseveri KAUM JAVA Kaum Java Viel Zeit wird für Java-spezifisches Wissen benützt Wenig wichtig für Prüfung Letztjähriger Assistent

Mehr

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

Mehr

Programmieren I. Kapitel 7. Sortieren und Suchen

Programmieren I. Kapitel 7. Sortieren und Suchen Programmieren I Kapitel 7. Sortieren und Suchen Kapitel 7: Sortieren und Suchen Ziel: Varianten der häufigsten Anwendung kennenlernen Ordnung Suchen lineares Suchen Binärsuche oder Bisektionssuche Sortieren

Mehr

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,

Mehr

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) :

2 Sortieren. Beispiel: Es seien n = 8 und a = i : a i : ϕ(i) : a ϕ(i) : 2 Sortieren Das Sortieren einer Datenfolge ist eines der am leichtesten zu verstehenden und am häufigsten auftretenden algorithmischen Probleme. In seiner einfachsten Form besteht das Problem darin, eine

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

Kapitel 1: Motivation / Grundlagen Gliederung

Kapitel 1: Motivation / Grundlagen Gliederung Gliederung 1. Motivation / Grundlagen 2. Sortier- und Selektionsverfahren 3. Paradigmen des Algorithmenentwurfs 4. Ausgewählte Datenstrukturen 5. Algorithmische Geometrie 6. Umgang mit algorithmisch schwierigen

Mehr

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

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java

4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java Inhaltsverzeichnis 1 Grundlagen 1 1.1 Algorithmen und ihre formalen Eigenschaften 1 1.2 Beispiele arithmetischer Algorithmen 5 1.2.1 Ein Multiplikationsverfahren 5 1.2.2 Polynomprodukt 8 1.2.3 Schnelle

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

Algorithmen und Datenstrukturen Balancierte Suchbäume

Algorithmen und Datenstrukturen Balancierte Suchbäume Algorithmen und Datenstrukturen Balancierte Suchbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung Einfügen und Löschen Einfügen

Mehr

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Janosch Maier 3. August 2011 Inhaltsverzeichnis 1 Sortieren 3 1.1 Externes Sortieren..........................

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Universität Karlsruhe, Institut für Theoretische Informatik Prof. Dr. P. Sanders 26.5.2010 svorschlag Übungsklausur Algorithmen I Hiermit bestätige ich, dass ich die Klausur selbständig bearbeitet habe:

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

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6. Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Die Hausaufgaben sollen in Gruppen von je - Studierenden aus der gleichen

Mehr

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

Informatik II Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:

Mehr

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr