gpt4 book ai didi

python - 非标准化负载中心性可以是非整数吗?

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:44 25 4
gpt4 key购买 nike

我正在尝试使用 python NetworkX 包来验证其他一些代码,但我担心负载中心性并不意味着我的想法。当我运行下面的示例时,我期望只获得负载的整数值,因为它应该只是每个节点上经过该节点的最短路径数量的计数(即,我列出了节点对之间的所有最短路径,然后对于每个节点“v”计算有多少条路径穿过它,不包括“v”是第一个或最后一个节点的路径):

edges = [ ('a0','a1'),('a0','a2'),('a1','a4'),('a1','a2'),('a2','a4'),('a2','z5'),('a2','a3'),('a3','z5'),('a4','z5'),('a4','z6'),('a4','z7')
,('z5','z6'),('z5','z7'),('z5','z8'),('z6','z7'),('z6','z8'),('z6','z9'),('z7','z8'),('z7','z9'),('z8','z9')]
import networkx as nx
testg = nx.Graph( edges )
nx.load_centrality( testg, normalized=False )

我得到这样的输出:

{'a0': 0.0,
'a1': 3.16666665,
'a2': 15.4999998,
'a3': 0.0,
'a4': 14.75,
'z5': 20.25,
'z6': 6.04166666,
'z7': 6.04166666,
'z8': 2.24999996,
'z9': 0,0}

这些与我在相对大小方面手动计算的值类似,但为什么它们不是整数值?我测试过的每个其他网络都会返回非标准化负载中心性的整数值,并且我在定义中没有看到任何会导致这些值的内容。该函数的 python 文档说要查看介数,并且还提供了一篇文章作为该算法的引用(我无法访问)。

最佳答案

根据所链接的 Downshift 论文进行大量计算后,看起来“负载”遵循该论文中的介数定义,但减去 (2n-1) 因子以调整算法中的某些过度计数。要么是这样,要么论文中的算法没有明确说明大小为“1”的初始数据包应该只对它们经过的节点做出贡献,而不是对路径的末端做出贡献。无论如何,我现在可以匹配networkx的输出值了。这些值与 networkx 自己的介数函数不同,后者遵循基于节点对的文档中的公式,而不是通过网络传播大小为 1 的数据包。

特别是,由于数据包在分支点 split 成相同大小,节点可以累积部分数据包,从而累积非整数“负载”值。这不是 networkx 文档中的描述所暗示的意思,但现在已经足够清楚了。

关于python - 非标准化负载中心性可以是非整数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41227997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com