【问题标题】:Python, Generating Random Graphs with Graph-toolPython,使用图形工具生成随机图
【发布时间】:2015-12-03 17:47:30
【问题描述】:

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

【问题讨论】:

  • 您是否试图在某处复制文本?按 Ctrl-C 会杀死 Python 中正在运行的任何东西。这就是为什么您会在底部看到“KeyboardInterrupt”。
  • 我的意思是我会在大约 30 分钟后退出程序。生成节点需要那么长时间吗?

标签: python graph graph-tool


【解决方案1】:

度数采样器函数应返回节点的入度和出度。在您的实现中,每个节点的入度为 1,出度为 2。当然,用这种度数序列构建图是不可能的,因为平均入度和出度必须相同。这就是算法陷入“固定平均度数”阶段的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多