繁体   English   中英

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

[英]Depth-First Search vs. Breadth-First Search

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

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

DFS而非BFS:Tarjan带来了许多算法,例如,强连接的组件和双连接的组件。

最简单的示例是:找到给定图中从顶点A到顶点B必须经过的最小边数。 可以使用BFS轻松解决此问题,但不能使用DFS解决。 但是,通常使用DFS解决在图中找到简单循环的问题。

是的:这是BFS可以解决的一个问题,而DFS不能解决:

游戏规则

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

问题

搜索以查看该游戏是否有可能永远消失。

BFS方法

  • 尝试所有1层游戏
  • 尝试所有2层游戏
  • ...
  • 尝试所有9层游戏(解决方案之一)

DFS方法

  • 尝试所有以玩家一开始跳过比赛的游戏
  • 尝试所有以上述开头的游戏,然后让两个玩家跳过回合
  • 尝试所有以上方开头的游戏,然后让一名玩家跳过回合
  • ...
  • 宇宙热死

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM