邻接矩阵中的 Dijkstra 算法

Posted

技术标签:

【中文标题】邻接矩阵中的 Dijkstra 算法【英文标题】:Dijkstra's Algorithm from Adjacency Matrix 【发布时间】:2013-01-20 12:37:13 【问题描述】:

我有一个由二维数组表示的有向无环图的邻接矩阵:

[[0, 4, 3, 0]
 [0, 0, 0, 1]
 [0, 3, 0, 1]
 [2, 0, 0, 0]]

是否有可以在这种数据类型上运行 Dijkstra 算法的 Python 模块或快速代码 sn-p? Python 食谱使用我相信的优先级字典,但我真的很想将它保存在二维数组中。任何帮助将不胜感激。

【问题讨论】:

Dijkstar 能满足您的需求吗? 【参考方案1】:

networkx 可能满足您的需求:

import networkx as nx
import numpy as np
A = np.array([[0, 4, 3, 0],
              [0, 0, 0, 1],
              [0, 3, 0, 1],
              [2, 0, 0, 0]])
G = nx.from_numpy_matrix(A, create_using=nx.DiGraph())
print(nx.dijkstra_path(G, 0, 1))

另见:networkx.dijkstra_path

【讨论】:

以上是关于邻接矩阵中的 Dijkstra 算法的主要内容,如果未能解决你的问题,请参考以下文章

算法Dijkstra算法(单源最短路径问题) 邻接矩阵和邻接表实现

最短路径(邻接矩阵)-Dijkstra算法

Dijkstra 算法不起作用(邻接矩阵)

基于邻接矩阵的Dijkstra算法——C++实现

c_cpp Dijkstra的邻接矩阵表示算法

基于邻接矩阵的Dijkstra算法——C++实现