Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (1)
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Programmieren II
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Mindesthöhe: |_log2 n_|, maximale Höhe: n-1
Claudio Moraga; Gisbert Dittrich
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
Algorithmen und Datenstrukturen
B-Bäume.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Durchlaufen eines Binärbaumes
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Balancierte Bäume Effizienz der Wörterbuchoperationen auf Bäumen hängt direkt von der Baumhöhe ab. Baum mit n Knoten: Mindesthöhe: |_log2 n_|, maximale.
Algorithmentheorie 04 –Hashing
Suche in Texten: Suffix-Bäume
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - Balancierte Bäume, AVL-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (15 Hashverfahren: Verkettung der Überläufer) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Fibonacci-Heaps – Analyse) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (07 - Skiplisten) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
WS03/041 Binomial Queues Prof. Dr. S. Albers Prof.Dr.Th Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – Bruder-Bäume, B-Bäume) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Animationen zu Kap. 4.3: AVL-Bäume
Splay Trees Von Projdakov Benjamin.
2. Die rekursive Datenstruktur Baum 2
Sortieralgorithmen Sortieren von Arrays.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Graphen und Bäume.
Kapitel 6: Suchbäume und weitere Sortierverfahren
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
Binärer Baum, Binärer Suchbaum I
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann

Binäre Suchbäume Binärbäume zur Speicherung von Mengen von Schlüsseln (in den inneren Knoten der Bäume), so dass die Operationen Suchen (find) Einfügen (insert) Entfernen (remove, delete) unterstützt werden. Suchbaumeigenschaft: Die Schlüssel im linken Teilbaum eines Knotens p sind alle kleiner als der Schlüssel von p, und dieser ist wiederum kleiner als sämtliche Schlüssel im rechten Teilbaum von p. Implementierung:

Natürliche Bäume Einfügen 5 9 9 3 12 3 12 4 4 5 Baum-Struktur hängt von Einfügereihenfolge in anfangs leeren Baum ab Höhe kann linear zunehmen, sie kann aber auch in O(log n) sein, genau log2(n+1)

Beispiel für Suchen, Einfügen, Entfernen 17 11 22 7 14 12

Analyse natürlicher Suchbäume Zwei alternative Vorgehensweisen zur Bestimmung der internen Pfadlänge: 1. Random-Tree-Analyse, d.h. Mittelwert über alle möglichen Permutationen der (in den anfangs leeren Baum) einzufügenden Schlüssel. 2. Gestaltanalyse, d.h. Mittelwert über alle strukturell möglichen Bäume mit n Schlüsseln. Unterschied des Erwartungswertes für die interne Pfadlänge: 1.  1.386 n log2n – 0.846 n + O(log n) 2.  nn + O(n)

Ursache für den Unterschied 3 2 1 3 1 2 1 3 2 1 2 3 3 2 1 3,2,1 3,1,2 1,3,2 1,2,3 2,1,3 und 2,3,1  Bei der Random-Tree-Analyse werden ausgeglichene Bäume häufiger gezählt.

Interne Pfadlänge Interne Pfadlänge: Maß zu Beurteilung der Güte eines Suchbaumes. Rekursive Definition: 1. Ist t der leere Baum, so ist I(t) = 0. 2. Für einen Baum mit Wurzel t, linkem Teilbaum tl und rechtem Teilbaum tr gilt: I(t) := I(tl) + I(tr)+ Zahl der Knoten von t. Offensichtlich gilt: å ( ) I ( t ) = Tiefe ( p ) + 1 p P innerer Knoten von t

Durchschnittliche Suchpfadlänge Für einen Baum t ist die durchschnittliche Suchpfadlänge definiert durch: D(t) = I(t)/n, n = Anzahl innerer Knoten in t Frage: Wie groß ist D(t) im besten schlechtesten mittleren Fall für einen Baum t mit n inneren Knoten?

Interne Pfadlänge: Bester Fall Es entsteht ein vollständiger Binärbaum

Interne Pfadlänge: Schlechtester Fall

Zufällige Bäume Seien oBdA die Schlüssel {1,…,n} einzufügen. Sei ferner s1,…, sn eine zufällige Permutation dieser Schlüssel. Somit ist die Wahrscheinlichkeit P(s1 = k), dass s1 gerade den Wert k hat, genau 1/n. Wenn k der erste Schlüssel ist, wird k zur Wurzel. Dann enthalten der linke Teilbaum k – 1 Elemente (nämlich die Schlüssel 1,…,k - 1) und der rechte Teilbaum n – k Elemente (d.h. die Schlüssel k + 1,…,n).

