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


Python NetworkX recursive_simple_cycles用法及代碼示例


本文簡要介紹 networkx.algorithms.cycles.recursive_simple_cycles 的用法。

用法:

recursive_simple_cycles(G)

找到有向圖的簡單循環(基本電路)。

simple cycleelementary circuit 是沒有節點出現兩次的封閉路徑。如果兩個基本電路不是彼此的循環排列,則它們是不同的。

此版本使用遞歸算法來構建循環列表。您可能應該使用名為simple_cycles() 的迭代器版本。警告:此遞歸版本使用大量 RAM!它出現在NetworkX 中以獲得教學值。

參數

GNetworkX 有向圖

有向圖

返回

循環列表,其中每個循環由節點列表表示
沿著循環。
例子:
>>> edges = [(0, 0), (0, 1), (0, 2), (1, 2), (2, 0), (2, 1), (2, 2)]
    ..
>>> G = nx.DiGraph(edges)
    ..
>>> nx.recursive_simple_cycles(G)
    ..
[[0], [2], [0, 1, 2], [0, 2], [1, 2]]

注意

實現遵循[1]中的第79-80頁。

節點、 邊和 基本電路的時間複雜度為

參考

1

Finding all the elementary circuits of a directed graph. D. B. Johnson, SIAM Journal on Computing 4, no. 1, 77-84, 1975. https://doi.org/10.1137/0204007

相關用法


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