找到项目对之间的全局最小距离的算法

Bjö*_*ist 5 algorithm distance mathematical-optimization minimum

项目广告将与项目0-3配对,使得所有项目对之间的总距离最小化.例如,此矩阵可以描述第一组中每个项目与其对应组中的项目之间的距离:

[[2, 2, 4, 9],
 [4, 7, 1, 1],
 [3, 3, 8, 3],
 [6, 1, 7, 8]]
Run Code Online (Sandbox Code Playgroud)

这应该意味着距离'a' - >'0'是2,从'a' - >'1'是2,从'a' - >'2'是4,'a' - >'3 '是9.从'b' - >'0'它是4,依此类推.

是否有一种算法可以将每个字母与一个数字匹配,从而使总距离最小化?例如:

[('a', 1), ('b', 3), ('c', 0), ('d', 2)]
Run Code Online (Sandbox Code Playgroud)

将是一个总距离的合法解决方案:2 + 1 + 3 + 7 = 13.由于现实世界中有超过四个项目的群组,因此无法对所有可能的组合进行强制和测试.

Kar*_*ath 9

这是二分图的经典优化任务,可以使用匈牙利算法/方法求解.