小编use*_*014的帖子

如何在R中编程这个Dijkstra最短距离算法?

这是我的Dijkstra数据矩阵.注意:未直接链接的两个节点i和j之间的距离已设置为NA.

     node X1 X2 X3 X4 X5 X6
[1,]    1  0  3  7  4 NA NA
[2,]    2  3  0  2 NA NA  9
[3,]    3  7  2  0  1  3  6
[4,]    4  4 NA  1  0  3 NA
[5,]    5 NA NA  3  3  0  3
[6,]    6 NA  9  6 NA  3  0
Run Code Online (Sandbox Code Playgroud)

我需要编写一个代码,提供从节点1到节点N的最短距离(因此只需要一个数字输出,而不是最短路径).该程序还应该在csv文件上工作,该文件包含任意维度的对称方形直接距离矩阵,任意数量的节点编号为1 ... N,以及矩阵中的任何正距离值.(您的程序将在此类矩阵上进行测试.)程序应输出从节点1到节点N的最短距离.

我试过:创建临时矩阵L(0)

l0data<-c(1,MatrixData[[1,1]],"Temp",2,MatrixData[[1,2]],"Temp",3,MatrixData[[1,3]],"Temp",4 ,MatrixData[[1,4]],"Temp",5, MatrixData[[1,5]],"Temp",6, MatrixData[[1,6]],"Temp")
l0<-matrix(l0data,nrow = 3, ncol = 6)
temp0<-l0[3,]=="Temp"
Run Code Online (Sandbox Code Playgroud)

选择值和L(0)的节点以使其成为永久性的

l0SelectVal<-l0[2,temp0]
#select nodes of temporary l0
l0SelectNod<-l0[1,temp0]
Run Code Online (Sandbox Code Playgroud)

答案最小值L(0) …

r dijkstra igraph

-1
推荐指数
1
解决办法
7769
查看次数

标签 统计

dijkstra ×1

igraph ×1

r ×1