圆形、无向、未加权图中的最短路径

Shortest path in a circular, undirected, unweighted graph

本文关键字:最短路径 无向 圆形 加权图      更新时间:2023-10-16

我有一个循环网络,从连接到最近邻居的每个节点开始。我添加了一定数量的远程连接,而更长的连接变得极不可能。

它可以像这个一样表示

并且它被存储在像这样的2D阵列中

我想创建一个例程,随机选择两个节点并找到它们之间的最短路径。实现这一目标最有效的算法是什么?

有一种众所周知的算法称为Dijkstra算法。我以前听过这个名字,我知道什么是图形。。。

编辑以供澄清:-就Prism和Dijkstra的差异而言:-

Prim的算法为图构造了一个最小生成树,这是一个连接图中所有节点的树,并且在连接所有节点的所有树中具有最小的总成本。然而,MST中任意两个节点之间的路径长度可能不是原始图中这两个节点间的最短路径。

Dijkstra的算法构造了一个从某个源节点开始的最短路径树。最短路径树是连接图中所有节点的树,具有从图中某个起始节点到任何其他节点的任何路径的长度最小化的特性。

所以,若考虑到两个节点之间的最短路径,那个么就选择Dijkstra的。我对其他选择不太了解,但Kruskal和Prim是同一条线上的drwan。