深搜剪枝小结

深度优先搜索,俗称深搜,即DFS,是一个常用并且基础的算法和思想。但是搜索算法的时间复杂度往往很大,是OI不被允许的。所以对于深搜的优化最实用和基础的一个方法就是剪枝

三原则:1、正确性;2、准确性;3、高效性;

正确性,顾名思义就是不能把通向正确的路径剪去。

准确性,则是尽可能多的剪去不会通向正确的路径,也就是判断条件更严格。

高效性,简单来说就是判断操作更更高效才行。

这就带来一个矛盾,就是判断条件的严格度和判断操作的效率的平衡。不过一般来讲,我们更注重判断条件的严格度之后再考虑优化判断操作(预处理什么的)。

剪枝技巧:

1、优化搜索顺序;

2、排除等效冗余;(即如果在递归树上有两个节点的状态一模一样,只不过走过的路不一样,那么在有些题目中可以只搜索一条)

3、可行性剪枝(上下界剪枝);在做可行性剪枝的时候我们设计的剪枝方案要“看的远",及时检查当时状态看是否可以达到递归条件。

4、最优性剪枝;当前花费加上预期的最小花费已经劣于搜索到的答案,直接返回。

5、记忆化;

原文地址:https://www.cnblogs.com/uncklesam7/p/9406516.html