前言
之前写过一篇博客图的搜索:https://blog.csdn.net/weixin_42178241/article/details/125956595
主要讲述了基础的BFS和DFS
深度优先搜索进阶
无非是加了剪枝而已
引入概念
解空间
解的组织形式
可以看作一个n元组{x1,x2,x3,x5,x5,……,xn-1,xn}
显约束
对解分量的取值范围的限定。
解空间
就是所有的解组成的空间,而我们要根据题目的约束条件找到符合的最优解,解空间大,搜索效率低,解空间小,搜索效率高。
搜索解空间
隐约束
剪枝函数,包含约束函数和限界函数。剪枝函数可以避免不必要的搜索,提高代码效率
术语
- 扩展结点: 一个正在生成孩子的节点
- 活结点:一个自身已生成,但孩子还没有全部生成的节点
- 死结点: 一个孩子都已生成的节点
- 子孙: 节点e的子树上的所有节点,都是e的祖孙
- 祖宗:从节点e到树根路径上的所有节点都是e的祖宗
剪枝方法
前面已提过剪枝的作用
剪枝的方法主要是通过题目给出的条件,去分析如何在一步时花费O(1)或O(log(n))的算法,去预判他的可行性
后继
跟多精彩文章尽情期待