我知道仅 BFS 就可以在未加权图中找到最短路径,但我也在几个网站上读到,人们声称 BFS 或 DFS 可以做到这一点。我只是想确认这些可能是错误,并且只有 BFS 可以做到这一点(即使在快速进行谷歌搜索后我也不完全有信心)。如果我不正确,有人可以解释一下 DFS 如何给出最短路径吗?
DFS 不一定会产生无向图中的最短路径。 BFS 在这里是正确的选择。
举个例子,考虑一个通过取三角形的角并将它们连接起来而形成的图形。如果您尝试使用 DFS 找到从一个节点到另一个节点的最短路径,那么您将得到错误的答案,除非您沿着直接连接起始节点和目标节点的边进行操作。
正如 @nhahtdh 下面所指出的,DFS 有一个变体,称为迭代深化其中,您以最大深度 1、然后是 2、然后是 3 等运行 DFS,直到找到目标。这将始终找到最短路径,并且使用比 BFS 更少的内存。
希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)