假设有一个2D平面(正方形),里面有一些点。
如何以尽可能均匀地填充飞机的方式移动所有点,但每个点都保持其邻居?
换句话说,我希望这些点尽可能地相互远离,但是它们的位置(拓扑)应该被保留,它们应该放在正方形中。
换句话说,我希望在富点人口区域放大并缩小空白区域。
PS:高维空间有一般的解决方案吗?有直接解决方案还是只有迭代解决方案?
答案 0 :(得分:2)
一个好的建议是Lloyd's algorithm。但是,您要求的“邻居保留”属性并不清楚。
但是,如果您要问的是以下内容:
然后劳埃德的算法会做。给出V所包含的图(V,E) 在[0,1] ^ 2和E的点上 细分,没有两个细分市场' 内部相交(即我们有一个 平面图)尽可能均匀地移动点,保留点 平面属性
除了: 推广不是根据空间点的位置,而是您为点请求的密度(例如,您可能需要对R ^ n进行高斯测量)。
答案 1 :(得分:0)
这是一个可能的策略草图。
对于原始的P点,从正方形的边界添加一些点(至少是正方形的顶点)。这些点应该从边界均匀采样,如果最初有n个点,则应该从边界采样至少√n个额外点。调用此增强集Q。
然后执行Delaunay Triangulation Q.我们将在下一步中使用此三角测量的边缘。
现在做一个least squares minimization来找到P中点的位置(保持Q-P中的点固定),这样可以最小化边长的平方和。
您可以通过求解矩阵表达式来解决这个最小化问题,因此这是一个“直接解决方案”。
最小二乘问题的解决方案倾向于均衡边缘的长度。因此,小边缘将变得更大并且大边缘将变得更小。这样可以在保留其拓扑的同时更均匀地分布点。
这很容易推广到更高的维度。