
282
13
章 グラフ分析
#
媒介中心性スコアを求める。
bt_table = {}
for i in target_graph.nodes:
bt_table[i] = 0
for current_node in target_graph.nodes:
#
先行表から最短経路を再構築する。
#
距離表のすべてのエントリに対して、そのエントリから対応する始点に逆行して
#
最短経路を取得し、マスタ
bt
表でその経路のノード数を数える。
pred_table = apsp_results[current_node][1] #
先行表はすでにある
sp_list = apsp_results[current_node][0]
for working_node in sp_list.keys():
if working_node != current_node:
path = []
while working_node != current_node:
working_node = pred_table[working_node]
path.append(working_node)
#
この時点で作業ノードが終わっているはずで、
# bt
スコアのためにノード数を数える。
for i in path[:-1]:
bt_table[i] += 1
for i in bt_table.keys():
betweenness_results.append((i,bt_table[i]))
#