位置之间的最短路线算法

本文关键字:算法 短路 之间 位置 | 更新日期: 2023-09-27 18:37:25

我需要找到 2 个地点之间的最短路线。详细阐述:

我得到了一个包含 3 列的 excel 文件:city1、city2、它们之间的距离。条件是,如果城市 1 和城市 2 之间有一条路由,则在城市 2 和城市 1 之间有一条路由。

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

X, N, 100

X, M, 200

U, Y, 50

X, U, 20

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

UI询问出发,目的地并输出两者之间的最短路径。

我希望我解释得足够好,以便得到这个想法。我正在尝试用 C# 解决这个问题,但我更在寻找一种通用方法,一种解决这个问题的算法。我意识到这可能与旅行推销员问题有关,但我无法应用它。

感谢任何方向/帮助/代码示例。

位置之间的最短路线算法

所描述的问题在算法上比旅行推销员问题更容易,后者是NP困难的。这是最短路径问题,可以用Dijkstra算法有效地解决。此算法要求距离长度为非负,这似乎是您的上下文的情况,因为边权重是非负的。