我正在为一家运输公司做一个项目 . 基本上,我得到了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进行有限的调用,我想在本地排除最糟糕的选项)