当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX negative_edge_cycle用法及代码示例


本文简要介绍 networkx.algorithms.shortest_paths.weighted.negative_edge_cycle 的用法。

用法:

negative_edge_cycle(G, weight='weight', heuristic=True)

如果在 G 中的任何地方都存在负边沿循环,则返回 True。

参数

GNetworkX 图
weight字符串或函数

如果这是一个字符串,则将通过带有此键的边属性访问边权重(即,连接 uv 的边的权重将为 G.edges[u, v][weight] )。如果不存在这样的边属性,则假设边的权重为 1。

如果这是一个函数,则边的权重是函数返回的值。该函数必须准确地接受三个位置参数:一条边的两个端点和该边的边属性字典。该函数必须返回一个数字。

heuristicbool

确定是否使用启发式方法以可忽略的成本及早检测负循环。在具有负循环的图的情况下,检测性能至少提高了一个数量级。

返回

negative_cyclebool

如果存在负边沿循环,则为 True,否则为 False。

注意

边权重属性必须是数字。距离计算为遍历的加权边的总和。

该算法使用bellman_ford_predecessor_and_distance(),但通过首先添加一个连接到每个节点的新节点,然后在该节点上启动bellman_ford_predecessor_and_distance,在任何组件上找到负循环。然后它会删除那个额外的节点。

例子

>>> G = nx.cycle_graph(5, create_using=nx.DiGraph())
>>> print(nx.negative_edge_cycle(G))
False
>>> G[1][2]["weight"] = -7
>>> print(nx.negative_edge_cycle(G))
True

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.shortest_paths.weighted.negative_edge_cycle。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。