【发布时间】:2011-10-28 21:11:51
【问题描述】:
项目 a-d 将与项目 0-3 配对,以使所有项目对之间的总距离最小化。例如,这个矩阵可以描述第一组中的每个项目与其对应组中的项目之间的距离:
[[2, 2, 4, 9],
[4, 7, 1, 1],
[3, 3, 8, 3],
[6, 1, 7, 8]]
这应该意味着距离'a' -> '0' 是2,距离'a' -> '1' 是2,距离'a' -> '2' 是4,'a' - > '3' 是 9。从 'b' -> '0' 是 4,依此类推。
有没有一种算法可以将每个字母与一个数字匹配,从而使总距离最小化?例如:
[('a', 1), ('b', 3), ('c', 0), ('d', 2)]
这将是一个总距离为:2 + 1 + 3 + 7 = 13 的合法解决方案。由于现实世界中的组包含四个以上的项目,因此无法强制和测试所有可能的组合。
【问题讨论】:
-
恕我直言,唯一的方法是你描述的蛮力。两组之间是否存在某种联系?
-
我不明白规则是什么。是不是每行只能选一个数字,每列只能选一个数字,而且要选4个数字,你想让这4个数字的总和最小?
-
CKoening,我很想知道您为什么认为没有解决方案。我是否偶然发现了一个 NP 难题?
-
我想我不明白的部分是“将每个字母与一个数字匹配,从而使解决方案的总距离最小化?”您肯定会将每个字母与其最接近的数字匹配吗?还是每个数字只能使用一次?
-
罗伯特·金,完全正确。把它想象成你洗衣服的时候。您希望将四只右袜子中的每只都与最相似的左袜子相匹配。
标签: algorithm distance mathematical-optimization minimum