- 5
- 0
- 约4千字
- 约 22页
- 2017-04-10 发布于上海
- 举报
大家一起來广搜
谢家晔大家一起来广搜
从DFS说起……
广度优先搜索与深度优先搜索在控制结构和产生系统上都很相似(控制结构——状态搜索树;产生系统——状态转移规则)。不同点在于对节点的扩展顺序不同,因而采用了不同的数据结构实现。因此,这两种算法在性能和适用范围上有较大区别。
如可行解问题用深搜来解决,而最优解问题用广搜来解决。
另外,由于深度优先搜索一般用递归实现,调用栈的层数限制也在一定程度上限制了适用的问题规模。
以下就给大家介绍一下广度优先搜索算法及其优化。
主要内容
广搜的基本概念
广搜的基本操作(队列实现)
广搜的优化
广搜的应用
搜索的基本概念
状态
对问题在某一时刻进展情况的数学描述。我们将一个状态简化为一个节点处理。
状态转移
问题从一种状态到转移到另一种(或几种)状态的操作。
状态空间
问题可以处于的所有状态。
搜索树
将初始状态作为根节点,由状态转移操作扩展出其他节点作为其子节点,并对其他节点按一定规则重复同样的操作,得到的一个树结构。
广度优先搜索的思想
刚才我们在搜索树中提到“对其他节点按一定规则重复同样的操作”。
在广搜中,这个规则即为按层遍历。
即:从根节点(第0层)开始,依次扩展完该层的所有节点,再扩展下一层的节点。
由此可知,广搜可以用来解决最
原创力文档

文档评论(0)