对于网络,我得到每对节点之间的(非负)旅行费用。旅行费用是附加的。如何修剪图形以便去除不必要的边缘(即具有大致相等长度的路径的边缘)?换句话说,我正在寻找一个较小的(最小的?)图,其中保留了每对节点之间的最短路径距离。
在以下示例中,我给了sp
(或spg
,就此而言),我想从中推断出g
:
set.seed(144)
library(igraph)
nv <- 100
ne <- 300
g <- erdos.renyi.game(nv, ne, "gnm", directed = FALSE)
edge.attributes(g) <- list(weight = rexp(ne, 1))
sp <- shortest.paths(g)
spg <- graph.adjacency(sp, weighted = "weight")
我有几千个节点,因此枚举所有连接的边缘对不是一个选项(由于内存限制),并且在R中实现时迭代所有节点对可能太慢。