k_edge_subgraphs#
- k_edge_subgraphs(G, k)[源代码]#
在G中的每个最大k边连通子图中生成节点。
- 参数
- G网络X图表
- k整数
所需的边连接
- 返回
- k_edge_subgraphsK-边子图的一个生成器
每个k边子图是定义G的一个k边连通的子图的极大节点集。
- 加薪
- NetworkXNotImplemented
如果输入图是多重图。
- ValueError:
如果k小于1
参见
edge_connectivity()
k_edge_components()
与此函数类似,但是节点只需要在图G中具有k边连通性,子图可能不具有k边连通性。
笔记
尝试使用基于k的最有效的实现。如果k=1或k=2并且图是无向的,那么这只需调用
k_edge_components
. 否则算法来自 [[1] 使用。工具书类
- 1
周,刘,等.(2012)从大图中找到最大k边连通子图。ACM国际扩展数据库技术会议2012 480-491。https://openproceedings.org/2012/conf/edbt/zhoulylcl12.pdf
实例
>>> import itertools as it >>> from networkx.utils import pairwise >>> paths = [ ... (1, 2, 4, 3, 1, 4), ... (5, 6, 7, 8, 5, 7, 8, 6), ... ] >>> G = nx.Graph() >>> G.add_nodes_from(it.chain(*paths)) >>> G.add_edges_from(it.chain(*[pairwise(path) for path in paths])) >>> # note this does not return {1, 4} unlike k_edge_components >>> sorted(map(sorted, nx.k_edge_subgraphs(G, k=3))) [[1], [2], [3], [4], [5, 6, 7, 8]]