Вам 100% требует алгоритм
Гамильтоновых путей.
Сам завершил его не так давно, писал на PHP.
Расчет происходит при кол-ве вершин от 500 до 1000.
В данном случае у меня используются координаты переведенные в
радианы и разложенные в матреце смежности.
Ну а далее уже этот алгоритм.