zoukankan      html  css  js  c++  java
  • 深搜剪枝小结

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

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

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

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

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

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

    剪枝技巧:

    1、优化搜索顺序;

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

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

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

    5、记忆化;

  • 相关阅读:
    unittest中常用的几个断言
    unittest中忽略某些测试用例的执行
    unittest测试套件
    unittest中的Empty suite错误
    找水王
    SCRUM冲刺day04
    SCRUM冲刺day03
    SCRUM冲刺day02
    SCRUM冲刺day01
    学习进度条week13
  • 原文地址:https://www.cnblogs.com/uncklesam7/p/9406516.html
Copyright © 2011-2022 走看看