深度优先搜索与广度优先搜索



是否有任何图形问题可以通过DFS或BFS解决,但不能通过其他解决?也就是说,是否存在可以通过BFS解决但不能通过DFS解决的图问题,反之亦然?

BFS而非DFS:未加权的最短路径。

DFS而不是BFS:由于Tarjan的原因,有很多算法,例如强连通组件和双连通组件。

最简单的例子是:在给定的图中,找到从顶点A到顶点B必须遍历的最小边数。使用BFS可以很容易地解决这一问题,但使用DFS则无法解决。然而,在图中查找简单循环通常使用DFS来解决。

是的:有一个这样的问题可以通过BFS解决,但不能通过DFS解决:

游戏规则

  • 板为3x3网格
  • 玩家可以选择任何可用空间并放置X
  • 玩家二可以选择任何可用空间并放置O
  • 当任一玩家连续有三个类似的符号时,游戏结束
  • 如果没有空位,游戏结束
  • 玩家可以选择跳过回合

问题

搜索以查看此游戏是否有可能结束。

BFS方法

  • 尝试所有1次游戏
  • 尝试所有两次游戏
  • 尝试所有9层游戏(其中一个是解决方案)

DFS方法

  • 尝试所有以玩家一跳过回合开始的游戏
  • 尝试以上开头的所有游戏,然后玩家二跳过回合
  • 尝试以上开头的所有游戏,然后玩家一跳过回合
  • 宇宙的热死

最新更新