Python K-终端图形连接检查(使用Networkx)

Python K-终端图形连接检查(使用Networkx),python,graph,networkx,Python,Graph,Networkx,我有一个带有m特定源和n特定终端节点的大型无向图,我想检查所有源与所有终端之间是否存在连接。答案将是二进制标量,即,如果所有源都连接到所有终端,则为1;如果存在未连接的源和终端,则为0 对于单源单终端连接,我可以使用Networkx检查连接(基于DFS算法): 检查m-源n-终端连接的最简单方法是使用m+n-1独立DFS运行(使用上述功能)。但是,这可能不是执行任务的最有效方式,如果我们想重复执行此任务(例如,对于数百万个图形),则速度会很慢。最有效的算法是什么?所需DFS运行的最小数量是多少?

我有一个带有
m
特定源和
n
特定终端节点的大型无向图,我想检查所有源与所有终端之间是否存在连接。答案将是二进制标量,即,如果所有源都连接到所有终端,则为1;如果存在未连接的源和终端,则为0

对于单源单终端连接,我可以使用Networkx检查连接(基于DFS算法):


检查
m
-源
n
-终端连接的最简单方法是使用
m+n-1
独立DFS运行(使用上述功能)。但是,这可能不是执行任务的最有效方式,如果我们想重复执行此任务(例如,对于数百万个图形),则速度会很慢。最有效的算法是什么?所需DFS运行的最小数量是多少?我使用的是Python,我更喜欢使用Networkx来执行连接检查。谢谢

我认为对无向图执行此操作的最佳方法是使用networkx命令查找与一个源节点位于同一组件中的所有节点。然后检查所有目标和源节点是否也在该组件中


node_connected_组件在1.11中返回一个列表,在2.0中返回一个集合。可能进行测试的最佳方法是查看与该组件集相交时的源和目标集是否等于源和目标集。

图形是否有方向?否,图形是无方向的。
has_path(G, source, target)