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 回答