给定2-D平面上的n个点,使得与所有点的距离最小化的重点是什么?这一点不必来自给定的一组点。它是质心还是其他什么?
如何使用算法找到所有这些点(如果不止一个)?
答案 0 :(得分:5)
这被称为“距离中心”,与质心不同。
首先,您必须定义您使用的距离的度量。如果我们假设你使用的标准度量为d = sqrt((x1-x2)^ 2 +(y1-y2)^ 2)那么它不是唯一的,问题是最小化这个总和。
显示此答案的最简单示例不是唯一的直线示例。两点之间的任何点与所有点的总距离相等。
在1D中,正确答案将是与右侧和左侧具有相同点数的任何答案。只要这是真的,那么向左和向右的任何移动都会增加和减少左右两侧相同的量,因此保持距离相同。这也证明了质心不一定是正确答案。
如果我们扩展到2D,则不再是这种情况 - 因为sqrt使问题加权。令我惊讶的是,似乎没有标准算法!页面here似乎使用强力方法。我从来不知道!
如果我想使用算法,那么我会在X和Y中找到中间点作为起点,然后使用gradient descent algorithm - 这样可以很快得到答案。整个方程最终成为二次方程式,因此感觉应该有一个精确的解决方案。
答案 1 :(得分:3)
可能不止一点。考虑一个只有两个点的飞机。这些点描述了一个线段。该线段上的任何点与两个端点的总距离相同。
答案 2 :(得分:0)
蛮力算法。可能会给你最好的结果。首先,找到一个矩形/任何限制输入点的四边形。最后,对于矩形内的每个点,计算与其他点的距离。将点与输入集的距离相加。说这是关键点的“成本”。对每个点重复并用min选择点。成本。
情报也可以添加到算法中。它可以根据平均成本等消除区域......
至少我会如何处理这个问题...希望它有所帮助。
答案 3 :(得分:0)