关于记忆化搜索

1.记忆化搜索的思想

    记忆化搜索的思想是,在搜索过程中,会有很多重复计算,如果我们能记录一些状态的答案,就可以减少重复搜索量

2、记忆化搜索的适用范围

    根据记忆化搜索的思想,它是解决重复计算,而不是重复生成,也就是说,这些搜索必须是在搜索扩展路径的过程中分步计算的题目,也就是“搜索答案与路径相关”的题目,而不能是搜索一个路径之后才能进行计算的题目,必须要分步计算,并且搜索过程中,一个搜索结果必须可以建立在同类型问题的结果上,也就是类似于动态规划解决的那种。

也就是说,他的问题表达,不是单纯生成一个走步方案,而是生成一个走步方案的代价等,也就是说由于利益关系,走到(x,y)点后你必须往(a,b)点走才可以得到最大利益,因此,每一次经过(x,y)点,都会向(a,b)点走,所以我们可以直接将(x,y)点的状态记录一下,然后直接回溯就可以。

3、记忆化搜索的核心实现

     a. 首先,要通过一个表记录已经存储下的搜索结果,一般用二维数组。

     b. 在每一状态搜索的开始,如果这个位置已经访问过了,直接调用答案,回溯

    c .如果没有,则按正常方法搜索

4、记忆化搜索是类似于动态规划的,不同的是,它是倒做的“递归式动态规划”。

猜你喜欢

转载自www.cnblogs.com/Accepting/p/11269572.html