我正在嘗試使用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文檔說明了中介,並且還提供了一篇文章作爲算法的參考(我無法訪問)。
至於python文檔參考,這可能是相同的文章,https://pdfs.semanticscholar.org/e3f3/35cf508f501b0e9c382ae3c445b29f34a58d.pdf – davedwards
如果一對節點有兩個不同的最短路徑? – Joel
考慮四個節點連接在一個正方形;每個節點都包含在對角之間的最短路徑中,但未規範化的負載從networkx.load_centrality報告爲1。 – mjenista