通过优先附件随机连接节点

时间:2017-06-07 09:47:09

标签: python networking random nodes

我正在尝试建立一个优先附加的网络。我将总共有20个节点,将以1个节点开始。然后,我将添加第二个节点(node2),它将连接到node1。然后,将添加node3,它可以以相同的概率绑定到node1和node2,因为它们的自由度是相同的。如果node3将绑定到node2,则平面文本将如下所示:

1 2 ( node1 connects with node2)
2 1 (node2 connects with node1, by default)
3 2 (node3 connects with node2)
2 3 (node2 connects with node3, by default)

然后,当我添加node4时,由于node2的连接数比其余的多,node4更喜欢绑定到node2,但它也可以绑定到node1或node3。在这里,我很担心如何做出优先依恋。我可以随机配对两个列表,但是,我无法让它们选择。 我试图用概率制作一个权重列表,然后对于每个节点,我试图根据概率做出选择。我试图运行的代码:

from numpy.random import choice
import numpy as np, numpy.random
import itertools
#from tempfile import TemporaryFile
#make probabilities from 0 to 1 which will make 1 at the end
probab = np.random.dirichlet(np.ones(20),size=1)
a = probab.tolist()
merged = list(itertools.chain.from_iterable(a))
nodes = list(range(1,2001))
F = open("workfile.txt","w")

for node in nodes:

    Y = choice(nodes,p=merged)
    F.write(Y)
    print("done?")

我不确定这是否是正确的方法,我也无法正确运行此代码,因为它给我一个错误:

File "ex.py", line 33, in <module>
    np.savetxt('test.out', Y)
  File "/usr/local/lib/python3.5/dist-packages/numpy/lib/npyio.py", line 1175, in savetxt
    ncol = X.shape[1]
IndexError: tuple index out of range

可以给我一些关于该方法的改进,以及如何解决这个错误?

0 个答案:

没有答案