【问题标题】:What would be the next vertex when the edges have the same weights in dijkstra algorithm?当边在 dijkstra 算法中具有相同的权重时,下一个顶点是什么?
【发布时间】:2020-06-30 01:12:01
【问题描述】:
   2    3
A____B______C
|           |
|3          |5
|           |
D___________E
       5

当图形如上图时,我想找到从 A 到 E 的最短路径

首先我从 A 开始,将(B 和 D)的距离更新为(2 和 3)。 然后,边缘的最小距离是 2,所以我搬到了 B。

我的问题是哪个是下一个顶点,因为 A-D 的距离与 B-D 的距离相同...

【问题讨论】:

  • 下一个顶点是 D。因为距离 AD 是 3。距离 AC 是 2+3 = 5。
  • 我必须选择未访问的&&最小距离顶点而不是最小加权边吗?
  • 查看所有发布的步骤。

标签: algorithm dijkstra


【解决方案1】:

这里是计算距离 AE 的所有步骤。您可以将每个距离初始化为Infinity,并以distance AA = 0 开头。在每一步中,选择与 A 距离最小的候选者。如果尚未访问过邻居,则更新其与 A 的邻居距离。重复这个过程,直到 E 被访问。

从 A 开始 (dist = 0)。

 1. Distance to B (through A) = 0 + 2 = 2.
 2. Distance to D (through A) = 0 + 3 = 3.

sortedCandidates = [B=2, D=3]

选择 B (dist = 2)。

 1. Distance to C (through B) = 2 + 3 = 5.

sortedCandidates = [D=3, C=5]

选择 D (dist = 3)。

 1. Distance to E (through D) = 3 + 5 = 8.

sortedCandidates = [C=5, E=8]

选择 C ​​(dist = 5)。

 1. Distance to E (through C) = 5 + 5 = 10 (reject as it is more than 8).

sortedCandidates = [E=8]

选择 E (dist = 8)。

 1. Do nothing.

距离 AE = 8

【讨论】:

    猜你喜欢
    • 2021-06-10
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多