contracted_edge#
- contracted_edge(G, edge, self_loops=True, copy=True)[源代码]#
返回收缩指定边的结果图。
边缘收缩将边缘的两个端点标识为单个节点,该节点与原始两个节点所关联的任何边缘相关联。由边收缩产生的图称为 少数的 原始图形的。
- 参数
- G网络X图表
其边将被收缩的图。
- edge元组
必须是中的一对节点
G
。- self_loops布尔值
如果为True,则任何边(包括
edge
)加入的端点edge
在……里面G
在返回的图中的新节点上成为自循环。- copy布尔值(默认为True)
如果为True,则将对的副本执行收缩
G
,否则收缩将发生在适当的地方。
- 返回
- 网络图
与相同类型的新图形对象
G
(离开G
未修改)的端点为edge
在单个节点中标识。的右节点edge
将合并到左边的一个,因此只有左边的一个将出现在返回的图表中。
- 加薪
- ValueError
如果
edge
不是优势G
.
实例
尝试收缩两个不相邻的节点会产生错误:
>>> G = nx.cycle_graph(4) >>> nx.contracted_edge(G, (1, 3)) Traceback (most recent call last): ... ValueError: Edge (1, 3) does not exist in graph G; cannot contract it
上收缩循环图中的两个相邻节点 n 节点生成上的循环图 n - 1 节点:
>>> C5 = nx.cycle_graph(5) >>> C4 = nx.cycle_graph(4) >>> M = nx.contracted_edge(C5, (0, 1), self_loops=False) >>> nx.is_isomorphic(M, C4) True