r语言 - 最短路径函数(Dijkstra算法)



我有一个数据帧,由纬度、经度、节点ID、从NodeID到node_ID、长度组成。from和to节点列是我的边。当我试图找到最短的路径时,我只能靠自己的优势旅行。我希望能够从一个节点到另一个节点,同时最小化我的总行程。输出应该返回我必须经过才能到达目的地的每个节点。我已经尝试了许多内置包,如cppRouting和igraph,但我无法正常工作。关于如何创建一个函数或如何使用任何现有函数来实现这一点,有什么想法吗?非常感谢。

以下是Dijkstra算法中用于查找从单个源顶点到给定图中所有其他顶点的最短路径的详细步骤。

算法:

1( 创建一个集sptSet(最短路径树集(,用于跟踪最短路径中包含的顶点,即计算并最终确定其与源的最小距离。最初,此集合为空。

2( 为输入图形中的所有顶点指定一个距离值。将所有距离值初始化为INFINITE。将源顶点的距离值指定为0,以便首先拾取它。

3( 而sptSet不包括所有顶点

….a(选取一个不在sptSet中并且具有最小距离值的顶点u。

….b(将u包含到sptSet中。

….c(更新u的所有相邻顶点的距离值。若要更新距离值,请遍历所有相邻顶点。对于每个相邻顶点v,如果u的距离值(来自源(和边的权重u-v之和小于v的距离值,则更新v的距离数值。

通过以下链接:在Dijkstra的最短路径算法中打印路径

最新更新