栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Dijkstra的算法具有反向跟踪?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dijkstra的算法具有反向跟踪?

Dijkstra算法始终会找到最短路径(在没有负边的图中),并且永远不会回溯。很容易对此进行推理。

始终选择最小值

考虑一个节点及其边缘(它只是大图的一部分):

    6   _ 3    |  /  14| /9    |/    1-------2        7

Dijkstra的算法将开始选择边

1-2 (7)
。我这样做是因为这是到目前为止所看到的最低要求。然后将最短路径的值设置为
2
as
7
。它永远不会再更改此值,因为从
1
to的任何其他路径都
2
必须更大(因为它必须以edge
1-3 (9)
或之一开始
1-6 (14)
)。

将已知节点视为单个节点

推断接下来会发生什么的一种方法是假装算法将“已知”节点合并为一个节点。在此示例中,一旦

2
选择了最短路径,它将合并
1
2
作为单个逻辑节点。所有走出的边
2
均增加
7
(到的最短路径
2
)。下一步是选择从“超级节点”传出的最小边缘。然后,推理与第一步相同:

    6   _ 3    |  /  14| /9    |/   1,2-------4        22

在此状态下,下一个选择的边为

1,2-3(9)
3
设置为的最短路径,
9
现在考虑将其所有边缘选择下一个最小值(请注意边缘的更新方式
6
以及如何
4
更新):

    6    |  11|    |   1,2,3----4         20


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/634155.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号