从两个集合中匹配对的算法

标签 algorithm set

我有两组,每组都是一对数字的列表

Set1 =[(x1, y1), (x2, y2), ..., (xN, yN)]
Set2 =[(a1, b1), (a2, b2), ..., (aN, bN)]

如果绘制在 XY 平面上,Set1 和 Set2 具有相同的基本形状,但是 set2 的数据点是 set1 的旋转/平移/缩放/噪声/倾斜版本。每组中的对的顺序是随机的。有没有一种有效的方法来确定 set1 中的哪些点对应于 set2 中的对应点?

最佳答案

您正在寻找尝试最小化两个点云之间差异的一系列算法。这是一个相当难解决的问题,可能有多种解决方案(例如,如果给你两个立方体,则有很多可能的旋转方式)。

一种特别流行的方法是 ICP (iterative closest point) algorithm ,它从一个候选猜测开始,并不断改进它,直到达到某些正确性标准或时间到期。这可能是一个很好的检查起点。

希望这对您有所帮助!

关于从两个集合中匹配对的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14266649/

相关文章:

arrays - 在列表中的任何位置添加/删除元素时,链表是否比数组更好?

java - 递归树怎么画

java - java中如何将Set转换为Set<Serialized>?

performance - 当似乎常数确实影响复杂性时,我如何确定算法的时间复杂性,而我被教导不是这样?

algorithm - 没有大于或小于运算符的更大值

php - 帮助计算(和有用性)密码熵

algorithm - 如何编写最大集打包算法?

java - 是否可以将 Set 转换为 List?

一个集合的所有可能集合列表的算法

swift - 将字典数组转换为集合 Swift 4