3.3 Optimale binäre Suchbäume
|
|
- Benedikt Kolbe
- vor 5 Jahren
- Abrufe
Transkript
1 3.3 Optimale binäre Suchbäume Problem Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum abspeichern, um Anfragen der Form a S? für beliebige Elemente a U zu beantworten. Der binäre Suchbaum enthalte in den inneren Knoten die Schlüssel aus S. Entsprechend einem binären Suchbaum gelte, dass alle Elemente im linken Teilbaum eines inneren Knoten kleiner oder gleich dem Schlüssel im inneren Knoten sind. Die Blätter sollen die Intervalle zwischen den Schlüsseln in S enthalten, von links nach rechts aufsteigend sortiert: (,a 1 ),(a 1, ),...,(a,a n ),(a n, ). Die Blätter können unterschiedliche Höhen haben. Die Zugriffswahrscheinlichkeiten seien: 1. p i := Wahrscheinlichkeit, dass bei einer Suchanfrage nach a i S gefragt wird. 2. q i := Wahrscheinlichkeit, dass bei einer Suchanfrage nach a / S gefragt wird, mit a i < a < a i q 0 := Wahrscheinlichkeit, dass nach a < a 1 gefragt wird. 4. q n := Wahrscheinlichkeit, dass nach a > a n gefragt wird. wobei n i=1 p i + q i = 1, da es sich um eine Wahrscheinlichkeitsverteilung handelt. Frage Wie sieht der optimale binäre Suchbaum für S aus? Definition Ein binärer Suchbaum ist optimal, wenn die erwartete Anzahl an Vergleichen für eine Suchanfrage minimal ist. Wir minimieren folgende Zielfunkunktion: P = n n p i (Tiefe(i) + 1) + q j (Tiefe (j)) i=1 1. j=0 2. wobei Tiefe(i) die Tiefe des Knotens a i sei und Tiefe (j) die Tiefe des Blattes (a j,a j+1 ) für 0 < j < n und Tiefe (0) die Tiefe des Blattes (,a 1 ) bzw. Tiefe (n) die Tiefe des Blattes (a n, ). Also ist 1. Summe des Produktes aus der Anfragewahrscheinlichkeit eines Schlüssels a i S und der Länge dessen Suchpfades + 1 (für die Wurzel). 2. Summe über die Produkte aus allen möglichen Anfragen von Schlüsseln a S und der Länge deren Suchpfade. 63
2 3.3.1 Beispiel Wir betrachten folgendes Beispiel. Sei U = {1,2,3,4,5,6,7} und die Menge der Schlüssel S = {2, 5, 6}. Nach Schlüsseln aus S wird mit den Wahrscheinlichkeiten p 1 = 0,3, p 2 = 0,2 und p 3 = gefragt. Die Intervalle zwischen den Schlüsseln in S seien gleich wahrscheinlich, d.h. q 0 = q 1 = q 2 = q 3 =. Dann sind z.b. die Suchbäume in Abbildung 3.26 möglich. p = 0,2 2 p 1 = 0,3 a 1 a 3 p = (_,a 1 ) (a 1,) (,a 3 ) (a 3,_) 3 (a) Baum T 1 mit P T1 = 1, 8 p 1 = 0,3 a 1 p = 0,2 2 (_,a 1 ) (a 1,a2) a 3 (a,a ) 2 3 p = 3 (a 3,_) (_,a ) 1 p 1 = 0,3 a 1 (a 1,a2) p 2 = 0,2 (a,a ) 2 3 a 3 p = 3 (a,_) 3 (b) Baum T 2 mit P T2 = 2, 3 (c) Baum T 3 mit P T3 = 1, 9 Abbildung 3.26: Beispiele für binäre Suchbäume Die Zielfunktion für die Suchbäume T 1,T 2,T 3 in Abbildung 3.26 beträgt: P T1 = ( + + 0,3) + ( + + ) + (( + + 0,3) + ( + + ) + 0,2) = (0,5 + 0,3) + ((0,5 + 0,3) + 0,2) = 1,8. P T2 = ( + + 0,3) + (0, ,2) + (0,8 + + ) = 0,5 + 0,8 + 1,0 = 2,3. P T3 = ( + + ) + ( + 0,3 + 0,2) + ( + 0,6 + 0,3) = 0,3 + 0,6 + 1,0 = 1,9. In diesem Beispiel ist also der Suchbaum T 1 besser als die Bäume T 2 und T 3. 64
3 3.3.2 Algorithmus Gesucht ist ein Algorithmus, der für eine gegebene Schlüsselmenge S aus einem Universum U einen optimalen binären Suchbaum konstruiert. Bemerkung. Die Methode des Durchtestens aller möglichen Suchbäume (brute force) ist zwar möglich aber ineffizient, da es ( ) 2n 1 n n + 1 4n zu untersuchende Bäume gibt. Für große n ist diese Methode daher praktisch nicht umsetzbar. Wir stellen zunächst einige Vorüberlegungen an. Dazu benutzen wir folgende Bezeichnungen, welche in Abbildung 3.27 schematisch dargestellt sind. Sei S eine Teilmenge von S: S S, S = {a i,...,a j }. T i,j sei der optimale Suchbaum für S. Die Wurzel von T i,j sei a m, m {i,...,j}. Die inneren Knoten von T i,j sind {a i,...,a j }. Die Blätter von T i,j haben die Gestalt (a i 1,a i ),(a i,a i+1 ),...,(a j 1,a j ),(a j,a j+1 ) Mit P Ti,j bezeichnen wir die Zielfunktion eingeschränkt auf den Teilbaum T i,j. Die Zugriffswahrscheinlichkeiten im Teilbaum T i,j sind p i = pi und q i = q i, wobei die Wahrscheinlichkeit dafür sei, dass nach einem Element a [a i,a j ] gesucht wird. Behauptung Die erwartete Anzahl an Vergleichen für eine Suchanfrage über einem Teilbaum T i,j ist im Mittel: Beweisskizze. Herleitung über: P Ti,j = 1 + w i,m 1 P Tl + w m+1,j P Tr. P Ti,j = I := II := p k (Tiefe(k) + 1) + k=i I m 1 k=i m 1 k=i 1 k=i p m (Tiefe(m) + 1) q m (Tiefe (m)) + q k (Tiefe (k)) II... k=m+1 k=m
4 w i,m-1 a m w m+1,j T T i,j T l T r 1 n p i p m p j i m-1 m+1 j Abbildung 3.27: Schematische Darstellung der Ausgangssituation. Lemma Der binäre Suchbaum T i,j sei optimal für die Menge {a i,...,a j } und sei a m die Wurzel von T i,j. Ferner sei T l linker Teilbaum von a m und T r rechter Teilbaum von a m. Dann ist T l bzw. T r optimaler binärer Suchbaum für die Menge {a i,...,a m 1 } bzw. {a m+1,...,a j }. Beweis. Angenommen es gibt T l mit P T l < P T l P T i,j = 1 + w i,m 1 P T l + w m+1,j P Tr < 1 + w i,m 1 P Tl + w m+1,j P Tr = P Ti,j. Dies steht jedoch im Widerspruch dazu, dass T i,j optimal ist. Seien folgende Variablen für den Algorithmus vereinbart: r i,j := Index der Wurzel für T i,j c i,j := Kosten von T i,j = P Ti,j := Wahrscheinlichkeit, dass a [a i,a j ] (wie bisher). Behauptung Es gilt c i,j = P Ti,j = + c i,m 1 + c m+1,j = w i,m 1 + p m + w m+1,j. 66
5 Basierend auf den vorangegangenen Lösungen, können wir nun einen Algorithmus zum Berechnen des optimalen binären Suchbaums angeben. Algorithm 3: [Bellman, 1957] Iterative Suche nach dem optimalen Suchbaum T. 1: for i = 0,...,n do 2: w i+1,i = q i 3: c i+1,i = 0 4: end for 5: for k = 0,...,n 1 do 6: for i = 1,...,n k do 7: j = i + k 8: Bestimme m mit i m j, so dass c i,m 1 + c m+1,j minimal ist. 9: r i,j = m 10: = w i,m 1 + w m+1,j + p m 11: c i,j = c i,m 1 + c m+1,j + 12: end for 13: end for Der Algorithmus benutzt das Konzept der dynamischen Programmierung. Bei dynamischer Programmierung wird die Lösung eines Problems durch Zusammenfügen der Lösungen von Teilproblemen erreicht. Die Lösungen der Teilprobleme sind dabei voneinander abhängig. Insbesondere beruht die Lösung eines Teilproblems auf den Lösungen von kleineren Teilproblemen. Bei dynamischer Programmierungen werden diese kleineren Teilprobleme nur einmal gelöst, und ihre Lösung für mehrere größere, sie enthaltene Teilprobleme weiterverwendet. Eine ausführlichere Beschreibung von dynamischer Programmierung findet sich z.b. im Kapitel 16 des Buches Introduction to Algorithms von Cormen et.al. In unserem Fall sind die Teilprobleme gegeben durch die Teilgraphen T i,j,1 i j n. Der Algorithmus berechnet nacheinander die optimalen Lösungen für die Teilgraphen T i,j für k = i j = 0,...,n 1. Für k = 0 berechnet er die optimalen Lösungen für die Teilgraphen T i,i,i = 1,...,n, welche nur aus einem Knoten, a i, bestehen. Für k > 0 berechnet er die optimale Lösung für T i,j aufbauend auf den bereits berechneten kleineren Lösungen. Im letzten Schritt wird so der optimale binäre Suchbaum T 1,n = T berechnet Beispiel Wir veranschaulichen die Arbeitsweise des Algorithmus an folgendem Beispiel. Gegeben sei die Menge S = {a 1,,a 3,a 4 }. Nach den Schlüsseln in S wird mit den Wahrscheinlichkeiten p 1 = p 2 =, p 3 = 0,2 und p 4 = 0,2 gefragt. Die von den Schlüsseln gebildeten Intervalle seien auch hier gleich wahrscheinlich, d.h. q 0 = q 1 = q 2 = q 3 = q 4 =. Die vom Algorithmus iterativ berechneten Ergebnisse für die Teilprobleme lassen sich in folgender Tabelle 3.1 abspeichern und darstellen. In der ersten Blockzeile der Tabelle stehen die während der Initialisierung berechneten Werte und in den folgenden Blockzeilen die Werte für wachsende k von 0 bis n 1. Den resultierenden optimalen Suchbaum, dargestellt in Abbildung 3.28, liest 67
6 i Init w 1,0 = 0 w 2,1 = w 3,2 = w 4,3 = w 5,4 = c 1,0 = 0 c 2,1 = 0 c 3,2 = 0 c 4,3 = 0 c 5,4 = 0 k = 0 r 1,1 = 1 r 2,2 = 2 r 3,3 = 3 r 4,4 = 4 w 1,1 = 0,2 w 2,2 = 0,3 w 3,3 = 0,4 w 4,4 = 0,4 c 1,1 = 0,2 c 2,2 = 0,3 c 3,3 = 0,4 c 4,4 = 0,4 k = 1 r 1,2 = 2 r 2,3 = 3 r 3,4 = 3 w 1,2 = 0,4 w 2,3 = 0,6 w 3,4 = 0,7 c 1,2 = 0,6 c 2,3 = 0,9 c 3,4 = 1,1 k = 2 r 1,3 = 2 r 2,4 = 3 w 1,3 = 0,7 w 2,4 = 0,9 c 1,3 = 1,3 c 2,4 = 1,6 k = 3 r 1,4 = 3 w 1,4 = 2 c 1,4 = 1 Tabelle 3.1: Tabelle zur Speicherung der Berechnungen des Algorithmus man, wie in der Tabelle angedeutet, heraus. Der Index der Wurzel ist der Index m w = r 1,n im untersten Block. Die Indezes des linken und rechten Kindes der Wurzel sind m l = r 1,mw 1 und m r = r mw+1,n usw Analyse Speicherkomplexität Der Algorithmus benötigt zum Speichern der Zwischenergebnisse eine Matrix M M(n + 1 n, R). Der Speicherbedarf liegt daher bei S(n) = n (n + 1) = n 2 + n Θ(n 2 ). Laufzeitkomplexität T(n) = c 1 n + Zeile (1) bis (4) n k = c 1 n + k=0 i=1 c 2 n k k=0 i=1 Zeile (7) (c 2 + c 4 c 5 ) + k c 3 =k {}}{ +( j i)c 3 Zeile (8) = c 1 n + ((n k)c 5 + (n k)k c 3 ) k=0 = c 1 n + c 5 k + c 3 k=0 O ( n + n 2 + n 3) = O(n 3 ) k=0 k 2 + c 4 Zeile (9) bis (11) 68
7 i = 0 i = 1 i = 2 i = 3 i = 4 k = 0 k = 1 r 1,1 = 1 w 1,1 = 0,2 c 1,1 = 0,2 r 1,2 = 2 w 1,2 = 0,4 r 1,2 = 0,6 r 4,4 = 4 w 4,4 = 0,4 c 4,4 = 0,4 a 1 a 3 a 4 k = 2 k = 3 r 1,4 = 3 w 1,4 = 2 c 1,4 = 1 Abbildung 3.28: Resultierender Optimaler Binärer Suchbaum Optimierungen Es wurde gezeigt, dass der Iterationsalgorithmus nach Bellman kubische Laufzeit hat. Der quadratische Anteil folgt direkt aus der Anwendung der dynamischen Programmierung, so dass hier kein Ansatz zur Verbesserung gefunden werden kann. Interessant ist vielmehr Zeile (8) des Algorithmus, die den Index der Wurzel a m des optimalen Suchbaumes T i,j berechnet. Es ist in diesem Schritt nicht notwendig, alle m mit i m j zu prüfen. Sondern man kann zeigen, dass die optimalen Wurzeln von Teilbäumen, die sich nur um einen Knoten unterscheiden, relativ nahe beieinander. Dies geschieht in folgendem Lemma. Lemma r i,j 1 r i,j r i+1,j. Der Beweis von Lemma kann dem Buch von Donald E. Knuth The Art of Functional Programming, Band 3: Sorting and Searching entnommen werden. Durch die Eingrenzung der Wurzelsuche auf das im Lemma beschriebene Intervall reduziert sich die Gesamtlaufzeit des Algorithmus auf T(n) O(n 2 ). 69
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale
MehrEin sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.
2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert
Mehr21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3
581 21. Greedy Algorithmen Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 Aktivitäten Auswahl 582 Koordination von Aktivitäten, die gemeinsame Resource exklusiv
MehrÜbersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Übersicht Greedy Algorithmen Einführung Aktivitäten-Auswahl-Problem Huffman Codierung Matthias Zwicker Universität Bern Frühling 2009 2 Greedy Algorithmen Entwurfsstrategie
Mehr20. Dynamic Programming II
536 20. Dynamic Programming II Subset Sum Problem, Rucksackproblem, Greedy Algorithmus, Lösungen mit dynamischer Programmierung, FPTAS, Optimaler Suchbaum [Ottman/Widmayer, Kap. 7.2, 7.3, 5.7, Cormen et
MehrRelationen und DAGs, starker Zusammenhang
Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind
MehrFormulierung mittels Dynamischer Programmierung
Formulierung mittels Dynamischer Programmierung Beobachtung: die Anzahl der Teilprobleme A i j n mit i j n ist nur Folgerung: der naïve rekursive Algo berechnet viele Teilprobleme mehrfach! Idee: Bottom-up-Berechnung
Mehr20. Dynamic Programming II
Aufgabe 20. Dynamic Programming II Subset Sum Problem, Rucksackproblem, Greedy Algorithmus, Lösungen mit dynamischer Programmierung, FPTAS, Optimaler Suchbaum [Ottman/Widmayer, Kap. 7.2, 7.3, 5.7, Cormen
MehrBeweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens
Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens h 1 2 j = 2 h 1 j=0 interne Knoten enthalten kann. EADS 86/600 Beweis: Induktionsanfang: 1 ein AVL-Baum der Höhe h = 1 enthält
Mehr8. 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.
Mehr2. Klausur Datenstrukturen und Algorithmen SS 2014
Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder 2. Klausur Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik
MehrWiederholung. Divide & Conquer Strategie
Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in
MehrDatenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrKapitel 5: Dynamisches Programmieren Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrTheoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme
Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien
MehrTeil I. Lineare Algebra I Vorlesung Sommersemester Olga Holtz. MA 378 Sprechstunde Fr und n.v.
Teil I Lineare Algebra I Vorlesung Sommersemester 2011 Olga Holtz MA 378 Sprechstunde Fr 14-16 und nv holtz@mathtu-berlinde Sadegh Jokar MA 373 Sprechstunde, Do 12-14 und nv jokar@mathtu-berlinde Kapitel
MehrAufgaben zur Klausurvorbereitung
Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014
MehrAlgorithmen 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(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.
(a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 6 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Mai 2018 [Letzte Aktualisierung: 18/05/2018,
MehrC G C C G C. Löschen von Knoten. Beispiel: Löschen von k =
Löschen von Knoten Beispiel: Löschen von k = 8 14 8 2 11 17 9 26 Informatik 2 SS 1 Beispiel: Löschen von k = 8 14 8 2 11 17 26 Informatik 2 SS 1 9 1 1 Beispiel: Löschen von k = 8-1 14 11 2 17 9 26 Informatik
MehrDas Problem des Handlungsreisenden
Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme
Mehr2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}
1. Berechne für jeden Knoten i in BFS-Art eine Liste S i von von i aus erreichbaren Knoten, so dass (i) oder (ii) gilt: (i) S i < n 2 + 1 und Si enthält alle von i aus erreichbaren Knoten (ii) S i = n
MehrGierige Algorithmen Interval Scheduling
Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A Gierige Algorithmen Interval Scheduling Beweisidee:
MehrGraphen. Definitionen
Graphen Graphen werden häufig als Modell für das Lösen eines Problems aus der Praxis verwendet, wie wir im Kapitel 1 gesehen haben. Der Schweizer Mathematiker Euler hat als erster Graphen verwendet, um
Mehr19. Dynamic Programming I
Fibonacci Zahlen 9. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixettenmultipliation, Matrixmultipliation nach Strassen [Ottman/Widmayer,
MehrPerlen der Informatik I Wintersemester 2012 Aufgabenblatt 7
Technische Universität München WS 2012 Institut für Informatik Prof. Dr. H.-J. Bungartz Prof. Dr. T. Huckle Prof. Dr. M. Bader Kristof Unterweger Perlen der Informatik I Wintersemester 2012 Aufgabenblatt
MehrSuchbä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
MehrAlgorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Gefädelte
Mehr2.7 Der Shannon-Fano-Elias Code
2.7 Der Shannon-Fano-Elias Code Die Huffman-Codierung ist ein asymptotisch optimales Verfahren. Wir haben auch gesehen, dass sich die Huffman-Codierung gut berechnen und dann auch gut decodieren lassen.
MehrDynamische Programmierung
Dynamische Programmierung Claudia Gerhold 9.5.6 Claudia Gerhold Dynamische Programmierung 9.5.6 / 4 Agenda Einführung Dynamische Programmierung Top-Down Ansatz mit Memoization Bottom-Up Ansatz 3 Anwendungsbeispiele
MehrVereinfachen wir diese Rekursionsgleichung zunächst: E ˆT n = 1 n. = 1 n
Problem: E(max{X, Y }) E(X ) + E(Y ) korrekt, aber zu ungenau. (Folie 83, Seite 41 im Skript) E(max{X, Y }) max{e(x ), E(Y )} genau genug, aber zu unkorrekt. Führe neue Zufallsvariablen ein: ˆT n = 2 Tn,
Mehr5. Bäume und Minimalgerüste
5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14
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 2. April
MehrStud.-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
MehrRandomisierte Algorithmen
Randomisierte Algorithmen Kapitel 1 Markus Lohrey Universität Leipzig http://www.informatik.uni-leipzig.de/~lohrey/rand WS 2005/2006 Markus Lohrey (Universität Leipzig) Randomisierte Algorithmen WS 2005/2006
MehrMinimalpolynome und Implikanten
Kapitel 3 Minimalpolynome und Implikanten Wir haben bisher gezeigt, daß jede Boolesche Funktion durch einfache Grundfunktionen dargestellt werden kann. Dabei können jedoch sehr lange Ausdrücke enstehen,
MehrAbgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
MehrDefinition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
MehrHumboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
MehrInformatik B Sommersemester Musterlösung zur Klausur am
Informatik B Sommersemester 01 Musterlösung zur Klausur am 1.0.01 Leider wurde der Hinweis, dass alle Lösungen kurz (stichpunktartig), aber inhaltlich ausreichend zu kommentieren sind, nicht immer beachtet.
MehrAlgorithmen I - Tutorium 28 Nr. 12
Algorithmen I - Tutorium 28 Nr. 12 20.07.2017: Spaß mit Dynamischer und Linearer Programmierung Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN
Mehr21. Dynamic Programming III
Approximation 21. Dynamic Programming III FPTAS [Ottman/Widmayer, Kap. 7.2, 7.3, Cormen et al, Kap. 15,35.5] Sei ein ε (, 1) gegeben. Sei I eine bestmögliche Auswahl. Suchen eine gültige Auswahl I mit
MehrAbschnitt 18: Effizientes Suchen in Mengen
Abschnitt 18: Effizientes Suchen in Mengen 18. Effizientes Suchen in Mengen 18.1 Vollständig ausgeglichene binäre Suchbäume 18.2 AVL-Bäume 18.3 Operationen auf AVL-Bäumen 18.4 Zusammenfassung 18 Effizientes
MehrDiskrete Strukturen Kapitel 4: Graphentheorie (Bäume)
WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
Mehr2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus
2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus {0, 1,..., B 1} d in Zeit O(d(n + B)) sortiert werden, indem sie zuerst gemäß dem letzten
MehrGraphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007
Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 25. Oktober 2007 1 / 20 2 / 20 Wir werden Optimierungsprobleme vom folgenden Typ betrachten: gegeben eine Menge X und eine Funktion
MehrProseminar 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
MehrAlgorithmische Graphentheorie
Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca csacarea@cs.ubbcluj.ro 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES
MehrNatürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16
Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein
MehrBeispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
MehrKlausur Informatik 2: Algorithmen und Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!
Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Klausur Informatik 2: Algorithmen und Datenstrukturen Donnerstag, 9. März 21, 2017, 9:00 bis 12.00 Uhr Name:.....................................................................
Mehr19. Dynamic Programming I
502 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 24. April 2019 [Letzte Aktualisierung: 24/04/2019,
MehrEADS 3.3 Gewichtsbalancierte Bäume 95/598 ľernst W. Mayr
3.3 Gewichtsbalancierte Bäume Siehe zu diesem Thema Seite 189ff in Kurt Mehlhorn: Data structures and algorithms 1: Sorting and searching, EATCS Monographs on Theoretical Computer Science, Springer Verlag:
MehrÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz
Matrikelnummer: Fakultät Studiengang: Jahrgang / Kurs : Technik Angewandte Informatik 01 B/C/K ÜBUNGSKLAUSUR Studienhalbjahr:. Semester Datum: 0. Juli 01 Bearbeitungszeit: 90 Minuten Modul: TINF100.1 Dozent:
MehrSatz 172 Jedes vergleichsbasierte Sortierverfahren benötigt im worst-case mindestens n ld n + O(n) Vergleiche und hat damit Laufzeit Ω(n log n).
2.6 Vergleichsbasierte Sortierverfahren Alle bisher betrachteten Sortierverfahren sind vergleichsbasiert, d.h. sie greifen auf Schlüssel k, k (außer in Zuweisungen) nur in Vergleichsoperationen der Form
MehrRückblick: divide and conquer
Rückblick: divide and conquer pi = (xi,yi) } p å } ' }d(p,p) p ''=min(, ') F 0/0 p./95 weitere Algorithmentechniken Greedy-Algorithmen dynamische Programmierung Backtracking branch and bound Heuristiken
MehrWiederholung. 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:
MehrDie duale Simplexmethode
Kapitel 0 Die duale Simplexmethode Bei der dualen Simplexmethode ist eine Startlösung oftmals leichter angebbar als bei der Simplexmethode für das ursprüngliche lineare Programm, da man keine Nichtnegativitätsanforderungen
MehrSeminar: Randomisierte Algorithmen Auswerten von Spielbäumen Nele Küsener
Seminar: Randomisierte Algorithmen Auswerten von Sielbäumen Nele Küsener In diesem Vortrag wird die Laufzeit von Las-Vegas-Algorithmen analysiert. Das Ergebnis ist eine obere und eine untere Schranke für
MehrOnline Algorithmen. Online Kürzeste Wege Probleme. Online Algorithmen Kompetitivität
Online Algorithmen Wiederholung Eigenschaften von Online Algorithmen Unvollständige (Vorab-)Information Sequentielle Anfragen Abarbeitung der aktuellen Anfragen ohne Information über zukünftige Anfragen
Mehr3. 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:
MehrVorlesung 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
MehrAuswählen nach Rang (Selektion)
Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)
MehrKlausur Algorithmentheorie
Prof. Dr. G. Schnitger Frankfurt, den 24.02.2011 M. Poloczek Klausur Algorithmentheorie WS 2010/2011 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen
MehrAlgorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
Mehr3.2. Divide-and-Conquer-Methoden
LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch
MehrEntscheidungsbä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
MehrAnwendungen dynamischer Programmierung in der Biologie
Anwendungen dynamischer Programmierung in der Biologie Überblick Algorithmus zum Finden der wahrscheinlichsten Sekundärstruktur eines RNS Moleküls Sequence Alignment Verbesserung von Sequence Alignment
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 17.01.013 Parametrisierte Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrProbeklausur Computerorientierte Mathematik II
Technische Universität Berlin SS 2012 Fakultät II, Institut für Mathematik Sekretariat MA 5 1, Frau Klink Prof. Dr. Rolf Möhring Torsten Gellert Jan-Philipp Kappmeier Jens Schulz Catharina Broermann, Christian
MehrMethoden für den Entwurf von Algorithmen
Methoden für den Entwurf von Algorithmen Greedy Algorithmen: - Löse ein einfaches Optimierungsproblem durch eine Folge vernünftiger Entscheidungen. - Eine getroffene Entscheidung wird nie zurückgenommen.
MehrVortrag 20: Kurze Vektoren in Gittern
Seminar: Wie genau ist ungefähr Vortrag 20: Kurze Vektoren in Gittern Kerstin Bauer Sommerakademie Görlitz, 2007 Definition und Problembeschreibung Definition: Gitter Seien b 1,,b k Q n. Dann heißt die
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine
Mehr2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
Mehr1 Lineare Unabhängigkeit Äquivalente Definition Geometrische Interpretation Vektorräume und Basen 6
Wirtschaftswissenschaftliches Zentrum Universität Basel Mathematik Dr. Thomas Zehrt Vektorräume und Rang einer Matrix Inhaltsverzeichnis Lineare Unabhängigkeit. Äquivalente Definition.............................
MehrParallele Algorithmen in der Bildverarbeitung
Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren
MehrAlgorithmen 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
MehrKlausur Algorithmentheorie
Prof. Dr. G. Schnitger Frankfurt, den 07.04.2011 M. Poloczek Klausur Algorithmentheorie WS 2010/2011 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen
MehrAlgorithmen 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
MehrWS 2013/14. Diskrete Strukturen
WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314
MehrDatenstrukturen 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
MehrDatenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3)
Aufgabe 3 a) Wir verwenden zur Lösung den Algorithmus Build-Heap 1, dieser verwendet die Funktion Heapify. Unser Array A ist gegeben durch [7, 10,, 5, 5,, 3, 3, 17]. 10 5 5 3 17 7 Abbildung 1: Das Array
MehrDynamische Programmierung
Dynamische Programmierung Ludwig Höcker 13.06.2012 Ludwig Höcker Dynamische Programmierung 13.06.2012 1 / 61 Gliederung Dynamic Programming Bsp.: FAU-Kabel Naiv Top-Down Bottom-Up Longest Increasing Subsequence
MehrSeien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.
Beweis: 1. 2. Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren. Widerspruchsannahme: Es gibt zwei verschiedene Pfade zwischen u und v. Dann gibt es einen
MehrDeterminanten. I. Permutationen
Determinanten Durch Bildung der Determinante wird einer quadratischen (! Matrix eine gewisse Zahl zuordnet. Die Determinante tritt besonders bei Fragen der Flächen- bzw. Volumsberechnung auf (siehe auch
MehrAlgorithmen für schwierige Probleme
Algorithmen für schwierige Probleme Britta Dorn Wintersemester 2011/12 24. November 2011 Farbkodierung Beispiel Longest Path Longest Path gegeben: G = (V, E) und k N. Frage: Gibt es einen einfachen Pfad
MehrDynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
MehrDatenstrukturen & 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
MehrAlgorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Paarweises
MehrDatenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität Gierige Algorithmen: Berechne Lösung schrittweise In jedem Schritt mache lokal optimale Wahl Daumenregel: Wenn optimale Lösung
Mehr13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang
13 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne
MehrEinleitung. Kapitel 1
Kapitel 1 Einleitung In diesem Abschnitt geben wir einen kurzen Überblick über den Inhalt der Vorlesung. Wir werden kurz die wesentlichen Probleme erläutern, die wir ansprechen wollen. Wir werden auch
Mehra) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:
1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem
Mehr