En la Introducción a los algoritmos de Cormen et al. , La sección 15.3 Elementos de la programación dinámica explica la memorización de la siguiente manera:
Un algoritmo recursivo memorizado mantiene una entrada en una tabla para la solución de cada subproblema. Cada entrada de la tabla inicialmente contiene un valor especial para indicar que la entrada aún no se ha completado. Cuando el subproblema se encuentra por primera vez a medida que se desarrolla el algoritmo recursivo, su solución se calcula y luego se almacena en la tabla. Cada vez que nos encontramos con este subproblema, simplemente buscamos el valor almacenado en la tabla y lo devolvemos.
Y agrega, como nota al pie:
Este enfoque presupone que conocemos el conjunto de todos los parámetros de subproblemas posibles y que hemos establecido la relación entre las posiciones de la tabla y los subproblemas. Otro enfoque más general es memorizar mediante el uso de hashing con los parámetros del subproblema como claves.
¿Hay algún problema DP conocido que requiera (o facilite) almacenar valores memorizados en un diccionario en lugar de en una matriz (multidimensional)?
Antecedentes: si esto es de alguna utilidad, la razón de esta pregunta es que estoy tratando de motivar la noción de árboles de búsqueda binarios (autobalanceados) a las personas que acaban de ver programación dinámica.