2016-06-16 81 views
0

我想查找給定兩個頂點之間的所有最短路徑上特定頂點的出現次數。對於這一點,我使用的igraph包R.我一直在使用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

我相信nrgeo是從Djikstra's algorithm得到的值的向量,它用於找到最短路徑。這不會告訴你某個頂點多少最短路徑位於2和3一樣

之間相反,你可以使用的東西

vertex=1 
sum(sapply(get.all.shortest.paths(g,2,3)$res,function(x){vertex %in% x})) 
找到,例如,頂點1的最短路徑的數量位於。

+0

非常感謝,這正是我想要的! –