当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX contracted_edge用法及代码示例


本文简要介绍 networkx.algorithms.minors.contracted_edge 的用法。

用法:

contracted_edge(G, edge, self_loops=True, copy=True)

返回收缩指定边所产生的图形。

边收缩将边的两个端点标识为一个单个节点,该节点与入射到原始两个节点的任何边相连。由边收缩产生的图称为原始图的minor

参数

GNetworkX 图

边将被收缩的图。

edge元组

必须是 G 中的一对节点。

self_loops布尔值

如果这是 True,则在 G 中连接 edge 端点的任何边(包括 edge )将成为返回图中新节点上的自循环。

copy布尔值(默认为 True)

如果这是 True,则将在 G 的副本上执行收缩,否则将在原地发生收缩。

返回

Networkx 图

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

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.minors.contracted_edge。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。