我正在尝试使用R中的igraph
包计算图的紧密度。用于计算的示例数据如下:
1 2
1 5
2 3
5 4
4 6
2 5
3 4
当我手动计算时,结果不匹配。这是由igraph提供的closeness的定义:
Closeness是到/从图中所有其他顶点的最短路径的平均长度的倒数。
以下是我如何手动计算节点1的closeness:
1. 首先,我计算从节点1到每个其他节点的最短路径: - 节点1可以在1步内到达节点2,这也是最短路径。 - 节点1可以在1步内到达节点5,这也是最短路径。 - 节点1可以在3步内到达节点6,依此类推。 2. 然后,我取这些最短路径的平均值: - (1 (1→2) + 1 (1→5) + 2 (1→3) + 2(1→4) + 3 (1→6))/5 = (1+1+2+2+3)/5 = 9/5 3. 最后,我对其求倒数,得到closeness值为0.555。
当我使用igraph软件包中的R代码运行closeness方法时,我在节点1的计算结果为0.1111。
有人能帮我找出在计算中漏掉了什么吗?
?closeness
给出了您提供的文字定义,但帮助页面上的公式是1/sum( d(v,i), i != v)
,这相当于 0.1111 的值,但它是倒数和而不是倒数平均值。也许应该给维护者发一封电子邮件? - Gavin Kelly