Erwartete interne Pfadlänge EI(n) : Erwartungswert für die interne Pfadlänge eines zufällig erzeugten binären Suchbaums mit n Knoten Offensichtlich gilt: Behauptung: EI(n) 1.386n log2n - 0.846n + O(logn). EI ( ) = EI ( 1 ) = 1 1 n å EI ( n ) = ( EI ( k - 1 ) + EI ( n - k ) + n ) n k = 1 1 n n å å = n + ( EI ( k - 1 ) + EI ( n - k )) n k = 1 k = 1

å Beweis (1) å å 2 EI ( n + 1 ) = ( n + 1 ) + * EI ( k ) n + 1 und daher Aus den beiden letzten Gleichungen folgt 2 n å EI ( n + 1 ) = ( n + 1 ) + * EI ( k ) n + 1 k = å n ( n + 1 ) * EI ( n + 1 ) = ( n + 1 ) 2 + 2 * EI ( k ) k = n - å 1 n * EI = n 2 + 2 * EI ( k ) k = ( n + 1 ) EI ( n + 1 ) - n * EI ( n ) = 2 n + 1 + 2 * EI ( n ) ( n + 1 ) EI ( n + 1 ) = ( n + 2 ) EI ( n ) + 2 n + 1 2 n + 1 n + 2 EI ( n + 1 ) = + EI ( n ). n + 1 n + 1

Beweis (2) EI ( n ) = 2 ( n + 1 ) H - 3 n 1 1 H = 1 + + ... + 2 n 1 1 Durch vollständige Induktion über n kann man zeigen, dass für alle n 1 gilt: ist die n -te harmonische Zahl, die wie folgt Abgeschätzt werden kann: Dabei ist die so genannte Eulersche Konstante. EI ( n ) = 2 ( n + 1 ) H - 3 n n 1 1 H = 1 + + ... + n 2 n 1 1 H = ln n + g + + O ( ) n 2 n n 2 g = . 5772 ...

Beweis (3) 1 EI ( n ) = 2 n ln n - ( 3 - 2 g ) * n + 2 ln n + 1 + 2 g Damit ist Und daher 1 EI ( n ) = 2 n ln n - ( 3 - 2 g ) * n + 2 ln n + 1 + 2 g + O ( ) n EI ( n ) 2 ln n = 2 ln n - ( 3 - 2 g ) + + ... n n 2 2 ln n = * log n - ( 3 - 2 g ) + + ... log e 2 n 2 2 log 2 2 ln n = 10 * log n - ( 3 - 2 g ) + + ... log e 2 n 10 2 ln n » 1 . 386 log n - ( 3 - 2 g ) + + ... 2 n

Beobachtungen Suchen, Einfügen und Entfernen eines Schlüssels ist bei einem zufällig erzeugten binären Suchbaum mit n Schlüsseln im Mittel in O(log2 n) Schritten möglich. Im schlechtesten Fall kann der Aufwand jedoch Ω(n) betragen. Man kann nachweisen, dass der mittlere Abstand eines Knotens von der Wurzel in einem zufällig erzeugten Baum nur etwa 40% über dem Optimum liegt. Die Einschränkung auf den symmetrischen Nachfolger verschlechtert jedoch das Verhalten. Führt man in einem zufällig erzeugten Suchbaum mit n Schlüsseln n2 Update-Operationen durch, so ist der Erwartungswert für die durchschnittliche Suchpfadlänge lediglich Θ(n).

Typischer Binärbaum für eine zufällige Schlüsselsequenz

Resultierender Binärbaum nach n2 Updates

Strukturelle Analyse von Binärbäumen Frage: Wie groß ist die durchschnittliche Suchpfadlänge eines Binärbaumes mit N inneren Knoten, wenn man bei der Durchschnittsbildung jeden strukturell möglichen Binärbaum mit N inneren Knoten genau einmal zählt? Antwort: Sei IN = gesamte interne Pfadlänge aller strukturell verschiedenen Binärbäume mit N inneren Knoten BN = Anzahl aller strukturell verschiedenen Bäume mit N inneren Knoten Dann ist IN/BN =

Anzahl strukturell verschiedener Binärbäume

Gesamte interne Pfadlänge aller Bäume mit N Knoten Für jeden Baum t mit linkem Teilbaum tl und rechtem Teilbaum tr gilt:

Zusammenfassung Die durchschnittliche Suchpfadlänge in einem Baum mit N inneren Knoten (gemittelt über alle strukturell möglichen Bäume mit N inneren Knoten) ist: 1/N IN/BN