Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Balancierter Baum

aus Wikipedia, der freien Enzyklopädie

Einbalancierter Baum (englisch oftself-balancing tree) ist in derInformatik ein besondererBaum, der einemaximaleHöhe vonclog(n){\displaystyle c\cdot \log(n)} garantiert, wobein{\displaystyle n} die Anzahl der Elemente im Baum angibt undc{\displaystyle c} eine vonn{\displaystyle n} unabhängige Konstante ist. Manche Autoren rechnen auch Datenstrukturen dazu, die Vorkehrungen enthalten, dass die mittlere Höhe oderPfadlänge bei jedem Baum logarithmisch bleibt.

Problem: Entartung

[Bearbeiten |Quelltext bearbeiten]

Eine wichtige Anwendung von Bäumen in der Informatik ist deren Nutzung alsSuchbaum. Die Laufzeit der wichtigstenOperationen in einem Suchbaum (Suchen, Einfügen und Löschen eines Wertes) hängt im schlechtesten Fall linear von der Höhe des Baumes ab (die Operationen haben eineKomplexität vonO(h){\displaystyle {\mathcal {O}}(h)};h{\displaystyle h} Höhe des Baumes).

Jederk-näre Baum mitn{\displaystyle n} Knoten hat eine Höhe vonhlogk(n+1){\displaystyle h\geq \log _{k}(n+1)}; und im Durchschnitt immer nochclogk n{\displaystyle c\cdot \log _{k}\ n} für ein gewisses konstantesc{\displaystyle c}. So sind auch die Operationen auf einem Baum mindestens der KomplexitätO(logkn)=O(logn){\displaystyle {\mathcal {O}}(\log _{k}n)={\mathcal {O}}(\log n)}.

Beispiel für nicht balancierten Baum

Fügt man jedoch zum Beispiel einem Suchbaum eine große Menge bereits sortierter Daten ein, wächst dieser ungleichmäßig und hat im Extremfall eine Höhe vonn{\displaystyle n} mit der unerwünschten Folge, dass auch jede folgende Einfüge-, Such- und Löschoperation der KomplexitätO(n){\displaystyle {\mathcal {O}}(n)} ist.

Ein zu einer Liste entarteter Suchbaum

Das Ergebnis dieses einseitigen Einfügens wäre somit eineeinfach verkettete Liste; die Vorteile eines Baums wären somit zunichtegemacht

Siehe auch:O-Notation,Komplexität undErwartungswert

Gegenstrategie: Balance halten

[Bearbeiten |Quelltext bearbeiten]

Balancierte Bäume wurden entwickelt, um die Entartung zu verhindern und eine Höhe vonclog(n){\displaystyle c\cdot \log(n)} zu garantieren.

Dazu verfolgt man unterschiedliche Konzepte. Allen gemeinsam ist: Man fordert spezielle Eigenschaften des Baumes,

Man erhält eine solche Operation, indem man die Operation der allgemeinen Suchbäume verwendet und nach jeder Ausführung an der Stelle der Änderung die Balance überprüft, adjustiert und ggf. neu balanciert. Es kann vorkommen, dass sich diese Anpassungs- und Reparatur-Welle bis zur Wurzel hinauf fortsetzt.

Höhenbalance

[Bearbeiten |Quelltext bearbeiten]

Nach der Höhe balancierte Bäume stellen für jeden Knoten sicher, dass die Höhe des linken Unterbaumes und die Höhe des rechten Unterbaumes nur um ein bestimmtes Verhältnis oder eine bestimmte Differenz voneinander abweichen.

BeimRot-Schwarz-Baum wird jedem Knoten eine Farbe (Rot oder Schwarz) zugeordnet; der Baum ist bezüglich der schwarzen Knoten optimal höhenbalanciert und der Anteil der roten Knoten ist begrenzt. Diese Bäume stellen eine binäre Realisierung der2-3-4-Bäume dar, einer speziellen Variante derB-Bäume.

ImAVL-Baum gilt für jeden Knoten: Die Höhe seineslinken Kindes weicht von der seines rechten Kindes um höchstens ±1 ab.

Balance der Knotenzahl

[Bearbeiten |Quelltext bearbeiten]

SeiT{\displaystyle T} ein Binärbaum mit linkem UnterbaumTl{\displaystyle T_{l}} und rechtem UnterbaumTr{\displaystyle T_{r}}. Dann heißt

ρ(T):=|Tl||T|=1|Tr||T|{\displaystyle \rho (T):={\tfrac {|T_{l}|}{|T|}}=1-{\tfrac {|T_{r}|}{|T|}}}

dieWurzelbalance vonT{\displaystyle T}. Dabei bedeutet|T|{\displaystyle |T|} die Anzahl der(externen) Blätter vonT{\displaystyle T}.

Ein Binärbaum wirdvon beschränkter Balance α genannt, wenn für jeden UnterbaumT{\displaystyle T'} vonT{\displaystyle T} gilt:

αρ(T)1α{\displaystyle \alpha \leq \rho (T')\leq 1-\alpha } .

Diese Art Binärbäume wurden 1972 von Reingold und Nievergelt[1] eingeführt. In der englischen Literatur heißen sie auch „weight-balanced trees“ (WBTs).[2]

Mehlhorn versammelt alle Binärbäume mit beschränkter Balance α in der MengeBB(α) und beweist auf S. 181:
Sei14<α122{\displaystyle {\tfrac {1}{4}}<\,\alpha \,\leq 1-{\tfrac {\sqrt {2}}{2}}} undT ein BB(α)-Baum. Dann haben die OperationenSuche(a,T),Einfüge(a,T),Lösche(a,T) jeweils dieZeitkomplexitätO(log|T|){\displaystyle {\mathcal {\mathcal {O}}}(\log |T|)}.

Gewichtsbalance

[Bearbeiten |Quelltext bearbeiten]

Unter demGewicht eines Knotens sei hier die Wahrscheinlichkeit des Zugriffs auf ihn verstanden.

Ist der Baum statisch, spielen also Einfüge- oder Löschoperationen keine Rolle, so bietet sich derBellman-Algorithmus an, der einen optimalen gewichteten binären Suchbaum konstruiert. Seine Effizienz ist auch dann gegeben, wenn die Gewichte nur ungefähr bekannt sind.

Allerdings kann bei einerextremen Verteilung der Zugriffswahrscheinlichkeiten auch beimoptimalen gewichteten binären Suchbaum imworst case eine lineare (nicht mehr logarithmische) Abhängigkeit der Höhe von der Anzahl herauskommen.

Sind Einfüge- oder Entfernoperationen wichtig, so sind im Prinzip auch die Gewichte zu pflegen. Im Grenzfall sogar beim Aufsuchen, da sich hierbei zumindest die Zugriffsstatistik ändert.

Dies und noch mehr leisten dieSplay-Bäume.

Siehe auch

[Bearbeiten |Quelltext bearbeiten]

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Nievergelt, J. & Reingold, E. M. (1972) Binary search trees of bounded balance. In Proceedings of the Fourth Annual Acm Symposium on Theory of Computing. ACM, pp. 137–142.
  2. Y. Hirai, K. Yamamoto:Balancing weight-balanced trees. In:J. Functional Programming. 21. Jahrgang,Nr. 3, 2011,S. 287,doi:10.1017/S0956796811000104 (yoichihirai.com [PDF]). 

Literatur

[Bearbeiten |Quelltext bearbeiten]
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Balancierter_Baum&oldid=243407080
Kategorie:
Versteckte Kategorie:

[8]ページ先頭

©2009-2025 Movatter.jp