当边在 dijkstra 算法中具有相同的权重时,下一个顶点是什么?
What would be the next vertex when the edges have the same weights in dijkstra algorithm?
2 3
A____B______C
| |
|3 |5
| |
D___________E
5
当图如上,我想求从A到E的最短路径
首先,我从 A 开始并将(B 和 D)的距离更新为(2 和 3)。
然后,边的最小距离是2所以我移动到B.
我的问题是哪个是下一个顶点,因为 A-D 的距离与 B-D 的距离相同...
这里是计算距离AE的所有步骤。您可以将每个距离初始化为 Infinity
,并从 distance AA = 0
开始。在每一步选择与 A 距离最小的候选者。如果邻居尚未被访问,则更新其与 A 的邻居距离。重复该过程,直到访问 E。
从 A 开始(距离 = 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(距离=2)。
1. Distance to C (through B) = 2 + 3 = 5.
sortedCandidates = [D=3, C=5]
选择D(距离=3)。
1. Distance to E (through D) = 3 + 5 = 8.
sortedCandidates = [C=5, E=8]
选择C(距离=5)。
1. Distance to E (through C) = 5 + 5 = 10 (reject as it is more than 8).
sortedCandidates = [E=8]
选择E(距离=8)。
1. Do nothing.
距离AE = 8
2 3
A____B______C
| |
|3 |5
| |
D___________E
5
当图如上,我想求从A到E的最短路径
首先,我从 A 开始并将(B 和 D)的距离更新为(2 和 3)。 然后,边的最小距离是2所以我移动到B.
我的问题是哪个是下一个顶点,因为 A-D 的距离与 B-D 的距离相同...
这里是计算距离AE的所有步骤。您可以将每个距离初始化为 Infinity
,并从 distance AA = 0
开始。在每一步选择与 A 距离最小的候选者。如果邻居尚未被访问,则更新其与 A 的邻居距离。重复该过程,直到访问 E。
从 A 开始(距离 = 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(距离=2)。
1. Distance to C (through B) = 2 + 3 = 5.
sortedCandidates = [D=3, C=5]
选择D(距离=3)。
1. Distance to E (through D) = 3 + 5 = 8.
sortedCandidates = [C=5, E=8]
选择C(距离=5)。
1. Distance to E (through C) = 5 + 5 = 10 (reject as it is more than 8).
sortedCandidates = [E=8]
选择E(距离=8)。
1. Do nothing.
距离AE = 8