本文簡要介紹
networkx.algorithms.dag.transitive_closure
的用法。用法:
transitive_closure(G, reflexive=False)
返回圖的傳遞閉包
G = (V,E) 的傳遞閉包是一個圖 G+ = (V,E+) 使得對於 V 中的所有 v, w 在 E+ 中存在一條邊 (v, w) 當且僅當存在從G 中的 v 到 w。
在此定義中,處理從 v 到 v 的路徑具有一定的靈活性。自反傳遞閉包為從 v 到 v 的長度為 0 的路徑創建一個自環。通常的傳遞閉包僅在存在循環時才創建一個自環(從 v 到 v 的長度 > 0 的路徑)。我們還允許選擇無自循環。
- G:NetworkX 圖表
有向/無向圖/多重圖。
- reflexive:Bool 或 None,可選(默認值:False)
確定循環何時在傳遞閉包中創建自循環。如果為真,瑣碎循環(長度為 0)會創建自循環。結果是 G 的自反傳遞閉包。如果 False(默認)非平凡循環創建自循環。如果為 None,則不創建自循環。
- NetworkX 圖
G
的傳遞閉包
- NetworkXError
如果
reflexive
不在{None, True, False}
中
參數:
返回:
拋出:
參考:
例子:
瑣碎(即長度為 0)周期的處理由
reflexive
參數控製。當
reflexive=False
(默認值)時,瑣碎(即長度為 0)循環不會創建自循環:>>> DG = nx.DiGraph([(1, 2), (2, 3)]) >>> TC = nx.transitive_closure(DG, reflexive=False) >>> TC.edges() OutEdgeView([(1, 2), (1, 3), (2, 3)])
但是,當
reflexive=False
(默認值)時,非平凡(即長度大於 0)循環會創建自循環:>>> DG = nx.DiGraph([(1, 2), (2, 3), (3, 1)]) >>> TC = nx.transitive_closure(DG, reflexive=False) >>> TC.edges() OutEdgeView([(1, 2), (1, 3), (1, 1), (2, 3), (2, 1), (2, 2), (3, 1), (3, 2), (3, 3)])
當
reflexive=True
時,平凡循環(長度 0)創建自循環:>>> DG = nx.DiGraph([(1, 2), (2, 3)]) >>> TC = nx.transitive_closure(DG, reflexive=True) >>> TC.edges() OutEdgeView([(1, 2), (1, 1), (1, 3), (2, 3), (2, 2), (3, 3)])
第三個選項是在
reflexive=None
時根本不創建自循環:>>> DG = nx.DiGraph([(1, 2), (2, 3), (3, 1)]) >>> TC = nx.transitive_closure(DG, reflexive=None) >>> TC.edges() OutEdgeView([(1, 2), (1, 3), (2, 3), (2, 1), (3, 1), (3, 2)])
相關用法
- Python NetworkX transitive_closure_dag用法及代碼示例
- Python NetworkX transitive_reduction用法及代碼示例
- Python NetworkX transitivity用法及代碼示例
- Python NetworkX traveling_salesman_problem用法及代碼示例
- Python NetworkX tree_graph用法及代碼示例
- Python NetworkX triangles用法及代碼示例
- Python NetworkX triad_graph用法及代碼示例
- Python NetworkX tree_data用法及代碼示例
- Python NetworkX to_prufer_sequence用法及代碼示例
- Python NetworkX to_numpy_recarray用法及代碼示例
- Python NetworkX to_dict_of_dicts用法及代碼示例
- Python NetworkX to_scipy_sparse_array用法及代碼示例
- Python NetworkX to_pydot用法及代碼示例
- Python NetworkX threshold_accepting_tsp用法及代碼示例
- Python NetworkX to_vertex_cover用法及代碼示例
- Python NetworkX to_sparse6_bytes用法及代碼示例
- Python NetworkX to_numpy_matrix用法及代碼示例
- Python NetworkX topological_generations用法及代碼示例
- Python NetworkX to_graph6_bytes用法及代碼示例
- Python NetworkX tensor_product用法及代碼示例
- Python NetworkX to_pandas_adjacency用法及代碼示例
- Python NetworkX to_nested_tuple用法及代碼示例
- Python NetworkX to_networkx_graph用法及代碼示例
- Python NetworkX to_numpy_array用法及代碼示例
- Python NetworkX to_agraph用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.algorithms.dag.transitive_closure。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。