Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Balancierter Baum

Ein balancierter Baum (englisch oft self-balancing tree) ist in der Informatik ein besonderer Baum, der eine maximale Höhe von c ⋅ log ⁡ ( n ) …

Inhalt6 Abschnitte
  1. 1. Grundidee und Nutzen
  2. 2. Problem der Entartung
  3. 3. Balance als Gegenstrategie
  4. 4. Höhenbalance
  5. 5. Balance der Knotenzahl
  6. 6. Gewichtsbalance

Grundidee und Nutzen

Ein balancierter Baum ist in der Informatik ein Baum, der eine maximale Höhe von c · log(n) garantiert. Dabei ist n die Anzahl der Elemente im Baum und c eine Konstante, die nicht von n abhängt. Manche Autoren zählen auch Datenstrukturen dazu, die sicherstellen, dass die mittlere Höhe oder die mittlere Pfadlänge bei jedem Baum logarithmisch bleibt.

Balancierte Bäume sind besonders wichtig bei Suchbäumen. In einem Suchbaum hängen die wichtigsten Operationen, nämlich Suchen, Einfügen und Löschen eines Wertes, im schlechtesten Fall linear von der Höhe h des Baumes ab. Ihre Komplexität ist also O(h). Wenn die Höhe logarithmisch in der Anzahl der Elemente bleibt, können diese Operationen effizient bleiben.

Problem der Entartung

Jeder k-näre Baum mit n Knoten hat mindestens die Höhe h ≥ log_k(n + 1). Im Durchschnitt liegt die Höhe immer noch bei c · log_k n für eine konstante Zahl c. Daher haben Operationen auf einem Baum mindestens die Komplexität O(log_k n) = O(log n).

Das Problem entsteht, wenn ein Suchbaum ungleichmäßig wächst. Fügt man zum Beispiel eine große Menge bereits sortierter Daten in einen Suchbaum ein, kann der Baum im Extremfall die Höhe n erreichen. Dann haben auch spätere Einfüge-, Such- und Löschoperationen die Komplexität O(n). Ein solcher Baum ist praktisch zu einer einfach verketteten Liste entartet; damit gehen die Vorteile der Baumstruktur verloren.

Balance als Gegenstrategie

Balancierte Bäume wurden entwickelt, um diese Entartung zu verhindern. Sie garantieren eine Höhe von c · log(n). Dafür verlangt man besondere Eigenschaften des Baumes, aus denen folgt, dass die Höhe in jedem Fall logarithmisch bleibt.

Gleichzeitig müssen geeignete Such-, Einfüge- und Löschoperationen existieren, die diese Eigenschaften erhalten. Sinnvollerweise haben diese Operationen eine Komplexität von O(h), also abhängig von der Höhe des Baumes. Typisch ist, dass man zunächst die Operation eines allgemeinen Suchbaums ausführt und danach an der veränderten Stelle die Balance überprüft, anpasst und den Baum bei Bedarf neu balanciert. Diese Anpassungs- und Reparatur-Welle kann sich bis zur Wurzel fortsetzen.

Höhenbalance

Bei nach Höhe balancierten Bäumen wird für jeden Knoten kontrolliert, wie stark sich die Höhen des linken und rechten Unterbaums unterscheiden dürfen. Die Abweichung kann durch ein bestimmtes Verhältnis oder durch eine bestimmte Differenz begrenzt sein.

Ein Beispiel ist der Rot-Schwarz-Baum. Dort erhält jeder Knoten eine Farbe, Rot oder Schwarz. Der Baum ist bezüglich der schwarzen Knoten optimal höhenbalanciert, und der Anteil der roten Knoten ist begrenzt. Rot-Schwarz-Bäume sind eine binäre Realisierung der 2-3-4-Bäume, einer speziellen Variante der B-Bäume.

Ein weiteres Beispiel ist der AVL-Baum. In einem AVL-Baum gilt für jeden Knoten: Die Höhe seines linken Kindes weicht von der Höhe seines rechten Kindes um höchstens ±1 ab.

Balance der Knotenzahl

