У меня есть следующая матрица, которая генерирует ненаправленную сетевую диаграмму:
a b c d e f g h i j
a 0 1 1 0 0 0 0 0 0 0
b 1 0 1 0 0 0 0 0 0 0
c 1 1 0 1 1 0 1 0 0 0
d 0 0 1 0 1 0 0 0 0 0
e 0 0 1 1 0 1 0 0 0 0
f 0 0 0 0 1 0 1 0 0 0
g 0 0 1 0 0 1 0 1 0 0
h 0 0 0 0 0 0 1 0 1 1
i 0 0 0 0 0 0 0 1 0 0
j 0 0 0 0 0 0 0 1 0 0
m <- structure(c(0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 1L, 0L, 1L, 0L, 0L,
0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L,
1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 1L, 0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L,
0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 1L, 0L, 0L), .Dim = c(10L, 10L), .Dimnames = list(
c("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"), c("a",
"b", "c", "d", "e", "f", "g", "h", "i", "j")))
library(igraph)
g3n <- graph.adjacency(m)
Меня интересует ручное вычисление промежуточности узла 'g', которое требует нахождения кратчайших путей среди всех возможных узловв качестве знаменателя и числителя в качестве числа кратчайших путей содержится узел 'g'.
Я использовал следующий код для генерации длин кратчайших путей среди всех узлов:
shortest.paths(g3n, v=V(g3n), to=V(g3n))
КратчайшийМатрица пути:
a b c d e f g h i j
a 0 1 1 2 2 3 2 3 4 4
b 1 0 1 2 2 3 2 3 4 4
c 1 1 0 1 1 2 1 2 3 3
d 2 2 1 0 1 2 2 3 4 4
e 2 2 1 1 0 1 2 3 4 4
f 3 3 2 2 1 0 1 2 3 3
g 2 2 1 2 2 1 0 1 2 2
h 3 3 2 3 3 2 1 0 1 1
i 4 4 3 4 4 3 2 1 0 2
j 4 4 3 4 4 3 2 1 2 0
Есть ли способ подсчитать, сколько раз кратчайший путь между двумя узлами содержит узел 'g' в качестве матрицы или просто любым другим способом в R?