r语言 - 计算最短路径上的顶点数



有一个加权的有向网络

,如下所示:
library(igraph)
g <- erdos.renyi.game(25, 1/10, directed = TRUE)
E(g)$weight <- runif(length(E(g)), 1, 5)

当运行最短路径函数sp <- shortest.paths(g)时,我显然得到了一个矩阵,其中加权边缘的总和介于两者之间。但是,我想计算一下这条路径上有多少个顶点。

这个想法来自于为火车网络寻找最短路径,边缘作为火车站,因为我希望看到每条最短路径的传输量(在顶点或节点之间(。

编辑:例如,如果最短路径是A到C,我想知道中间有多少个顶点。例如,如果完整路径是 A - E - B - C,那么 E 和 B 是中间顶点,所以我的值为 2。完整的顶点路径也可以,所以在这种情况下,它会为我提供 4 个顶点作为完整的最短路径。

找到了该问题的替代解决方案。

sp <- shortest_paths(g, V(g), V(g), mode = "all",
weights = E(g)$weight, output = "vpath")$vpath
lengths(sp)

这给出了该路径上的确切顶点数。因此,对于中间停止,只需减去 2 的值即可。

最新更新