【发布时间】:2015-01-13 15:13:08
【问题描述】:
我需要找到 2 个地点之间的最短路线。详细说明:
我得到一个包含 3 列的 excel 文件:city1、city2、它们之间的距离。条件是如果city1 和city2 之间有一条路线,那么city2 和city1 之间就有一条路线。
该文件有多行,任务是读取它并根据城市 X 和城市 Y 之间的距离确定最短路径。但是,在表格中,路径可能如下所示:
...
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 有点相关,但我无法应用它。
感谢任何方向/帮助/代码示例。
【问题讨论】:
-
看看A*吧? en.wikipedia.org/wiki/A*_search_algorithm
-
你想要的是Shortest path problem,而不是旅行推销员问题。
-
在最短路径问题和旅行商问题之间存在指数差异。这对你来说是幸运的。