我有一种算法,目前从我的数据库中提取几个 2D 球体点(不超过 6 个),这些点都在彼此之间的一定半径内。拉出这些点后,我想以有效的路线对它们进行排序并按此顺序返回它们(当前,当我返回它们时,可以将用户从一个点发送到离它最远的点,即使有途中的点)。是否有使用 MongoDB 2Dsphere 点执行此操作的有效方法?我尝试过的蛮力方法不是很有效:我找到离起点A最近的B点,然后找到离B点最近的C点,以此类推。
问问题
55 次
1 回答
0
这就是旅行商问题。尽管有一些算法可以很好地逼近有效路线,但蛮力的计算成本非常高。
https://en.wikipedia.org/wiki/Travelling_salesman_problem
wiki 文章有一些很好的近似算法来帮助你开始你的谷歌搜索
https://en.wikipedia.org/wiki/Travelling_salesman_problem#Christofides.27_algorithm_for_the_TSP
于 2017-02-08T15:59:02.147 回答