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


Python NetworkX floyd_warshall_predecessor_and_distance用法及代码示例


本文简要介绍 networkx.algorithms.shortest_paths.dense.floyd_warshall_predecessor_and_distance 的用法。

用法:

floyd_warshall_predecessor_and_distance(G, weight='weight')

使用 Floyd 算法查找 all-pairs 最短路径长度。

参数

GNetworkX 图
weight: string, optional (default= ‘weight’)

边权重对应的边数据键。

返回

predecessor,distance字典

字典,由源和目标键控,前身和最短路径的距离。

注意

当 Dijkstra 算法失败时,Floyd 算法适用于在密集图或负权重图中寻找最短路径。如果存在负循环,该算法仍然可能失败。它的运行时间为 ,运行空间为

例子

>>> G = nx.DiGraph()
>>> G.add_weighted_edges_from(
...     [
...         ("s", "u", 10),
...         ("s", "x", 5),
...         ("u", "v", 1),
...         ("u", "x", 2),
...         ("v", "y", 1),
...         ("x", "u", 3),
...         ("x", "v", 5),
...         ("x", "y", 2),
...         ("y", "s", 7),
...         ("y", "v", 6),
...     ]
... )
>>> predecessors, _ = nx.floyd_warshall_predecessor_and_distance(G)
>>> print(nx.reconstruct_path("s", "v", predecessors))
['s', 'x', 'u', 'v']

相关用法


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