當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。