Dijkstra算法在python中的邻接矩阵

时间:2015-04-17 12:13:01

标签: python algorithm

如何在邻接矩阵上使用Dijkstra算法而不需要Python中的边缘成本?如果在2个顶点之间存在边缘则为1,否则为0。我在互联网上找到的解释都是针对有成本的图表。

3 个答案:

答案 0 :(得分:2)

Dijkstra's algorithm需要边缘成本才能运作。如果您想在图表上使用"无需费用"运行算法,我假设您尝试在2个顶点之间找到最短路径路径中边数的术语。

在这种情况下,您可以假设每个边缘的成本为1,Dijkstra的算法将按预期工作。还要确保忽略搜索中不存在的边(您不希望矩阵中的零被计为零成本边)。

答案 1 :(得分:2)

如果你没有权重,你可以使用Dijkstra并为所有边定义weight = 1或使用BFS,这基本上是Dijkstra的特例但没有加权边。

答案 2 :(得分:0)

当我必须在php中实现Dijkstra算法以找到数据库的两个表之间的较短路径时,我构造了具有3个值的矩阵:如果2个点相同则为0,如果它们是链接则为1通过边缘,否则为-1。

之后,算法按预期工作。