當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。