位置算法之间的最短路径

Nik*_*a K 1 c# algorithm

我需要找到两个地点之间的最短路线.详细说明:

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

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

...

X,N,100

X,M,200

你,Y,50

X,U,20

...

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

UI要求离开,目的地并输出它们之间的最短路径.

我希望我能够很好地解释它以获得这个想法.我试图在C#中解决这个问题,但我更希望找到一种通用的方法,一种解决这个问题的算法.我意识到它可能与旅行推销员问题有些相关,但我无法应用它.

任何方向/帮助/代码样本赞赏.

Cod*_*dor 5

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