创建每个节点具有固定连接数的随机网络

时间:2021-07-02 10:21:30

标签: python networking network-programming

我正在尝试创建一个随机网络,其中每个对象(在我的例子中是代理)都有一个固定大小的网络。 就我而言,每个代理都应该有一个由 4 个不同代理组成的网络(双向,因此如果代理 1 在代理 2 的网络中,则 2 自动在代理 1 的网络中)。 使用以下代码,我不知何故以无限循环结束:

def create_random_network1(list_agents):
    for i in list_agents:
        set_others = set()
        for j in list_agents:
            if len(j.network) < 4:
                set_others.add(j)
        while len(i.network) < 4:
            x = np.random.choice(tuple(set_others))
            if x not in i.network:
                i.network.add(x)
                x.network.add(i)

使用所有代理的列表调用该函数。 每个代理都有一个称为网络的集合。 首先,我为每次迭代创建一个集合,其中包含当前代理可能添加到其网络中的每个代理(因此每个代理在其网络中少于 4 个代理,不包括代理本身)。 在while循环中,我想从集合中随机选择一个代理(直到网络由4个代理组成),如果它不在网络中,则将其添加到当前代理的网络中,从而也添加当前代理到随机选择的代理的网络。

如前所述,我总是以无限的 while 循环结束。我似乎无法找到问题,但我怀疑它与 set_others 有关。

我非常感谢任何帮助,无论是我的代码错误还是不同的编码方式(请注意,我不想使用 networkx)

谢谢, 彼得

0 个答案:

没有答案
相关问题