目录
DFS:剪枝
剪枝:把不会产生答案的或不必要的枝条“剪掉”。
剪枝的关键:剪什么枝、在哪里减。
剪枝是搜索常用的优化手段,常常能把指数级的复杂度,优化到近似多项式的复杂度。
DFS:有哪些剪枝方法
- 可行性剪枝:对当前状态进行检查,如果当前条件不合法就不再继续,直接返回。
- 搜索顺序剪枝:搜索树有多个层次和分支,不同的搜索顺序会产生不同的搜索树形态。
- 最优性剪枝:在最优化问题的搜索过程中,如果当前花费的代价已超过前面搜索到的最优解,那么本次搜索已经没有继续进行下去的意义,停止对当前分支的搜索。
- 排除等效冗余:搜索的不同分支,最后的结果是一样的,那么只搜一个分支就够了。
- 记忆化搜索:在递归的过程中&