【问题标题】:Find point correspondence between two point sets minimizing the sum of distance of all matches找到两个点集之间的点对应关系,最小化所有匹配的距离之和
【发布时间】:2012-12-03 08:41:14
【问题描述】:

我的问题是,给定两个点集 A 和 B,A 的元素大小不超过 B 的元素大小,是否有任何有效的方法可以为 A 中的每个点找到 B 中的对应点,使得所有比赛的距离是最小的? B 中的每个点只能使用一次。 非常感谢!

【问题讨论】:

    标签: algorithm geometry


    【解决方案1】:

    是的,Hungarian Algorithm 用于加权二分匹配。

    对于 A 的元素和 B 的元素之间的每条边,让该边的权重为它们之间的距离。然后,运行匈牙利算法最小化权重的总和。

    总运行时间为 O(|A|^3)。

    【讨论】:

    • 好的,非常感谢!但我想这对我的数据来说可能太慢了(在我的情况下大约是 20000 点)。有没有近似的解决方案?谢谢!
    • 您可能会发现this question 会有所帮助。
    • 请注意,有时算法可能会讨论最大权重匹配,但这很好,因为要找到最小权重匹配,让 W 是图中所有边权重的最大值,并取新的边缘权重为 W-old 边缘权重。找到与新权重匹配的最大权重,最后,如果找到大小为 M 的匹配,则与原始边权重匹配的最小权重为 M*W-result。
    • 谢谢!但是我猜最大权重匹配并不能保证A中的每个点都能匹配,对吗?
    • 不,所有近似算法都会保证 A 中的每个点都会被匹配。它是近似的,因为它不能保证您将获得最佳匹配,因此距离总和较小的地方可能会有更好的匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2017-11-07
    • 1970-01-01
    • 2012-09-01
    • 1970-01-01
    • 2016-12-25
    • 2020-09-24
    相关资源
    最近更新 更多