带记忆的lazy evaluation 与 动态规划

lazy evaluation为了提高效率,一般提供一个结构来保存结果,当且仅当输入的值没有eval过才进行求值,否则是返回保存的结果。这个特性很适合用来实现动态规划。

在动态规划中,最主要的是要找出问题的最优子结构,最常用的实现方法就是使用表格来记录所有子结构的结果。这种使用表格来记录子结构的结果的技术如果使用lazy evaluation来实现的话,非常简单。只要写出动态规划的递归式子,直接用递归式求解就可以得到最优解了。由于lazy evaluation中带有记忆,每个子结构只能被求值一次,从效率的角度来说是非常合算的。表格被求值器隐式的维护着。最近读SICP,发现带记忆的lazy evaluation有这般好处。

原文地址:https://www.cnblogs.com/mathlover/p/2708873.html