Минимизировать сумму расстояний в точечных парах

У меня есть куча точек на 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 баллов.)

Ответы на вопрос(2)

Ваш ответ на вопрос