Как сказал Грег Секстон до меня, это классический пример проблемы коммивояжера. Есть много продвинутых алгоритмов для решения этого стиля проблемы, который лучше всего подходит для вашей конкретной ситуации, скорее зависит от графика. Если количество вершин велико, вам понадобится значительная вычислительная мощность, чтобы сделать это в реалистичные сроки.