位置算法之间的最短路线
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 更容易。该算法要求距离为非负长度,这似乎是您的上下文的情况,因为边权重是非负的。
我需要找到 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 更容易。该算法要求距离为非负长度,这似乎是您的上下文的情况,因为边权重是非负的。