- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据 AIMA(人工智能:现代方法)中的 Norvig 的说法,深度优先算法并不完整(不会总是产生解决方案),因为在某些情况下,下降的子树将是无限的。
另一方面,如果分支因子不是无限的,则广度优先方法被认为是完整的。但这不是与 DFS 中子树无限的情况有些相同的“事物”吗?
如果树的深度是有限的,就不能说 DFS 是完整的吗?那么 BFS 是完整的而 DFS 不是完整的,因为 BFS 的完整性依赖于分支因子是有限的!
最佳答案
一棵树可以是无限的,而没有无限的分支因子。例如,考虑魔方的状态树。给定立方体的配置,移动的次数是有限的(我相信是 18 次,因为一次移动包括选择 9 个“平面”中的一个并将其旋转到两个可能的方向之一)。然而,树是无限深的,因为它完全有可能例如只来回交替旋转同一平面(永远不会有任何进展)。为了防止 DFS 这样做,通常会缓存所有访问过的状态(有效地修剪状态树)——您可能知道。但是,如果状态空间太大(或实际上无限大),这将无济于事。
我没有广泛研究人工智能,但我认为说 BFS 是完整的而 DFS 不是(毕竟,完整性只是一个在某处定义的术语)的基本原理是无限深的树比无限深的树更频繁地出现分支因子(因为具有无限分支因子意味着您有无限多的选择,我认为这并不常见 - 游戏和模拟通常是离散的)。即使对于有限树,BFS 通常会表现得更好,因为 DFS 很可能从错误的路径开始,在到达目标之前探索树的大部分。尽管如此,正如您所指出的,在有限树中,如果存在,DFS 最终会找到解决方案。
关于depth-first-search - 关于广度优先完整性与深度优先不完整性的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5067904/
所以我有一个有向图,我添加了顶点和边。该图表示机场和它们之间的航类。当我运行广度优先或深度优先搜索以找到两个机场之间的路径时,我第一次得到了正确的答案,但是当我第二次使用完全相同的机场运行它时,它找不
我是一名优秀的程序员,十分优秀!