我正在为一家运输公司做一个项目 . 基本上,我得到了200辆城市和7辆卡车,我需要计算7辆卡车的最佳重量分布和最短路径(km) .
在我实际与Google Maps API进行通信之前,我会自行计算 . 对于7辆卡车,我可以在大约2小时内计算出大约30万条路线 . (重量分布通过回溯/动态编程完成,“下一个城市”选择一些数学公式)
我需要比较这些路线并记住最好的路线(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 *算法来订购每辆卡车的城市,然后获得订购城市之间的距离 . 问题是,在现实生活中,卡车将重新回到起点... A *可以考虑到吗?
我知道经度/纬度的最短路径并不总是以km为单位的最短路径,但是可以,假设准确度为90% .
我知道如何为每条路线(所有7辆卡车)计算“得分”,以便它能够尽可能接近实际公里的 Map 吗?
(我可以对Google Maps API进行有限的调用,我想在本地排除最糟糕的选项)