Gewichteter binärer Suchbaum

Ein binärer Suchbaum mit 2 Knoten und Gewichtsangaben (rot)

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 ergibt 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.

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 p i = ( 1 q ) q i {\displaystyle p_{i}=(1-q)q^{i}} für i = 0 , 1 , . . . {\displaystyle i=0,1,...} mit 0 < q < 1 {\displaystyle 0<q<1} gilt i 0 p i = 1 {\displaystyle \textstyle \sum _{i\geqq 0}p_{i}=1} . Ein Binärbaum sei wie folgt rekursiv aufgebaut: Derjenige Schlüssel wird zu einem der beiden Söhne und zur Wurzel des nächsten Teilbaums gemacht, der das größte verbleibende Gewicht hat. Da es danach keinen Schlüssel auf seiner Seite mehr gibt, bleibt der andere Sohn leer. Ein solcher Binärbaum hat die konstante gewichtete Pfadlänge i 0 ( i + 1 ) p i = 1 / ( 1 q ) {\displaystyle \textstyle \sum _{i\geqq 0}(i+1)p_{i}=1/(1-q)} , obwohl er einer linearen Liste entspricht. Passt nun die Anordnung der Schlüssel genau zu diesem Binärbaum (so dass er ein binärer Suchbaum ist), so ist er bei q > 1 2 {\displaystyle q>{\tfrac {1}{2}}} optimal, denn ein Herabstufen der Wurzel eines Teilbaums verschlechtert den Mittelwert. Es gibt dann also sehr seltene Suchanfragen, die beim optimalen gewichteten binären Suchbaum in nur linearer Zeit beantwortet werden.

Natürliche Vokabulare

Im Englischen ist die Wahrscheinlichkeit für das Vorkommen des i {\displaystyle i} -t häufigsten Wortes ungefähr

α i i 1 , 12 / i 1 i 1 , 12 {\displaystyle \alpha _{i}\approx i^{-1{,}12}/\sum _{i\geqq 1}i^{-1{,}12}} .

Die gewichtete Pfadlänge eines optimalen binären Suchbaums für alle englischen Wörter ergibt sich zu ungefähr 10 , 2 {\displaystyle 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“.

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

Abb. 4: (Optimaler) binärer Suchbaum mit Gewichten (rot).

Sei X := { x 1 < x 2 < . . . < x n } {\displaystyle X:=\left\{x_{1}<x_{2}<...<x_{n}\right\}} eine Schlüsselmenge aus einem total (quasi)geordneten Reservoir R {\displaystyle R} von Schlüsseln, seien ferner p i {\displaystyle p_{i}} bzw. q j {\displaystyle q_{j}} Häufigkeiten, mit denen auf das Element x R {\displaystyle x\in R} (oder Äquivalenzklasse resp. Intervall) zugegriffen wird, wobei x x i ¯ {\displaystyle x\in {\overline {x_{i}}}} für 1 i n {\displaystyle 1\leqq i\leqq n} resp. x j < x < x j + 1 {\displaystyle x_{j}<x<x_{j+1}} für 0 j n {\displaystyle 0\leqq j\leqq n} . (Dabei seien x 0 := {\displaystyle x_{0}:=-\infty } und x n + 1 := + {\displaystyle x_{n+1}:=+\infty } zusätzliche nicht zu R {\displaystyle R} gehörende Elemente mit der üblichen Bedeutung.) Das ( 2 n + 1 ) {\displaystyle (2n+1)} -Tupel

z := ( p 1 p 2 p n q 0 q 1 q 2 q n ) {\displaystyle {\mathfrak {z}}:=\left({\begin{smallmatrix}&p_{1}&&p_{2}&&\cdots &&p_{n}&\\q_{0}&&q_{1}&&q_{2}&&\cdots &&q_{n}\end{smallmatrix}}\right)}

heißt Zugriffsverteilung[1] für die Menge X {\displaystyle X} , wenn alle p i , q j 0 {\displaystyle p_{i},q_{j}\geqq 0} sind. z {\displaystyle {\mathfrak {z}}} wird zur Zugriffswahrscheinlichkeitsverteilung, wenn p i + q j = 1 {\displaystyle \textstyle \sum p_{i}+\sum q_{j}=1} ist.

Sei nun T {\displaystyle T} ein Suchbaum für die Menge X {\displaystyle X} mit einer Zugriffsverteilung z {\displaystyle {\mathfrak {z}}} , ferner sei a i T {\displaystyle a_{i}^{T}} die Tiefe des (inneren) Knotens x i {\displaystyle x_{i}} und b j T {\displaystyle b_{j}^{T}} die Tiefe des Blattes ( x j , x j + 1 ) {\displaystyle (x_{j},x_{j+1})} (s. Abb. 4; jeweils Binärer Suchbaum#Terminologie der Abb. 1B). Wir betrachten die Suche nach einem Element x R {\displaystyle x\in R} . Wenn x = x i {\displaystyle x=x_{i}} , dann vergleichen wir x {\displaystyle x} mit a i T + 1 {\displaystyle a_{i}^{T}+1} Elementen im Baum. Wenn x j < x < x j + 1 {\displaystyle x_{j}<x<x_{j+1}} , dann vergleichen wir x {\displaystyle x} mit b j T {\displaystyle b_{j}^{T}} Elementen im Baum. Also ist

S z T := i = 1 n p i ( a i T + 1 ) + j = 0 n q j b j T {\displaystyle S_{\mathfrak {z}}^{T}:=\sum _{i=1}^{n}p_{i}(a_{i}^{T}+1)+\sum _{j=0}^{n}q_{j}b_{j}^{T}}

die (mit der Zugriffsverteilung z {\displaystyle {\mathfrak {z}}} ) gewichtete Pfadlängensumme des Baumes T {\displaystyle T} ; ist z {\displaystyle {\mathfrak {z}}} eine Wahrscheinlichkeitsverteilung, dann ist S z T {\displaystyle S_{\mathfrak {z}}^{T}} die gewichtete Pfadlänge, die gewichtete Suchtiefe oder die mittlere Anzahl der benötigten Vergleiche. Die Abb. 4 zeigt einen Suchbaum T {\displaystyle T} , der mit einem Wert von S z T = 2 {\displaystyle S_{\mathfrak {z}}^{T}=2} optimal für die Zugriffsverteilung z := 1 24 ( 1 3 3 0 4 0 0 3 10 ) {\displaystyle {\mathfrak {z}}:={\tfrac {1}{24}}\left({\begin{smallmatrix}&1&&3&&3&&0&\\4&&0&&0&&3&&10\end{smallmatrix}}\right)} ist.

Literatur

  • Kurt Mehlhorn: Datenstrukturen und effiziente Algorithmen. Teubner, Stuttgart 1988, ISBN 3-519-12255-3.

Einzelnachweise

  1. nach #Mehlhorn a. a. O. S. 147
Normdaten (Sachbegriff): GND: 4157275-0 (lobid, OGND, AKS)  | | Anmerkung: Ansetzungsform GND: „Gewichteter Binärbaum“.