Algorithm 平面上n个点中求一个点以最小化距离和的算法

Algorithm 平面上n个点中求一个点以最小化距离和的算法,algorithm,Algorithm,我这里有一个算法问题。这与正常情况不同 给定平面上的一组n点,我需要找出哪一个可以最小化到其余n-1点的距离之和 你知道运行小于O(n^2)的算法吗 谢谢。一种解决方案是假设中值接近平均值,对于接近平均值的一部分点,彻底计算距离之和。您可以选择最接近平均值的klog(n)点,其中k是任意选择的常数(复杂性nlog(n)) 另一种可能的解决方案是Delaunay三角剖分。这种三角测量在O(nlogn)时间内是可能的。三角剖分的结果是每个点和边有一个顶点的图满足delauney三角剖分。 完成三角剖

我这里有一个算法问题。这与正常情况不同

给定平面上的一组
n
点,我需要找出哪一个可以最小化到其余
n-1
点的距离之和

你知道运行小于O(n^2)的算法吗


谢谢。

一种解决方案是假设中值接近平均值,对于接近平均值的一部分点,彻底计算距离之和。您可以选择最接近平均值的klog(n)点,其中k是任意选择的常数(复杂性nlog(n))

另一种可能的解决方案是Delaunay三角剖分。这种三角测量在O(nlogn)时间内是可能的。三角剖分的结果是每个点和边有一个顶点的图满足delauney三角剖分。
完成三角剖分后,可以从任意点开始,比较该点与其相邻点之间的距离总和,并不断迭代移动。当当前点与其相邻点的距离之和最小时,可以停止。直观地说,这将在全局最优点处停止。

我认为这里的基本假设是,您有一个可以轻松绑定的点数据集,因为许多在实践中“足够好”的算法对于理论可能不够严格,并且/或者对于任意大的解可能无法很好地扩展

一个可能“足够好”的非常简单的解决方案是在Y坐标上排序坐标,然后在X坐标上进行稳定排序

以最小值(X,Y)和最大值(X,Y)定义的矩形,复杂度O(1),作为排序数据集中已知位置的值

现在,从排序数据集的中心开始,找到尽可能接近{Xctr=Xmin+(Xmax-Xmin)/2,Yctr=Ymin+(Ymax-Ymin)/2}的坐标值——复杂性O(N)由最小化标准限定,距离为{Xctr,Yctr}的熟悉半径


最糟糕的情况是将质心与其他点进行比较,但是一旦你离开了中间点,你就不会改进全局最优解,应该终止搜索。

你想让算法只处理欧几里得距离还是任何一种距离?@ScottHunter我想他想要的是距离几何中值最近的点(应该不难找到)但是我不确定。@Josay:对于任何
距离都是理想的,但是欧几里得距离是可以的。@ScottHunter:我说过这两个问题是不同的。在这里,我要求目标点是给定的点之一。谢谢你的想法。“对于接近平均值的点子集”,您的确切含义是什么?你如何定义“关闭”呢。同样在“Delaunay三角剖分”思想中,如何“迭代地保持移动”?如何判断停车标准?