我有一个n点集的集合,其中每个点集最多包含m个点。
我想从每个点集中选择一个点,以便得到的点选择尽可能靠近。(其中“接近度”有一个合理的定义,例如与所选点集的质心的距离平方和。)
例如,输入集合可以是:
Point Set A: [(2, 1), (1, 2), (6, 5)]
Point Set B: [(1, 1), (7, 3)]
Point Set C: [(3, 7), (5, 3)]
我想选择三个点,每个点集中一个,这些点最接近。在此示例中,左下角的三个点最接近,但它们不包括来自 C 的点。这里的解决方案是右侧的点:(6, 5)、(7, 3) 和(5, 3)。它们聚集在 (6, 3⅔) 处的质心周围。
蛮力算法尝试从集合中点的所有可能组合并跟踪“接近”函数的最小值(即O(m^n)算法),但我想知道是否有更有效的缩放n和m的大值的方式——如果不是在最坏的情况下,那么至少对于大多数输入。
更新:这些点将具有实际值作为坐标;上面使用整数来简化示例。