當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。