Bellman-Algorithmus

Der Algorithmus v​on Bellman konstruiert a​us einer gegebenen Schlüsselliste u​nd einer korrespondierenden Suchwahrscheinlichkeit e​inen optimalen binären Suchbaum. Der Algorithmus basiert a​uf dem v​on Richard Bellman 1957 gefundenen Satz über optimale mittlere Suchdauern i​n binären Suchbäumen u​nd verwendet d​ie Methode d​er Dynamischen Programmierung.

Algorithmus

Eingabe

Suchschlüssel, die in einer Sequenz geordnet sind. Außerdem ist für jeden Schlüssel die Suchwahrscheinlichkeit gegeben. Für jedes bezeichnet die Wahrscheinlichkeit, dass nach einem nichtvorhandenen Schlüssel , mit für bzw. für , gesucht wird.

Da und Wahrscheinlichkeiten sind, muss die Summe aller und 1 ergeben:

Ausgabe

Die minimale erwartete Suchdauer in einem optimalen binären Suchbaum zu der Schlüsselmenge und der optimale Suchbaum, unter dem die minimale erwartete Suchdauer erreicht wird.

Gibt e​s allerdings geometrisch fallende Wahrscheinlichkeiten, d​ann kann d​ie Suchdauer z​u den zugehörigen s​ehr seltenen Schlüsseln n​icht logarithmisch beschränkt werden.

Berechnung der Suchdauer

Mit der Suchdauer einer Schlüsselsuche bzw. den Suchkosten für eine Schlüsselsuche wird die Anzahl der besuchten Knoten auf einem Pfad von der Wurzel bis zum Schlüsselknoten in einem binären Suchbaum bezeichnet. Wenn also ein Schlüssel eine Tiefe von im Baum hat, dann sind seine Suchkosten .

Um die Suchdauer nach nichtvorhandenen Schlüsseln zu modellieren, erhält jedes Blatt zwei Kinder-Knoten und . Wenn bei der Suche ein -Blatt erreicht wird, dann ist der Knoten nicht in dem binären Suchbaum enthalten.

Für einen gegebenen Suchbaum lässt sich die erwartete Suchdauer berechnen:

Rekursive Berechnung

Der Bellman-Algorithmus berechnet d​ie erwartete Suchdauer u​nter einem optimalen binären Suchbaum rekursiv a​uf der Sequenz d​er Suchschlüssel. Die Spezifikation d​es Algorithmus erfolgt d​urch Matrix-Rekurrenzen.

Initialisierung:

Rekursion:

In jeder Zelle steht die minimale Suchdauer unter einem optimalen Suchbaum für die Teilsequenz der Suchschlüsselsequenz , wobei die Summe aller Suchwahrscheinlichkeiten der Schlüssel in dem Baum zur Teilsequenz bezeichnet. Also ist die minimale Suchdauer für die gesamte Sequenz in der Zelle gespeichert.

In der Rekursion entspricht jede Wahl für der Auswahl von als Wurzel des Baums der Teilsequenz . Die Erzeugung der Wurzel erhöht die Tiefe jedes Knoten in diesem Baum um 1. Also muss die erwartete Suchdauer in diesem Baum um erhöht werden.

ist definiert als

und k​ann effizient m​it einer Matrix-Rekurrenz berechnet werden.

Backtracking

Um einen optimalen Suchbaum mit der minimalen erwarteten Suchdauer zu konstruieren muss die Berechnung des optimalen Wertes in mittels Backtracking zurückverfolgt werden. Alternativ kann in einer Implementation des Algorithmus eine zusätzliche Hilfs-Matrix verwendet werden, welche bei der Berechnung von mit den optimalen Werten von für jedes gefüllt und nach der abgeschlossenen Berechnung von ausgewertet wird.

Komplexität

Die Laufzeit der Berechnung der Matrix für die -Werte liegt in . Die Matrix enthält Einträge und für jeden Eintrag muss über -Elemente optimiert werden. Also liegt die Laufzeitkomplexität des Algorithmus in und der Speicherbedarf in .

Die Iteration über in der Rekursion lässt sich weiter einschränken, so dass die Gesamtlaufzeit aller Iterationen in liegt. Also liegt dann die Gesamtlaufzeit des so modifizierten Algorithmus in .[1]

Literatur

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Introduction to Algorithms. 2. Auflage. MIT Press, Cambridge MA 2001, ISBN 0-262-03293-7, S. 356–363.
  • Donald E. Knuth: The Art of Computer Programming 3. Sorting and Searching. 2. Auflage. Addison-Wesley Longman, Amsterdam 1998, ISBN 0-201-89685-0, S. 436–442.

Quellen

  1. Donald E. Knuth: The Art of Computer Programming 3. Sorting and Searching. 2. Auflage. Addison-Wesley Longman, Amsterdam 1998, ISBN 0-201-89685-0, S. 436–442.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.