Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在NetworkX中,将所有边连接到多方向图中的一组节点的最快方法?_Python_Networkx - Fatal编程技术网

Python 在NetworkX中,将所有边连接到多方向图中的一组节点的最快方法?

Python 在NetworkX中,将所有边连接到多方向图中的一组节点的最快方法?,python,networkx,Python,Networkx,给定类型为nx.multi-digraph()的大型图G,如何以最有效的方式查找所有连接的节点 我有一个包含N个节点的列表,我想找到所有连接到它的节点 list_of_nodes = [Node1,Node2,Node3,Node4,...] 我知道一种方法,那就是使用bfs\u树 all_nodes = list(G.nodes()) find_all_connected_edges= [] [find_all_connected_edges.extend(nx.bfs_tree(G, x,

给定类型为
nx.multi-digraph()
的大型图
G
,如何以最有效的方式查找所有连接的节点

我有一个包含N个节点的列表,我想找到所有连接到它的节点

list_of_nodes = [Node1,Node2,Node3,Node4,...]
我知道一种方法,那就是使用
bfs\u树

all_nodes = list(G.nodes())
find_all_connected_edges= []
[find_all_connected_edges.extend(nx.bfs_tree(G, x, reverse=False).edges()) for x in all_nodes]
 

这是可行的,但对于大量的N节点来说相当慢,有没有更好的方法来查找连接到网络中一组N节点的所有边?

这取决于您想要哪种类型的“连接节点”。如果希望所有节点都具有双向路径(u->v和v->u),可以使用强连接组件的概念。如果不关心边的方向,可以使用弱连接组件

如果这些概念与您的用例相匹配,您可以使用或来检索所有节点的相应组件。然后,您可以构建所有组件的联合,其中至少有一个节点位于其中,以检索所需的节点集