Algorithm 查找与另一组最近的点集
我有两个集合,A和B,在R^N中分别有N点和M点。我知道NAlgorithm 查找与另一组最近的点集,algorithm,mathematical-optimization,Algorithm,Mathematical Optimization,我有两个集合,A和B,在R^N中分别有N点和M点。我知道N
D(A,C) = min([sum(d(P_i,Q_i),i=1,N) with P_i in A and Q_i in C* for C* in Permutations of C])
我一直在思考这个问题,我做了一个算法,得到了局部最优,但不一定是最优:
步骤1)在B中找到A的每个点的最近点。如果没有重复的点,我找到了最优子集并完成了算法。但是,如果有重复的点,则转至步骤2
步骤2)比较它们的距离(当然,我会比较点与同一最近点之间的距离)。具有最小距离的点将保留以前找到的点,其他点将更改其所需的点,以获得尚未为另一点选择的“下一个”最近点
步骤3)检查所有点是否不同。如果是,完成。如果没有,请返回步骤2
有什么想法吗?尝试所有的组合不是一个好的组合(我应该计算M!/(M-N)!全局距离)如果M=N,这个问题可以表述为二部图中的最小权重完美匹配,或者换句话说,一个赋值问题。解决指派问题的一个著名方法是
为了使匈牙利算法适用于N