is_semiconnected#
- is_semiconnected(G)[source]#
如果图是半连通的,则返回 True,否则返回 False。
当且仅当对于任意一对节点,其中一个节点可以到达另一个节点,或者它们相互可达时,该图是半连通的。
此函数使用一个定理:一个有向无环图 (DAG) 是半连通的当且仅当对于任何拓扑排序,在该排序中的节点
存在一条边 。这允许我们通过凝聚图来检查非有向无环图G
是否是半连通的:即构建一个新的图H
,其节点是G
的强连通分量,并且如果G
中存在一条边 使得 且 ,则存在一条边 (scc_1, scc_2)。这会生成一个有向无环图,因此我们计算H
的拓扑排序,并检查对于每个 是否存在一条边 。- 参数:
- GNetworkX 图
一个有向图。
- 返回:
- semiconnected布尔值
如果图是半连通的,则为 True,否则为 False。
- 引发:
- NetworkXNotImplemented
如果输入图是无向图。
- NetworkXPointlessConcept
如果图是空的。
示例
>>> G = nx.path_graph(4, create_using=nx.DiGraph()) >>> print(nx.is_semiconnected(G)) True >>> G = nx.DiGraph([(1, 2), (3, 2)]) >>> print(nx.is_semiconnected(G)) False