Python,使用图形工具生成随机图形

Python, Generating Random Graphs with Graph-tool

所以我试图生成一个随机有向图,这样每个顶点都有 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

度采样器函数应该 return 节点的入度和出度。在您的实现中,每个节点的入度为 1,出度为 2。当然,不可能用这种度数序列构造图,因为平均入度和出度必须相同。这就是算法卡在 "fixing average degrees" 阶段的原因。