networkx.algorithms.cycles.simple_cycles
的用法。用法:
simple_cycles(G)
找到有向圖的簡單循環(基本電路)。
simple cycle
或elementary circuit
是沒有節點出現兩次的封閉路徑。如果兩個基本電路不是彼此的循環排列,則它們是不同的。這是約翰遜算法的非遞歸迭代器/生成器版本 [1]。對於某些情況可能有更好的算法[2][3]。
- G:NetworkX 有向圖
有向圖
- cycle_generator:生成器
生成圖的基本循環的生成器。每個循環由循環中的節點列表表示。
參數:
返回:
注意:
實現遵循[1]中的第79-80頁。
節點、 邊和 基本電路的時間複雜度為 。
參考:
- 1(1,2)
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
- 2
Enumerating the cycles of a digraph: a new preprocessing strategy. G. Loizou and P. Thanish, Information Sciences, v. 27, 163-182, 1982.
- 3
A search strategy for the elementary cycles of a directed graph. J.L. Szwarcfiter and P.E. Lauer, BIT NUMERICAL MATHEMATICS, v. 16, no. 2, 192-204, 1976.
例子:
>>> edges = [(0, 0), (0, 1), (0, 2), (1, 2), (2, 0), (2, 1), (2, 2)] >>> G = nx.DiGraph(edges) >>> len(list(nx.simple_cycles(G))) 5
要過濾循環以使其不包含某些節點或邊,請在調用之前複製您的圖並消除這些節點或邊
>>> copyG = G.copy() >>> copyG.remove_nodes_from([1]) >>> copyG.remove_edges_from([(0, 1)]) >>> len(list(nx.simple_cycles(copyG))) 3
相關用法
- Python NetworkX simrank_similarity用法及代碼示例
- Python NetworkX simulated_annealing_tsp用法及代碼示例
- Python NetworkX single_source_dijkstra_path_length用法及代碼示例
- Python NetworkX single_source_bellman_ford用法及代碼示例
- Python NetworkX single_source_bellman_ford_path用法及代碼示例
- Python NetworkX single_source_bellman_ford_path_length用法及代碼示例
- Python NetworkX single_source_shortest_path_length用法及代碼示例
- Python NetworkX single_source_dijkstra用法及代碼示例
- Python NetworkX single_source_shortest_path用法及代碼示例
- Python NetworkX single_source_dijkstra_path用法及代碼示例
- Python NetworkX single_target_shortest_path_length用法及代碼示例
- Python NetworkX single_target_shortest_path用法及代碼示例
- Python NetworkX subgraph_view用法及代碼示例
- Python NetworkX shortest_path用法及代碼示例
- Python NetworkX square_clustering用法及代碼示例
- Python NetworkX soft_random_geometric_graph用法及代碼示例
- Python NetworkX sets用法及代碼示例
- Python NetworkX shell_layout用法及代碼示例
- Python NetworkX sudoku_graph用法及代碼示例
- Python NetworkX snap_aggregation用法及代碼示例
- Python NetworkX set_edge_attributes用法及代碼示例
- Python NetworkX stochastic_block_model用法及代碼示例
- Python NetworkX symmetric_difference用法及代碼示例
- Python NetworkX selfloop_edges用法及代碼示例
- Python NetworkX second_order_centrality用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.cycles.simple_cycles。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。