两组点之间的最佳匹配
Best match between two sets of points
我有两个点列表,我们称它们为 L1( P1(x1 , y1), ... Pn(xn, y n)) 和 L2(P'1(x'1, y'1), ... P'n(x'n , y'n))。
我的任务是找到他们的点之间的最佳匹配,以最小化他们的距离之和。
关于某些算法的任何线索?这两个列表包含大约。 200-300分。
谢谢你。
如果您的问题的用例涉及匹配列表 L1 中存在的所有点与列表 L2 中的点,则Hungarian Algorithm 非常适合。
与您的匈牙利矩阵相对应的权重将是为行和列注释的点之间的距离。优化的匈牙利算法的总体运行时间为 O(n3),这将很适合您给定的 n = 300
约束
涵盖匈牙利算法思想和实现的非常好的教程是 https://www.topcoder.com/community/competitive-programming/tutorials/assignment-problem-and-hungarian-algorithm/
如果不是匈牙利算法,您也可以将给定的问题变形为 max-flow-min-cost
问题 - 我现在将省略其细节,但如果需要可以讨论。
我有两个点列表,我们称它们为 L1( P1(x1 , y1), ... Pn(xn, y n)) 和 L2(P'1(x'1, y'1), ... P'n(x'n , y'n))。
我的任务是找到他们的点之间的最佳匹配,以最小化他们的距离之和。
关于某些算法的任何线索?这两个列表包含大约。 200-300分。
谢谢你。
如果您的问题的用例涉及匹配列表 L1 中存在的所有点与列表 L2 中的点,则Hungarian Algorithm 非常适合。
与您的匈牙利矩阵相对应的权重将是为行和列注释的点之间的距离。优化的匈牙利算法的总体运行时间为 O(n3),这将很适合您给定的 n = 300
涵盖匈牙利算法思想和实现的非常好的教程是 https://www.topcoder.com/community/competitive-programming/tutorials/assignment-problem-and-hungarian-algorithm/
如果不是匈牙利算法,您也可以将给定的问题变形为 max-flow-min-cost
问题 - 我现在将省略其细节,但如果需要可以讨论。