为什么边缘中间性和加权边缘中间性结果完全相同?

时间:2018-08-17 22:37:13

标签: r igraph graph-theory

我有两个由邻接矩阵(g1g2创建的图(mtx1mtx2),一个未加权(g1),另一个加权(g2),我正在计算两个图的边缘中间度。

我的理解是,使用edge_betweenness(g, weights = E(g)$weight)可以将边缘权重合并到加权图的边缘中间度的计算中,但是当我这样做时,加权和未加权图的结果完全相同。

为什么在边缘中间度的计算中增加权重不会更改结果分数?

考虑以下示例

library(igraph)

# create non-weighted adjacency matrix (mtx1) and a weighted matrix (mtx2)        
mtx1 <- matrix(c(0,1,0,0,0,1,0,1,1,0,0,1,0,0,1,0,1,0,0,0,0,0,1,0,0), ncol = 5)
mtx2 <- matrix(c(0,2,0,0,0,1,0,2,2,0,0,1,0,0,2,0,1,0,0,0,0,0,1,0,0), ncol = 5)

# convert to igraph objects
g1 <- graph.adjacency(mtx1)
g2 <- graph.adjacency(mtx2, weighted = TRUE)

# calculate edge betweenness for the two graphs 
edge_betweenness(g1)
[1] 4 4 6 4 6 4 4 4

edge_betweenness(g2, weights = E(g2)$weight)
[1] 4 4 6 4 6 4 4 4

1 个答案:

答案 0 :(得分:2)

顶点的edge_betweeness的定义是最短路径的 number 通过那个顶点。对于g1和g2,任何两个节点之间的最短路径是相同的。由于您的体重,这些路径的长度不相同,但是边的顺序相同。

如果您希望看到一个示例,其中加权图给出了两个之间的不同,则必须构建一个示例,其中权重发生变化 东西是否是最短的路径。

这是您精神的榜样。

mtx3 <- matrix(c(0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0), ncol=4)
mtx4 <- matrix(c(0,2,1,0,2,0,0,1,1,0,0,1,0,1,1,0), ncol=4)
g3 <- graph.adjacency(mtx3)
g4 <- graph.adjacency(mtx4, weighted = TRUE)

edge_betweenness(g3)
[1] 2 2 2 2 2 2 2 2
edge_betweenness(g4, weights = E(g4)$weight)
[1] 1 2 1 2 2 3 2 3

请注意,路径1-> 2-> 4是g3的最短路径,但不是g4的最短路径。