节点连通性#
- node_connectivity(G, s=None, t=None)[source]#
返回图 G 或有向图 G 的节点连通性的近似值。
节点连通性等于必须移除以断开 G 或使其变为平凡图的最小节点数。根据 Menger 定理,这等于节点独立路径的数量(除了源节点和目标节点外不共享任何节点的路径)。
如果提供了源节点和目标节点,此函数返回局部节点连通性:即必须移除以断开 G 中从源节点到目标节点的所有路径的最小节点数。
该算法基于一种快速近似方法,该方法为两个节点之间节点独立路径的实际数量提供了严格的下限 [1]。它适用于有向图和无向图。
- 参数:
- GNetworkX 图
无向图
- s节点
源节点。可选。默认值:None。
- t节点
目标节点。可选。默认值:None。
- 返回:
- K整数
图 G 的节点连通性,如果提供了源节点和目标节点,则为局部节点连通性。
注释
该算法 [1] 通过使用 BFS 计算两个节点之间的最短路径来查找节点独立路径,将找到的路径中的节点标记为“已使用”,然后搜索排除已标记为已使用的节点的其他最短路径,直到不再存在路径。它不精确,因为最短路径可能会使用一些节点,如果路径更长,这些节点可能属于两条不同的节点独立路径。因此,它只保证节点连通性的严格下限。
参考文献
[1] (1,2)White, Douglas R., and Mark Newman. 2001 一种快速的节点独立路径算法. Santa Fe Institute Working Paper #01-07-035 http://eclectic.ss.uci.edu/~drwhite/working.pdf
示例
>>> # Platonic octahedral graph is 4-node-connected >>> from networkx.algorithms import approximation as approx >>> G = nx.octahedral_graph() >>> approx.node_connectivity(G) 4