Python ';平铺';NetworkX中的图

Python ';平铺';NetworkX中的图,python,networking,graph,networkx,Python,Networking,Graph,Networkx,那么,如果我在NetworkX中创建了一个基本的图形,有没有一种方法可以“平铺”它,使它可以将图形乘以很多倍?如果他们还保持联系就好了。我尝试过一些FCN,比如nx.Union(),但它似乎覆盖了图形,而不是将其乘以很多次。我找不到任何FCN似乎能做到这一点,有什么想法吗 编辑:输入可能是一个最多有50个节点的图形。输出将是非常相同的图,但迭代n次(这样在输出图中有n50个节点)。但是,我想连接原始图的迭代,因此可以覆盖一些节点(st输出节点''n(输入边)) 这有意义吗 您正在寻找的函数是nx

那么,如果我在NetworkX中创建了一个基本的图形,有没有一种方法可以“平铺”它,使它可以将图形乘以很多倍?如果他们还保持联系就好了。我尝试过一些FCN,比如nx.Union(),但它似乎覆盖了图形,而不是将其乘以很多次。我找不到任何FCN似乎能做到这一点,有什么想法吗

编辑:输入可能是一个最多有50个节点的图形。输出将是非常相同的图,但迭代n次(这样在输出图中有n50个节点)。但是,我想连接原始图的迭代,因此可以覆盖一些节点(st输出节点''n(输入边))


这有意义吗

您正在寻找的函数是nx.disjoint\u union,它将允许您添加两个图形并为它们提供不同的节点值

 def n_disjoint_unions(G, n):
     H = nx.Graph()
     for _ in range(n):
         H = nx.disjoint_union(H, nx.copy(G))
     return H

但是,您需要指定如何连接这些新图形。

您正在寻找的函数是nx.disjoint\u union,它将允许您添加两个图形并为它们提供不同的节点值

 def n_disjoint_unions(G, n):
     H = nx.Graph()
     for _ in range(n):
         H = nx.disjoint_union(H, nx.copy(G))
     return H

但是,您需要指定如何连接这些新图形。

您能提供一个示例输入并解释输出是什么吗?我不知道你在问什么。嗨,乔尔,我编辑了更多的描述!一、 首先,我根本不明白你的意思。是否要将新节点添加到现有图形中?是否要添加新边?能否提供一个示例输入并解释输出内容?我不知道你在问什么。嗨,乔尔,我编辑了更多的描述!一、 首先,我根本不明白你的意思。是否要将新节点添加到现有图形中?你想添加新边吗?我更接近。。。对于n=3,我有。现在,我希望所有这些都是连接的,可能它们之间有边(或者共享一组节点)。有没有聪明的办法?我正在考虑查看循环中节点的中心度,如果它们足够低,则连接它们。@jdg您可以在原始节点中选择一个节点连接到所有副本吗?但实际上,你的目标是什么?这将有助于找出最佳选择。我的目标是基本上使网络任意大,以便我们可以测试一些连接算法。文件需要连接且很大的原因是,我们可以运行一些速度测试,看看哪一个最适合非常大的网络。。。我创建了一个小算法,可以找到连接度最低的节点,并将它们连接到其他节点,形成一个连接的网络。它似乎工作正常,但需要推广。。。还有其他方法吗?我更接近。。。对于n=3,我有。现在,我希望所有这些都是连接的,可能它们之间有边(或者共享一组节点)。有没有聪明的办法?我正在考虑查看循环中节点的中心度,如果它们足够低,则连接它们。@jdg您可以在原始节点中选择一个节点连接到所有副本吗?但实际上,你的目标是什么?这将有助于找出最佳选择。我的目标是基本上使网络任意大,以便我们可以测试一些连接算法。文件需要连接且很大的原因是,我们可以运行一些速度测试,看看哪一个最适合非常大的网络。。。我创建了一个小算法,可以找到连接度最低的节点,并将它们连接到其他节点,形成一个连接的网络。它似乎工作正常,但需要推广。。。还有其他方法吗?