当给出包含每个节点之间的行程时间的矩阵时,如何计算两个地方之间的最小行程时间

时间:2012-08-06 21:03:24

标签: algorithm graph path matrix shortest

对于n个电台,我们会n*n矩阵AA[i][j]表示从电台ij的直接旅程时间( i,j< = n)。

在车站之间旅行的人总是寻求最少的时间。鉴于两个电台号码ab,如何计算它们之间的最短旅行时间?

这个问题可以在不使用图论的情况下解决,即只用矩阵A吗?

2 个答案:

答案 0 :(得分:5)

你需要图论来解决它 - 更具体地说,你需要Dijkstra's algorithm。将图表表示为矩阵既不是该算法的优点也不是缺点。

但请注意,Dijkstra的算法要求所有距离都是非负的。如果由于某种原因,矩阵中的“距离”为负,则必须使用较慢的Bellman-Ford algorithm

(如果你真的热衷于使用矩阵运算并且不介意它会非常慢,你可以使用基于非常简单的矩阵运算的Floyd-Warshall algorithm来计算最短路径在所有对站之间(大规模矫枉过正),然后挑选你感兴趣的那对......)

答案 1 :(得分:-4)

这看起来非常类似于NP难以旅行的推销员问题。

Wiki link to TSP