Вот нижняя граница стоимости решения, которая может служить строительным блоком для ветвления и привязки или более ненадежного алгоритма неполного поиска:
Отсортируйте расстояния между точками и рассмотрите их вне возрастающий порядок.Используйте http://en.wikipedia.org/wiki/Disjoint-set_data_structure для отслеживания наборов точек, объединяя два набора при соединении связью между двумя точками.Длина кратчайшего расстояния, с которым вы сталкиваетесь до точки, когда вы объединяете все точки в один набор, является верхней границей минимального расстояния в идеальном решении, потому что идеальное решение также объединяет все точки в одну.Однако ваша верхняя граница может быть длиннее минимального расстояния для идеального решения, потому что соединяемые вами ссылки, вероятно, образуют дерево, а не путь.