【问题标题】:Algorithm for matching point sets匹配点集的算法
【发布时间】:2015-01-20 16:42:42
【问题描述】:

我有两组点 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

有什么好主意吗?

【问题讨论】:

标签: algorithm geometry dynamic-programming mathematical-optimization


【解决方案1】:

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

【讨论】:

  • 您的回答已经很有帮助了。算法是 O(n^3)。如果我的情况有更快的算法,那就太好了。
  • 我意识到我在问题中提到的地球移动器的距离也使用了匈牙利算法。但是,它正在使用优化(例如,成本源于度量的事实)。所以这对我来说似乎是最好的选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
  • 2022-12-05
  • 1970-01-01
  • 2011-06-18
  • 2017-08-19
  • 2011-07-05
  • 2013-05-18
相关资源
最近更新 更多