2015-12-03 5 views
0

Итак, я пытаюсь создать случайный направленный граф таким образом, что каждая вершина имеет 3 внутриузла и 1 outnode. Но инструмент графа, похоже, застревает в функции deg_sampler().Python, Генерирование случайных графов с помощью Graph-инструмента

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 
+0

Вы пытались скопировать текст где-нибудь? Удар Ctrl-C убивает все, что работает на Python. Вот почему вы видите «KeyboardInterrupt» внизу. –

+0

Я хотел бы бросить программу примерно через 30 минут. Должно ли это длиться, чтобы генерировать узлы? –

ответ

1

Степени функции сэмплер должен возвращать в- или из степеней узлов. В вашей реализации каждый узел имеет степень 1 и внешнюю степень 2. Конечно, невозможно построить граф с этой степенной последовательностью, так как средние входы и выходы должны быть одинаковыми. Вот почему алгоритм застревает в фазе «фиксирующих средних градусов».