找到一个最小化两组最大距离的算法,优于Greedy算法

时间:2013-09-26 17:55:20

标签: algorithm matlab optimization matrix functional-programming

这是一个有趣但复杂的问题:

假设我们有两组积分。一组A包括一些空间网格中的点,如常规1D或3D网格。另一组B包括随机间隔的点并且与空间网格具有相同的大小。在数学上,我们可以对这两个集合进行排序,并相对于A和B之间的距离构造一个相应的矩阵。例如,A(i,j)可以指代A的A和j之间的距离。

鉴于一些排序,我们有一个矩阵。然后,矩阵中的对角元素(i,i)是A的点i和B的点i之间的距离。问题是如何找到良好的重新排序/索引,使得最大距离尽可能小?在矩阵形式中,如何找到一个好的重新排序/索引,使最大的对角线元素尽可能小?

自己的笔记:

  1. 假设集合A对应于矩阵的行,集合B对应于矩阵的列。然后重新排序矩阵意味着我们正在进行行/列置换。因此,我们的问题相当于找到一个很好的排列来最小化最大的对角线元素。

  2. 贪婪算法可能是一种选择。但我试图找到一个理想的完美重新排序,以最小化最大的对角线元素。

1 个答案:

答案 0 :(得分:3)

您所指的重新排序本质上是一个对应问题,即您正在尝试为另一组中的每个点找到最接近的匹配。贪心算法会正常工作。您要查找的距离通常称为Hausdorff distance