记忆搜索

版权声明:转载请声明 https://blog.csdn.net/qq_40732350/article/details/83550445

算法导论学习-动态规划之记忆化搜索

一. 动态规划

动态规划(dynamic programming),与“分治思想”有些相似,都是利用将问题分 为子问题,并通过合并子问题的解来获得整个问题的解。于“分治”的不同之处在 于,对于一个相同的子问题动态规划算法不会计算第二次,其实现原理是将每一个计算过的子问题的值保存在一个表中。

二. 记忆化搜索

我们常见的动态规划问题,比如流水线调度问题,矩阵链乘问题等等都是“一步接着一步解决的”,即规模为 i 的问题需要基于规模 i-1 的问题进行最优解选择,通常的递归模式为DP(i)=optimal{DP(i-1)}。而记忆化搜索本质上也是DP思想,当子问题A和子问题B存在子子问题C时,如果子子问题C的最优解已经被求出,那么子问题A或者是B只需要“查表”获得C的解,而不需要再算一遍C。记忆化搜索的DP模式比普通模式要“随意一些”,通常为DP(i)=optimal(DP(j)), j < i。

参考:

http://mp.weixin.qq.com/s?__biz=MzA5MzY4NTQwMA==&mid=2651006855&idx=1&sn=b88467ce97e3f0eb18a39c19be26e3ab&chksm=8bad9470bcda1d665607c7cbc6c73523088bad94ce8f2dcd9e70c76a5b9029a1a724b01ecbdb&mpshare=1&scene=23&srcid=1030niUJOkGjRdphLRvyD6uK#rd

猜你喜欢

转载自blog.csdn.net/qq_40732350/article/details/83550445
今日推荐