Python networkX中无向图的参数传递闭包

Python networkX中无向图的参数传递闭包,python,networkx,graph-theory,Python,Networkx,Graph Theory,我正在从现有的边生成一个无向图 G = nx.Graph() edge_list = [(1,2),(2,3), (3,4), (4,5),(5,6)] G.add_edges_from(edge_list) 现在我想执行传递闭包,该闭包由级别k参数化,使得k=1意味着将添加以下新边 new_edge_list = [(1,3),(2,4),(3,5),(4,6)] G.add_edges_from(new_edge_list) new_edge_list = [(1,3),(1,4),(2

我正在从现有的边生成一个无向图

G = nx.Graph()
edge_list = [(1,2),(2,3), (3,4), (4,5),(5,6)]
G.add_edges_from(edge_list)
现在我想执行传递闭包,该闭包由级别k参数化,使得k=1意味着将添加以下新边

new_edge_list = [(1,3),(2,4),(3,5),(4,6)]
G.add_edges_from(new_edge_list)
new_edge_list = [(1,3),(1,4),(2,4),(2,5),(3,5), (3,6),(4,6)]
G.add_edges_from(new_edge_list)
而k=2表示将添加以下新边

new_edge_list = [(1,3),(2,4),(3,5),(4,6)]
G.add_edges_from(new_edge_list)
new_edge_list = [(1,3),(1,4),(2,4),(2,5),(3,5), (3,6),(4,6)]
G.add_edges_from(new_edge_list)
这本质上意味着,当我们不断增加k的值时,图G最终将成为一个团,即传递闭包。但是,我想得到一个特定级别k的传递闭包。我能够使用获得完整的传递闭包。但我正在与特定级别的传递闭包作斗争。我能够通过使用表示来实现k=1传递闭包,但对于k=2,这是无法缩放的


附言:如果在参数传递闭包过程中也像[1,3,3,1]一样创建对称边也没关系。

如果你有一个适用于k=1情况的工作算法,并且你提到的缩放问题不会随着你添加更多边而因图形本身的增长而出现,那么你可以简单地递归使用该算法,将其应用于k=1案例的输出后,将成为您的k=2案例。

您会遇到哪些缩放问题?如果你对k=1的情况有一个有效的算法,你就不能重复一下吗;使用k=1闭包的输出作为同一算法的输入,该算法的输出将是k=2闭包?OMG!对我将通过递归调用得到期望的结果。我相信睡眠剥夺会影响基本思维!!!非常感谢。伟大的那么,请允许我将其作为一个答案添加进来,以避免问题被标记为仍然打开。是的,对k=1的结果的递归调用会生成k=2的结果,依此类推。再次感谢!