Элементы ad должны быть быть в паре с элементами 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. Грубая форсировка и тестирование всех возможных комбинаций невозможно, так как в реальном мире есть группы, в которых гораздо больше четырех элементов.