複数の特定場所から複数の特定場所への媒介度(passcount)計算

出発場所、目的場所をそれぞれ複数指定して、各出発場所から各目的場所まで(マルチ)最短経路で移動した場合の、通過回数(passcount)を各ノードに対して加算します。

graph_module_betweenness1

このサンプルは、出発ポイント群、と目的ポイント群を分けて入力しています。各ポイントそれぞれ最寄のノードを距離計測の出発ノード・目的ノードにしています。計算が終わった後の結果ソート、今回のケースではノードのリストをpasscountおn多い順、つまり降順に行うほうが、直感に即しているでしょう。これも同様、pythonではラムダ式ソートが可能ですので、非常に簡潔です。降順では reverseというキーのフラグをTrueにします。

passscountrank = sorted(g.nodes, reverse=True, key = lambda x: x.passcount)

こうすると、g.nodes というノードのインスタンスの入ったリストを、Nodeクラスの passcountというプロパティメンバーに対して降順ソートが行われ、ソート済みのリストが passscountrank に返ってきます。

Comments are closed.