2016-06-16 4 views
0

Ich versuche die Anzahl der Vorkommen eines bestimmten Eckpunktes auf allen kürzesten Wegen zwischen gegebenen zwei Eckpunkten zu finden. Dazu verwende ich das IGRAPH Paket in R. Ich habe mit get.all.shortest.paths() auf der folgenden Grafik

g <- graph(c(1,2,1,3,2,4,3,4,3,5,4,6,5,6,6,7), directed = F) 

Das Problem, das ich ist, wenn ich get.all.shortest.paths(g,2,3) laufen erhalte ich:

$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 

, die ich $ nrgeo nehmen ist die Anzahl der Vorkommen der Eckpunkte in allen der kürzesten Wege von Knoten 2 bis 3 (I nicht die Hilfedatei für die Funktion finden konnte, so bin ich nicht sicher, was $ nrgeo genau ist.)

Allerdings enthält keinen kürzesten Weg zwischen Scheitelpunkt 2 und Scheitelpunkt 3 der Eckpunkt 6 und der Eckpunkt 2 werden zweimal realisiert, nicht einmal.

Fehle ich etwas?

Antwort

0

Ich glaube nrgeo ist der resultierende Vektor der Werte von Djikstra's algorithm, die verwendet wird, um die kürzesten Wege zu finden. Dies wird Ihnen nicht sagen, wie viele kürzeste Wege eine gewisse Vertex liegt auf zwischen 2 und 3. Stattdessen könnten Sie so etwas wie

vertex=1 
sum(sapply(get.all.shortest.paths(g,2,3)$res,function(x){vertex %in% x})) 

verwenden zu finden, zum Beispiel die Anzahl der kürzesten Pfade, die 1 Vertex liegt auf.

+0

Vielen Dank, das ist genau das, was ich wollte! –

Verwandte Themen