Элементы a-d должны быть объединены в пары с элементами 0-3 таким образом, чтобы общее расстояние между всеми парами элементов было минимальным. Например, эта матрица может описывать расстояние между каждым элементом в первой группе и элементом в аналогичной группе:
[[2, 2, 4, 9],
[4, 7, 1, 1],
[3, 3, 8, 3],
[6, 1, 7, 8]]
Предполагается, что это означает, что расстояние «а» -> «0» равно 2, от «а» -> «1» равно 2, от «а» -> «2» равно 4, «а» -> «3». ' равно 9. От 'b' -> '0' будет 4 и так далее.
Существует ли алгоритм, который может сопоставлять каждую букву с цифрой, чтобы общее расстояние было минимальным? Например.:
[('a', 1), ('b', 3), ('c', 0), ('d', 2)]
Было бы законным решением с общим расстоянием: 2 + 1 + 3 + 7 = 13. Перебор и проверка всех возможных комбинаций невозможны, поскольку в реальном мире есть группы, в которых намного больше четырех элементов.