首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索算法(BFS和DFS)也能得到最短路径吗?

搜索算法(BFS和DFS)也能得到最短路径吗?
EN

Stack Overflow用户
提问于 2018-10-28 10:00:21
回答 1查看 1.6K关注 0票数 1

在我的人工智能课程中,我学习了BFS、DFS和UCS。在我的算法课程中,我学习了Dijkstra的算法。

我们是否仅应用BFS和DFS之类的搜索算法来确定某个特定节点是否存在or,它是否也给出了像Dijkstra算法这样的最短路径?

EN

回答 1

Stack Overflow用户

发布于 2018-10-28 10:45:17

Dijkstra的算法只是BFS的一个推广- BFS在概念上与Dijkstra的相同,如果所有的边权都等于1。

BFS (广度优先搜索)将为您提供最短的路径(如最低成本),如果所有边缘权重等于1,但其他情况下不会(必然),因为它探索节点的顺序根本不依赖于边缘权重。

DFS (深度优先搜索)并不一定会给你最短的路径,因为它一次只探索一条任意的路径--也许你很幸运,这条路径是最短的,但通常不会。它会给出树中最短的路径,但这仅仅是因为任何给定节点都只有一条路径。

UCS (统一成本搜索) works very similarly to Dijkstra's algorithm也将返回最短路径,但返回到单个目标节点而不是所有其他节点。

示例

对于下面的图表,假设我们从A开始,到E。

代码语言:javascript
复制
    A 1 C 1 D
    O---O---O
100 |       | 1
    O-------O
    B  100  E

BFS和DFS都可以或将返回更昂贵的路径( and = 200而不是and= 3).

BFS将访问B( and )和C( and ),然后访问E( and )和D(And).此时,它将停止,因为它已经达到目标,并返回较长的路径A。

DFS可以从任意访问B或C开始,如果它首先访问C,它将返回最短的路径and,但如果它首先访问B,它将探索and并返回这条较长的路径。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53030292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档