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