You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询NetworkX中Dijkstra最短路径总成本的便捷获取方法

如何用NetworkX直接获取最短路径的总成本?

嘿,作为NetworkX新手能自己写出计算路径总成本的代码已经很赞啦!其实你不用手动遍历路径节点求和,NetworkX本身就有内置工具可以直接搞定这个,而且能让你的代码更简洁高效~

两个实用的内置函数

  • nx.dijkstra_path_length:这个函数可以直接返回两点间最短路径的总权重,不用先获取路径再手动计算。用法很简单,只需要传入图、起点和终点就行。
  • nx.single_source_dijkstra:如果你既需要最短路径的长度,又需要路径本身,这个函数能一次性返回这两个结果,避免像你原来的代码那样重复调用dijkstra_path,节省计算资源。

优化后的代码示例

把你原来的代码改成这样就可以了:

import numpy as np
import networkx as nx

def shortest_path(a, b):
    # 你的邻接矩阵
    m = np.array([[0,2,1,...]])  
    network = nx.from_numpy_matrix(m)
    # 一次性获取最短路径长度和路径
    total_cost, path = nx.single_source_dijkstra(network, source=a, target=b)
    return (total_cost, path)

如果只需要总成本的话,单独调用nx.dijkstra_path_length(network, a, b)就能得到结果,完全省去手动求和的步骤。

这两个函数和你之前用的dijkstra_path基于相同的Dijkstra算法逻辑,结果和你手动计算的完全一致,但代码更简洁,也避免了手动索引可能带来的错误~

内容的提问来源于stack exchange,提问作者Zito Relova

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:32:18