In der Einführung in Algorithmen von Cormen et al. Wird in Abschnitt 15.3 Elemente der dynamischen Programmierung das Speichern wie folgt erläutert:
Ein gespeicherter rekursiver Algorithmus verwaltet einen Eintrag in einer Tabelle zur Lösung jedes Teilproblems. Jeder Tabelleneintrag enthält anfangs einen speziellen Wert, der angibt, dass der Eintrag noch ausgefüllt werden muss. Wenn das Unterproblem zum ersten Mal auftritt, während sich der rekursive Algorithmus entfaltet, wird seine Lösung berechnet und dann in der Tabelle gespeichert. Bei jedem weiteren Auftreten dieses Unterproblems wird einfach der in der Tabelle gespeicherte Wert nachgeschlagen und zurückgegeben.
Und es fügt als Fußnote hinzu:
Dieser Ansatz setzt voraus, dass wir die Menge aller möglichen Unterproblemparameter kennen und die Beziehung zwischen Tabellenpositionen und Unterproblemen hergestellt haben. Ein anderer, allgemeinerer Ansatz besteht darin, sich zu merken, indem Hashing mit den Unterproblemparametern als Schlüssel verwendet wird.
Gibt es bekannte DP-Probleme, bei denen es erforderlich ist (oder einfacher ist), gespeicherte Werte in einem Wörterbuch statt in einem (mehrdimensionalen) Array zu speichern?
Hintergrund: Wenn dies von Nutzen ist, liegt der Grund für diese Frage darin, dass ich versuche, die Vorstellung von (selbstausgeglichenen) binären Suchbäumen für Personen zu motivieren, die gerade dynamische Programmierung erlebt haben.