私は、いわゆるconfiguration_modelアルゴリズムを使って度数分布 の度数分布でサイズNのネットワークを生成しています。結果として得られるグラフは複数のエッジを許容しますが、それらを数える必要がありますが、どのように把握できません。ここでは可能な解決策である:グラフで複数の辺を数える(ファイブ)
import networkx as nx
import numpy as np
from networkx.utils import (powerlaw_sequence, create_degree_sequence)
deg_sequence = create_degree_sequence(num, powerlaw_sequence, exponent=2.2)
graph=nx.configuration_model(deg_sequence)
num_par = sum(len(graph[node][neigh]) for node in graph for neigh in graph.neighbors_iter(node)) // 2
print ('Graph has %d multi-links' %num_par)
self_loops=len(graph.selfloop_edges())
print ('Graph has %d self-loops' %self_loops)
edges=len(graph.edges())
print edges
私は、インターネット上のどこかのコードの6行を借りたが、率直に言って、私はかなりそれがどのように動作するかを理解することはできません。特に、グラフの長さを計算するグラフ(ノード[ノード])は何かを理解できません。私にとっては、それもリストのようには見えませんが、私はここでその考えを得ていないと確信しています。 このコードの結果、私は複数のエッジの割合が非常に高くなります。リンクの総数の98%以上を占めています。 このように平行なエッジを計算する方法は正しいですか?もしそうなら、あなたはそれがどのように機能するか私に説明しますか?他のやり方を知っていますか?
numにはどのような値がありますか? – Paul