Na Introdução aos algoritmos de Cormen et al. , Seção 15.3 Elementos da programação dinâmica explica a memorização da seguinte forma:
Um algoritmo recursivo memorizado mantém uma entrada em uma tabela para a solução para cada subproblema. Cada entrada da tabela contém inicialmente um valor especial para indicar que a entrada ainda não foi preenchida. Quando o subproblema é encontrado pela primeira vez à medida que o algoritmo recursivo se desenrola, sua solução é calculada e depois armazenada na tabela. Cada vez que encontramos esse subproblema subseqüente, simplesmente procuramos o valor armazenado na tabela e o retornamos.
E acrescenta, como nota de rodapé:
Essa abordagem pressupõe que conhecemos o conjunto de todos os parâmetros possíveis do subproblema e que estabelecemos a relação entre as posições da tabela e os subproblemas. Outra abordagem mais geral é memorizar usando hash com os parâmetros do subproblema como chaves.
Existe algum problema conhecido de DP que exija (ou facilite) o armazenamento de valores memorizados em um dicionário, e não em uma matriz (multidimensional)?
Antecedentes: se isso é de alguma utilidade, a razão para esta pergunta é que estou tentando motivar a noção de árvores de pesquisa binária (auto-equilibradas) para pessoas que acabaram de ver programação dinâmica.