C# 图中的最短路径(如何返回原点?)

C# 图中的最短路径(如何返回原点?),c#,algorithm,google-maps-api-3,graph,shortest-path,C#,Algorithm,Google Maps Api 3,Graph,Shortest Path,我在一家运输公司做一个项目。基本上,我得到了,比如说,200辆城市卡车和7辆卡车,我需要计算7辆卡车的最佳重量分布和最短路径(km) 在我真正与谷歌地图API通信之前,我自己进行计算。对于7辆卡车,我可以在大约2小时内计算出大约3000万条路线。(通过回溯/动态规划完成权重分配,通过一些数学公式选择“下一个城市”) 我需要比较这些路线,记住最好的路线(7辆卡车的最小公里数) 我得到这样的东西: Truck 1 City 1 (x,y) City 2 (x,y) City

我在一家运输公司做一个项目。基本上,我得到了,比如说,200辆城市卡车和7辆卡车,我需要计算7辆卡车的最佳重量分布和最短路径(km)

在我真正与谷歌地图API通信之前,我自己进行计算。对于7辆卡车,我可以在大约2小时内计算出大约3000万条路线。(通过回溯/动态规划完成权重分配,通过一些数学公式选择“下一个城市”)

我需要比较这些路线,记住最好的路线(7辆卡车的最小公里数)

我得到这样的东西:

Truck 1
    City 1 (x,y)
    City 2 (x,y)
    City 3 (x,y)
    City 4 (x,y)
    .....

Truck 2
    City 1 (x,y)
    City 2 (x,y)
    City 3 (x,y)
    City 4 (x,y)
    .....

Truck 3
    City 1 (x,y)
    City 2 (x,y)
    City 3 (x,y)
    City 4 (x,y)
    .....

etc ...
其中(x,y)是经度和纬度。我可以用欧几里德距离d=sqrt((x1-x2)^2+(y1-y2)^2)计算每个城市之间的距离,因此我得到了一个图

我想用一个*算法来订购每辆卡车的市价 然后得到有序城市之间的距离。问题是 在现实生活中,卡车将回到起点 ... A能考虑一下吗

我知道经度/纬度上的最短路径并不总是公里数上的最短路径,但可以,比如说90%的准确度就可以了

知道我如何计算每条路线(全部7辆卡车)的“分数”吗 所以它可以尽可能接近实际的公里数


(我可以有限地调用Google Maps API,我想在本地排除最差的选项)

看看广度优先和深度优先算法。如果Google Maps许可证定价存在问题,为什么不看看OpenStreetMap.org。欧几里德距离是不正确的,因为除了赤道附近,经度不等于纬度。使用大圆计算会做得更好。非常感谢。现在我意识到我真的需要这个,看看广度优先和深度优先算法。如果谷歌地图许可证定价是个问题,为什么不看看OpenStreetMap.org。欧几里德距离是不正确的,因为除了赤道附近,经度不等于纬度。使用大圆计算会做得更好。非常感谢。现在我意识到我真的需要这个