Минимизировать сумму расстояний в точечных парах
У меня есть куча точек на 2-мерной сетке. Я хочу сгруппировать точки в пары, минимизируя при этом сумму евклидовых расстояний между точками пар.
Пример:
Given the points:
p1: (1,1)
p2: (5,5)
p3: (1,3)
p4: (6,6)
Best solution:
pair1 = (p1,p3), distance = 2
pair2 = (p2,p4), distance = 1
Minimized total distance: 1+2 = 3
Я подозреваю, что эта проблема может быть решена с помощью вариантаВенгерский алгоритм?!
Какой самый быстрый способ решить проблему?
(Небольшое замечание: у меня всегда должно быть меньше 12 баллов.)