当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX second_order_centrality用法及代码示例


本文简要介绍 networkx.algorithms.centrality.second_order_centrality 的用法。

用法:

second_order_centrality(G)

计算 G 的节点的二阶中心性。

给定节点的二阶中心性是 G 上的永久随机游走返回到该节点的时间的标准差:

参数

G图形

NetworkX 连通无向图。

返回

nodes字典

以二阶中心性为值的节点键控字典。

抛出

NetworkXException

如果图 G 为空、未连接或具有负权重。

注意

二阶中心性的较低值表示较高的中心性。

该算法来自 Kermarrec、Le Merrer、Sericola 和 Trédan [1]。

该代码实现了该算法的分析版本,即不涉及随机游走过程的模拟。这里的随机游走是无偏的(对应于论文 [1] 的等式 6),因此中心性值是变换后的输入图 G 上随机游走返回时间的标准差(通过添加自相关,每个节点的入度相等)循环)。

这个实现的复杂性,在单台机器上本地运行,是 O(n^3),n 的大小是 G,这使得它只适用于小图。

参考

1(1,2)

Anne-Marie Kermarrec, Erwan Le Merrer, Bruno Sericola, Gilles Trédan “Second order centrality: Distributed assessment of nodes criticity in complex networks”, Elsevier Computer Communications 34(5):619-628, 2011.

例子

>>> G = nx.star_graph(10)
>>> soc = nx.second_order_centrality(G)
>>> print(sorted(soc.items(), key=lambda x: x[1])[0][0])  # pick first id
0

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.centrality.second_order_centrality。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。