0

したがって、各頂点に 3 つのインノードと 1 つのアウトノードがあるようなランダムな有向グラフを生成しようとしています。しかし、グラフ ツールは deg_sampler() 関数でスタックしているようです。

from graph_tool.all import *

def deg_sampler():
    return 1,2
g = random_graph(1000,deg_sampler,verbose=True)

コードを実行した後にこのエラーが発生します

adding vertices: 1000 of 1000 (100%)
fixing average degrees. Total degree difference: 1000^CTraceback (most recent call last):
  File "code.py", line 6, in <module>
    g = random_graph(1000,deg_sampler,verbose=True)
  File "/usr/lib/python2.7/dist-packages/graph_tool/generation/__init__.py", line 384, in random_graph
    _get_rng(), verbose, True)
  File "/usr/lib/python2.7/dist-packages/graph_tool/generation/__init__.py", line 379, in <lambda>
    sampler = lambda i: deg_sampler()
KeyboardInterrupt
4

1 に答える 1

1

次数サンプラ関数は、ノードのイン次数とアウト次数を返す必要があります。あなたの実装では、各ノードは 1 のイン次数と 2 のアウト次数を持っています。もちろん、平均のイン次数とアウト次数が同一でなければならないため、この次数シーケンスでグラフを作成することは不可能です。これが、アルゴリズムが「平均度の修正」フェーズでスタックする理由です。

于 2015-12-04T09:24:20.893 に答える