iGraph中介数的计算

Calculation of betweenness in iGraph

我看到一些 info 暗示 iGraph 加权图中的接近度是使用权重作为成本而不是优势来计算的。

我想知道介数是否也是如此。即,如果我在顶点之间有两条路径,其中一条 (a) 的边权重总和为 100,另一条 (b) 的边权重总和为 200,中间性会将路径 a 解释为成本最低的路径,并将该边权重值包含在分子中的介数计算。

如果是这样,为了获得基于强度的介数,我假设将权重转换为等于 1/权重?

我尝试使用如下的三节点边缘文件对此进行测试:

V1  V2 weight
1    2      1
1    3      4
2    3      1

使用上面提供的权重,节点 2 的介数为 1,其他节点=0。这似乎表明介数计算正在避免从 2->1->3 的路径,因为它将高权重视为成本。

但是,如果我创建一个新的权重变量: E(g)$weightI <- 1/E(g)$weight

和运行之间: b<-data.frame(betweenness(g, V(g), directed=FALSE, weights=E(g)$weightI))

所有介数均为 0,这是出乎意料的,对解决我最初的问题没有特别帮助

的确,igraph在计算介数时假定边的权重是成本,而不是强度。这是因为(据我所知)介数是根据 最短路径 定义的,而图论中路径的 "length" 是长度之和(权重)所涉及的边缘。 "betweenness based on strengths"没有明确的定义。您可以尝试将 "strengths" 转换为成本,但根据您选择的转换,您可能会得到不同的结果,因为某些转换可能表明转换图中的一条特定路径较短,而另一些转换可能表明其他一些路径较短路径更短。