本文简要介绍
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。