位置算法之间的最短路线

Shortest route between locations algorithm

我需要找到 2 个位置之间的最短路线。详细说明:

我得到一个包含 3 列的 excel 文件:city1、city2、它们之间的距离。条件是如果 city1 和 city2 之间有一条路线,那么 city2 和 city1 之间也有一条路线。

该文件有多行,任务是读取它并根据城市 X 和城市 Y 之间的距离确定最短路径。但是,在 table 中,路径可能如下所示:

...

X, N, 100

X, M, 200

U, Y, 50

X, U, 20

...

我。 e.从 X 到 Y 没有直接路径,问题的答案是 X -> U -> Y = 20 + 50 = 70,这是最短距离。在此表格中,要求的出发点和到达点之间可能有许多位置。

UI 询问出发地、目的地并输出它们之间的最短路径。

我希望我解释得足够好,可以理解这个想法。我试图在 C# 中解决这个问题,但我更想寻找一种通用的方法,一种解决这个问题的算法。我意识到它可能与 Travelling salesman problem 有点相关,但我无法应用它。

感谢任何指导/帮助/代码示例。

所描述的问题在算法上比 Travelling Salesman problem, which is NP-hard. It is the Shortest Path problem, which can be solved efficiently with Dijkstra's algorithm 更容易。该算法要求距离为非负长度,这似乎是您的上下文的情况,因为边权重是非负的。