我有一个系统,在空间中的固定位置有少量粒子(4-10个)。然后我有了一个单一的目标位置。我希望为每个粒子分配权重,以便粒子位置的加权平均值尽可能接近目标。在可能有多种解决方案的情况下,需要一致地分配权重。例如,如果我在1,0,0和-1,0,0和0,0,0处有3个粒子,而我的目标是0,0,0,则有三种可能的解决方案,即权重为0.333,0.333,0.333或0,0,1或0.5,0.5,0。第二个选项似乎最直观,但实际上,选择哪个解决方案并不重要,只要选择一致即可。此外,我最感兴趣的情况是不可能有精确的解决方案,但选择的权重最小化了误差。计算这些权重的最有效算法是什么?
编辑:为了更清楚地说明这一点,我创建了一个2d案例的视觉效果。在本例中,有5个固定位置和1个目标位置。目前,我使用的是一种笨拙的天真方法,即从所有5个权重的平均值(权重= 0.2,0.2,0.2,0.2,0.2)开始,然后迭代地调整这些权重,看看它是否有助于解决方案,逐渐“走”向目标。这可能需要数百个步骤。我需要对数百万甚至数十亿个目标位置进行处理,因此我正在寻找一种更直接的分析方法来解决问题。

发布于 2020-07-27 11:27:13
可以为问题建立简单的线性方程(显示3D情况):
sum(xi * wi) = xt
sum(yi * wi) = yt
sum(zi * wi) = zt您没有提到它,但似乎还有一个约束,即权重总和为1。在这种情况下,只需添加另一个等式:
sum(wi) = 1如果有N个点,我们现在就有一个由3个(或4个)方程组成的系统,其中包含N个未知数( wi)。从线性代数的角度来看,如何求解这样的系统是众所周知的。可能有0、1或无限多个解决方案。
如果没有解决方案,则可以改为求解目标点到子空间(可能是平面、直线或点)上的法线投影。
如果您还希望权重大于或等于0,那么它会变得更有趣。我的感觉是,如果目标点在给定点的凸包中,那么精确的解决方案总是可能的。
https://stackoverflow.com/questions/61428569
复制相似问题