我试图在给定的两个顶点之间的所有最短路径上找到特定顶点的出现次数。为此,我在R.中使用了igraph包。我在下图中使用了get.all.shortest.paths()
g <- graph(c(1,2,1,3,2,4,3,4,3,5,4,6,5,6,6,7), directed = F)
我遇到的问题是当我运行get.all.shortest.paths(g,2,3)
时,我得到了:
$res
$res[[1]]
+ 3/7 vertices:
[1] 2 4 3
$res[[2]]
+ 3/7 vertices:
[1] 2 1 3
$nrgeo
[1] 1 1 2 1 0 1 0
我假设$ nrgeo是从顶点2到3的所有最短路径中顶点的出现次数。(我无法找到该函数的帮助文件,所以我不是确定$ nrgeo究竟是什么。)
然而,顶点2和顶点3之间没有最短路径包含顶点6,顶点2实现两次,而不是一次。
我错过了什么吗?
答案 0 :(得分:0)
我相信nrgeo是来自Djikstra's algorithm的值的合成矢量,用于查找最短路径。这不会告诉你某个顶点在2到3之间有多少条最短路径。相反,你可以使用像
这样的东西。vertex=1
sum(sapply(get.all.shortest.paths(g,2,3)$res,function(x){vertex %in% x}))
例如,找到顶点1所在的最短路径的数量。