- 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 und anderen Daten ein Gewicht (Zugriffswahrscheinlichkeit) zukommt. (Der Vollständigkeit halber kommt ein solches auch seinen Nachbarintervallen zu.)
Zu optimieren ist die gewichtete Pfadlänge des Baums.
Das Gewicht ist an den Schlüssel gebunden, somit macht das Zulassen von mehreren Objekten („Duplikaten“) mit gleichem Schlüssel keinen Sinn.
Sind Gewichte überhaupt nicht bekannt oder sind sie untereinander praktisch gleich, dann sind höhen-balancierte Bäume eine gute Wahl. Ein Beispiel ist der AVL-Baum, der als optimiert auf die gewichtete Pfadlänge bei Einheitsgewichten angesehen werden kann.
Inhaltsverzeichnis
Beispiele
Ist der Baum statisch, spielen also Einfüge- oder Entfernoperationen keine Rolle, so bietet sich der Bellman-Algorithmus an, der einen optimalen gewichteten binären Suchbaum konstruiert. Seine Effizienz ist auch dann gegeben, wenn die Gewichte nur ungefähr bekannt sind.
Geometrische Verteilung
Bei der geometrischen Gewichtsverteilung pi = (1 − q)qi für i = 0,1,... mit 0 < q < 1 haben wir und die gewichtete Pfadlänge ist konstant und unabhängig von der Anzahl der Knoten. Allerdings gibt es dann sehr seltene Suchanfragen, die in nur linearer Zeit beantwortet werden.
Natürliche Vokabulare
Im Englischen ist die Wahrscheinlichkeit für das Vorkommen des i-t häufigsten Wortes ungefähr
- .
Die gewichtete Pfadlänge eines optimalen binären Suchbaums für alle englischen Wörter ergibt sich zu ungefähr 10,2.
Dynamische Gewichte
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.
Mehlhorn beschreibt „Nahezu optimale binäre Suchbäume“. Ferner führt er BB[α]-Bäume ein, die sich ebenfalls nicht weit vom Optimum entfernen.
Bei den Splay-Bäumen werden trotz völlig anderer Vorgehensweise ebenfalls die am häufigsten angesprochenen Knoten in die Nähe der Wurzel gespült.
Zugriffsverteilung und gewichtete Pfadlänge
Sei eine Schlüsselmenge aus einem total geordneten Reservoir R von Schlüsseln, sei pi resp. qj die Wahrscheinlichkeit, dass auf das Element zugegriffen wird, wobei x = ki resp. kj < x < kj + 1 für resp. . (Dabei sind und zusätzliche nicht zu R gehörende Elemente mit der üblichen Bedeutung.) Das (2n + 1)-Tupel ζ: = (q0,p1,q1,...,pn,qn) heißt Zugriffsverteilung für die Menge S, wenn alle und .
Sei nun T ein Suchbaum für die Menge S mit obiger Zugriffsverteilung ζ, sei die Tiefe des Knotens ki und die Tiefe des Blattes (kj,kj + 1) (s. Abb.). Wir betrachten die Suche nach einem Element . Wenn x = ki, dann vergleichen wir x mit Elementen im Baum. Wenn kj < x < kj + 1, dann vergleichen wir x mit Elementen im Baum. Also ist
- die (mit der Zugriffsverteilung ζ) gewichtete Pfadlänge des Baumes T.
Siehe auch
- Binärer Suchbaum
- Bellman-Algorithmus (Konstruktion des optimalen gewichteten binären Suchbaums)
- Splay-Baum
Literatur
- Kurt Mehlhorn Datenstrukturen und effiziente Algorithmen Teubner Stuttgart 1988, ISBN 3-519-12255-3.
Wikimedia Foundation.