确定MongoDB 2dsphere点之间的路由

时间:2017-02-08 15:54:00

标签: mongodb algorithm optimization distance 2dsphere

我有一个算法,它当前从我的数据库中提取了几个2Dsphere点(不超过6个),它们彼此之间都在一定范围内。一旦我提取了这些点,我想以有效的路线订购它们并按此顺序返回它们(目前,当我返回它们时,用户可以从一个点发送到距离它最远的点,即使有在路上的点之间)。有没有一种有效的方法来使用MongoDB 2Dsphere点进行此操作?我试验过的蛮力方法效率不高:我发现B点最接近起点A,然后找到最接近B点的C点,依此类推。

1 个答案:

答案 0 :(得分:0)

这是旅行商问题。虽然有一些算法可以很好地逼近有效路径,但是暴力破坏力计算成本极高。

https://en.wikipedia.org/wiki/Travelling_salesman_problem

维基文章有一些很好的近似算法,可以让你开始使用谷歌搜索

https://en.wikipedia.org/wiki/Travelling_salesman_problem#Christofides.27_algorithm_for_the_TSP