Bei der Balance der Knotenzahl betrachtet man, wie viele Blätter in den Unterbäumen liegen. Sei T ein Binärbaum mit linkem Unterbaum T_l und rechtem Unterbaum T_r. Dann heißt ρ(T) := |T_l| / |T| = 1 − |T_r| / |T| die Wurzelbalance von T. Dabei bezeichnet |T| die Anzahl der externen Blätter von T.

Ein Binärbaum heißt von beschränkter Balance α, wenn für jeden Unterbaum T' von T gilt: α ≤ ρ(T') ≤ 1 − α. Solche Binärbäume wurden 1972 von Reingold und Nievergelt eingeführt. In der englischen Literatur heißen sie auch „weight-balanced trees“ (WBTs).

Mehlhorn fasst alle Binärbäume mit beschränkter Balance α in der Menge BB(α) zusammen. Er beweist: Ist 1/4 < α ≤ 1 − √2/2 und T ein BB(α)-Baum, dann haben die Operationen Suche(a,T), Einfüge(a,T) und Lösche(a,T) jeweils die Zeitkomplexität O(log |T|).

Gewichtsbalance

Bei der Gewichtsbalance bedeutet das Gewicht eines Knotens die Wahrscheinlichkeit, mit der auf ihn zugegriffen wird. Wenn der Baum statisch ist, also Einfüge- und Löschoperationen keine Rolle spielen, kann der Bellman-Algorithmus verwendet werden. Er konstruiert einen optimalen gewichteten binären Suchbaum. Seine Effizienz bleibt auch dann erhalten, wenn die Gewichte nur ungefähr bekannt sind.

Bei einer extremen Verteilung der Zugriffswahrscheinlichkeiten kann allerdings selbst beim optimalen gewichteten binären Suchbaum im schlechtesten Fall eine lineare, also nicht mehr logarithmische, Abhängigkeit der Höhe von der Anzahl entstehen.

Wenn Einfüge- oder Entfernoperationen wichtig sind, müssen grundsätzlich auch die Gewichte gepflegt werden. Im Grenzfall betrifft das sogar das Aufsuchen, weil sich dabei zumindest die Zugriffsstatistik ändert. Diese Anforderungen und mehr leisten Splay-Bäume.

Weiterlesen

Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Baum (Datenstruktur) In der Informatik ist ein Baum (engl. tree) eine Datenstruktur und ein abstrakter Datentyp, mit dem sich hierarchische Strukturen abbilden lassen. Gewichteter binärer Suchbaum In der Informatik ist ein gewichteter binärer Suchbaum eine Ausprägung der abstrakten Datenstruktur binärer Suchbaum, bei der jedem Knoten neben Schlüssel … Suchbaum In der Informatik ist ein Suchbaum eine abstrakte Datenstruktur, bei der die Menge von Elementen, in der gesucht werden soll, in einer Baumstruktur … Komplexität (Informatik) Die Komplexität eines Problems ist zum Beispiel entscheidend für die Kryptographie und insbesondere für die asymmetrische Verschlüsselung: So verlässt sich … Liste (Datenstruktur) Eine verkettete Liste ist eine dynamische Datenstruktur, in der Datenelemente geordnet gespeichert sind. 2-3-4-Baum Ein 2-3-4-Baum (auch (2,4)-Baum) ist in der Informatik eine Datenstruktur, genauer ein B-Baum des minimalen Verzweigungsgrades 2, das heißt, er ist ein Baum … B-Baum Ein B-Baum (englisch B-tree) ist in der Informatik eine Daten- oder Indexstruktur, die häufig in Datenbanken und Dateisystemen eingesetzt wird. AVL-Baum Der AVL-Baum ist nach den sowjetischen Mathematikern Georgi Maximowitsch Adelson-Welski und Jewgeni Michailowitsch Landis benannt, die die Datenstruktur im Jahr … Binärer Suchbaum In der Informatik ist ein binärer Suchbaum eine Kombination der abstrakten Datenstrukturen Suchbaum und Binärbaum. Ein binärer Suchbaum, häufig abgekürzt … Zeitkomplexität Unter der Zeitkomplexität wird in der Informatik die Anzahl der ... Bubblesort zwar für große Datenmengen ein recht langsames Verfahren, eignet …