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


Python NetworkX all_simple_edge_paths用法及代碼示例


本文簡要介紹 networkx.algorithms.simple_paths.all_simple_edge_paths 的用法。

用法:

all_simple_edge_paths(G, source, target, cutoff=None)

為 G 中從源到目標的所有簡單路徑生成邊列表。

簡單路徑是沒有重複節點的路徑。

參數

GNetworkX 圖
source節點

路徑的起始節點

target節點

結束路徑的單個節點或節點的可迭代

cutoff整數,可選

停止搜索的深度。僅返回長度 <= 截止的路徑。

返回

path_generator:生成器

生成簡單路徑列表的生成器。如果在給定的截止範圍內源和目標之間沒有路徑,則生成器不會產生輸出。對於多重圖,邊列表具有 (u,v,k) 形式的元素。其中k對應邊鍵。

注意

該算法使用修改後的深度優先搜索來生成路徑 [1]。在 時間內可以找到一條路徑,但圖中簡單路徑的數量可能非常大,例如 的完整圖中的

參考

1

R. Sedgewick, “Algorithms in C, Part 5: Graph Algorithms”, Addison Wesley Professional, 3rd ed., 2001.

例子

打印 Graph 的簡單路徑邊:

>>> g = nx.Graph([(1, 2), (2, 4), (1, 3), (3, 4)])
>>> for path in sorted(nx.all_simple_edge_paths(g, 1, 4)):
...     print(path)
[(1, 2), (2, 4)]
[(1, 3), (3, 4)]

打印 MultiGraph 的簡單路徑邊。返回的邊帶有它們的關聯鍵:

>>> mg = nx.MultiGraph()
>>> mg.add_edge(1, 2, key="k0")
'k0'
>>> mg.add_edge(1, 2, key="k1")
'k1'
>>> mg.add_edge(2, 3, key="k0")
'k0'
>>> for path in sorted(nx.all_simple_edge_paths(mg, 1, 3)):
...     print(path)
[(1, 2, 'k0'), (2, 3, 'k0')]
[(1, 2, 'k1'), (2, 3, 'k0')]

相關用法


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