Gewichteter binärer Suchbaum

Aus testwiki
Zur Navigation springen Zur Suche springen
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 pi=(1q)qi für i=0,1,... mit 0<q<1 gilt i0pi=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 i0(i+1)pi=1/(1q), 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>12 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-t häufigsten Wortes ungefähr

αii1,12/i1i1,12.

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

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:={x1<x2<...<xn} eine Schlüsselmenge aus einem total (quasi)geordneten Reservoir R von Schlüsseln, seien ferner pi bzw. qj Häufigkeiten, mit denen auf das Element xR (oder Äquivalenzklasse resp. Intervall) zugegriffen wird, wobei xxi für 1in resp. xj<x<xj+1 für 0jn. (Dabei seien x0:= und xn+1:=+ zusätzliche nicht zu R gehörende Elemente mit der üblichen Bedeutung.) Das (2n+1)-Tupel

𝔷:=(p1p2pnq0q1q2qn)

heißt Zugriffsverteilung[1] für die Menge X, wenn alle pi,qj0 sind. 𝔷 wird zur Zugriffswahrscheinlichkeitsverteilung, wenn pi+qj=1 ist.

Sei nun T ein Suchbaum für die Menge X mit einer Zugriffsverteilung 𝔷, ferner sei aiT die Tiefe des (inneren) Knotens xi und bjT die Tiefe des Blattes (xj,xj+1) (s. Abb. 4; jeweils Binärer Suchbaum#Terminologie der Abb. 1B). Wir betrachten die Suche nach einem Element xR. Wenn x=xi, dann vergleichen wir x mit aiT+1 Elementen im Baum. Wenn xj<x<xj+1, dann vergleichen wir x mit bjTElementen im Baum. Also ist

S𝔷T:=i=1npi(aiT+1)+j=0nqjbjT

die (mit der Zugriffsverteilung 𝔷) gewichtete Pfadlängensumme des Baumes T; ist 𝔷 eine Wahrscheinlichkeitsverteilung, dann ist S𝔷T die gewichtete Pfadlänge, die gewichtete Suchtiefe oder die mittlere Anzahl der benötigten Vergleiche. Die Abb. 4 zeigt einen Suchbaum T, der mit einem Wert von S𝔷T=2 optimal für die Zugriffsverteilung 𝔷:=124(1330400310) ist.

Literatur

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

Einzelnachweise

  1. nach #Mehlhorn a. a. O. S. 147

Vorlage:Normdaten

en:Binary search tree#Optimal binary search trees