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


Python NetworkX line_graph用法及代碼示例


本文簡要介紹 networkx.generators.line.line_graph 的用法。

用法:

line_graph(G, create_using=None)

返回圖形或有向圖 G 的折線圖。

G 的折線圖對於G 中的每條邊都有一個節點,如果G 中的兩條邊共享一個公共節點,則有一條邊連接這些節點。對於有向圖,當節點表示的邊形成長度為 2 的有向路徑時,節點恰好相鄰。

折線圖的節點是原始圖中節點的 2 元組(或多重圖的 3 元組,邊的鍵作為第三個元素)。

有關自循環和更多討論的信息,請參閱下麵的注釋部分。

參數

G圖形

NetworkX 圖、有向圖、多重圖或多向圖。

create_usingNetworkX 圖形構造函數,可選(默認=nx.Graph)

要創建的圖表類型。如果是圖形實例,則在填充之前清除。

返回

L圖形

G的折線圖。

注意

圖、節點和邊數據不會傳播到新圖。對於無向圖,G 中的節點必須是可排序的,否則構造的折線圖可能不正確。

Self-loops in undirected graphs

對於沒有多條邊的無向圖G,每條邊都可以寫成一個集合{u, v}。它的折線圖LG 的邊作為節點。如果xyL中的兩個節點,那麽{x, y}L中的邊當且僅當xy的交集是非空的。因此,所有邊的集合由G 中所有成對的邊的集合確定。

簡單地說,G 中的每條邊都與自身有一個非零交點,因此L 中的每個節點都應該有一個自環。這不是很有趣,線圖的原始上下文是簡單的圖,沒有自環或多重邊。折線圖也應該是一個簡單的圖,因此L 中的自環不是折線圖標準定義的一部分。在成對交集矩陣中,這類似於從折線圖定義中排除對角線條目。

G 中的自循環和多重邊以自然的方式將節點添加到L,並且不需要對定義進行任何根本性的更改。有人可能會爭辯說,我們之前排除的自環現在應該包括在內。然而,在某種意義上,自環仍然是“trivial”,因此通常被排除在外。

Self-loops in directed graphs

對於沒有多條邊的有向圖G,每條邊都可以寫成一個元組(u, v)。它的折線圖LG 的邊作為節點。如果 xyL 中的兩個節點,那麽 (x, y)L 中的邊當且僅當 x 的尾部與 y 的頭部匹配,例如,如果 x = (a, b)y = (b, c) 用於某些頂點 abG 中的 c

由於邊的定向性質,不再是 G 中的每個邊都應該在 L 中具有自循環的情況。現在,自循環出現的唯一時間是G 中的節點本身是否具有自循環。所以這樣的自環不再是“trivial”,而是代表G拓撲的基本特征。出於這個原因,線圖的曆史發展是這樣的,包括自環。當圖G 有多個邊時,再次隻需要對定義進行表麵更改。

參考

  • Harary, Frank 和 Norman, Robert Z.,“線有向圖的一些屬性”,Rend。圓形。填充。巴勒莫,II。爵士。 9 (1960), 161-168。
  • 海明格,R. L.; Beineke, L. W. (1978), “Line graphs and line digraphs”, 在 Beineke, L. W.; Wilson, R. J.,圖論選題,Academic Press Inc.,第 271-305 頁。

例子

>>> G = nx.star_graph(3)
>>> L = nx.line_graph(G)
>>> print(sorted(map(sorted, L.edges())))  # makes a 3-clique, K3
[[(0, 1), (0, 2)], [(0, 1), (0, 3)], [(0, 2), (0, 3)]]

相關用法


注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.generators.line.line_graph。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。