is_strongly_connected#

is_strongly_connected(G)[source]#

判断给定的竞赛图是否强连通。

此函数在理论上比通用的 is_strongly_connected() 函数更有效。

给定的图必须是竞赛图,否则此函数的行为未定义。

参数:
GNetworkX 图

表示竞赛图的有向图。

返回:
布尔值

竞赛图是否强连通。

注意

尽管此函数在理论上比通用的强连通性函数更有效,但要实现加速需要使用并行处理。尽管将来可能会使用,但当前实现未使用并行处理,因此您可能不会看到明显的加速。

此算法来源于 [1]。

参考文献

[1]

Tantau, Till. “A note on the complexity of the reachability problem for tournaments.” Electronic Colloquium on Computational Complexity. 2001. <http://eccc.hpi-web.de/report/2001/092/>

示例

>>> G = nx.DiGraph([(0, 1), (0, 2), (1, 2), (1, 3), (2, 3), (3, 0)])
>>> nx.is_tournament(G)
True
>>> nx.tournament.is_strongly_connected(G)
True
>>> G.remove_edge(3, 0)
>>> G.add_edge(0, 3)
>>> nx.is_tournament(G)
True
>>> nx.tournament.is_strongly_connected(G)
False
----

其他后端实现了此函数

parallel一个使用 joblib 并行运行图算法的 NetworkX 后端。可以在此处找到 nx-parallel 的配置指南。

并行计算是通过将节点分成块,然后并行检查每个节点是否可以从其他节点到达来实现的。

附加参数
get_chunksstr, function (默认值 = “chunks”)

一个函数,它接收所有节点的列表作为输入,并返回一个可迭代对象 node_chunks。默认的分块是通过将 nodes 切片为 n_jobs 个块来完成的。

[源代码]