我需要实现一个适用于刚体的“几何中值”型算法,这意味着它不仅会找到一个点来减少与一组点的距离,还会考虑到身体的方向。 。我没有在任何地方找到这类问题的解决方案,而对于几何中位数(或Weber或Fermat-Torricelli问题,或设施位置问题),有很多可用的信息,包括Weiszfeld算法(和现代改进) )。我希望有人会提到可能的解决方案。我本以为这是注册时相对常见的问题,但也许我找不到合适的词来搜索......
我的问题可以表述如下:假设我有一个带有3个非共线点(三角形)的“参考”刚体,我测量了3次点的坐标(有一些错误,或者物体移动了一下)。我想找到一个好的“中心位置”,它可以最小化每个测量点与其相应的中心定位点之间的距离(不是平方距离)之和。这相当于“多设施位置问题”,但是“设施”之间的固定距离的额外约束以及预先分配给设施的每个点(不一定是最接近的一个)。
实际上,我在想的不是最小化所有点的总和,而是每次测量只保留3个点的最大距离。 (这就是所谓的“极小极大”吗?)但我认为这不会对我必须使用的算法类型产生重大影响。
与几何中位数相比可能存在的困难可能是,随着旋转的自由度的增加,最小化的数量不再是凸的(不是100%肯定,但我认为)。我希望我仍然可以像Weiszfeld那样使用类似的算法(这是一种次级方法),希望之前已经对此进行了调查。谢谢你的帮助!
P.S。我将在Matlab中这样做。
答案 0 :(得分:0)
我找不到关于这个主题的任何研究。我要做的第一件事是使用没有刚性约束的Weiszfeld算法来找到各个点的几何中位数,定义对应于对象边缘与期望值的偏差的拉格朗日乘数,并使用梯度下降来找到受约束的局部最小值。我不能证明它总会有效,但直观地说,只要偏差足够小,就应该这样做。