find_negative_cycle#

find_negative_cycle(G, source, weight='weight')[源代码]#

返回总权重为负的循环(如果存在)。

Bellman-Ford用于寻找最短路径。如果存在负循环,则该算法停止。该算法从那里提取并返回找到的负循环。

循环由按循环顺序排列的节点列表组成。最后一个节点等于第一个节点,使其成为一个循环。您可以在原始图形中查找边权重。在多重图的情况下,相关边是2元组中节点之间的最小权边。

如果该图没有负循环,则会引发NetworkXError。

参数
G网络X图表
source: list of nodes

源节点列表。搜索从列表中的所有源节点开始。

weight字符串或函数

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

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

返回
cycle列表

按找到的周期顺序排列的节点列表。最后一个节点等于第一个节点,表示一个循环。

加薪
NetworkXError

如果没有发现负周期。