匹配点集的算法

时间:2015-01-20 16:42:43

标签: algorithm geometry dynamic-programming mathematical-optimization

我有两组积分AB,而积分可以是2D或3D。两组都具有相同的大小n,相当低(5 - 20)。

我想知道这些集合是否一致。也就是说,理想情况下,我会在点之间找到配对,使得所有欧几里德对距离d(A,B)的总和最小。所以

d(A,B) = \sum_{i=1}^n ||A_i - B_i||_2

最终结果用于与其他点集进行比较。所以,例如:

  • A =(1,1),(1,2),(1,3)
  • B =(1,1),(2,2),(1,3)

会给我d(A,B) = 1

  • C =(1,1),(2,1),(3,1)
  • D =(2,1),(2,2),(3,1)

会给我d(C,D) = 1.414

有什么好主意吗?

1 个答案:

答案 0 :(得分:4)

您可以将问题建模为分配问题Wikipedia link),您可以在其中定义分配点A_i(从集合A)到点B_j(来自集合)的成本C_ij B)等于它们之间的距离。然后可以使用匈牙利算法(Wikipedia link)来解决此分配问题。