Проблема, которую вы описали, является примером Задача коммивояжера . Это известная проблема, потому что это пример проблемы, которая не может быть эффективно решена с помощью любого известного алгоритма. Таким образом, вы не можете придумать абсолютно лучший ответ эффективно, потому что число возможных решений увеличивается в геометрической прогрессии. Число возможных решений равно n !, что означает 5 x 4 x 3 x 2 x 1, где n = 5. В этом случае нет ничего страшного, когда вы пытаетесь решить для 5 городов (120 комбинаций), но даже поднимаетесь только до 10, количество возможных комбинаций возрастает до 3 628 800. Как только вы доберетесь до 100 узлов, вы подсчитываете время процессора в годах. Вот почему «самый быстрый кругосветный» перечисленный выше гарантирует только «оптимальные» решения до 15 баллов.
Сказав все это, он не может быть решен эффективно («решение» в данном случае означает один правильный ответ, как говорит Гебвеб, «оптимальный» ответ), но вы можете прийти с довольно хорошим ответом, до тех пор, пока вы не зацикливаетесь на этом, будучи абсолютно доказуемо лучшим. Если вы заглянете в код, то заметите, что страница Fastest Roundtrip Gebweb переключается на «Оптимизацию колоний муравьев» (технически не алгоритм, а эвристика), когда вы наберете 15 очков. Нет смысла повторять то, что он говорит лучше, посмотрите на его закулисную страницу .
В любом случае, Даниэль прав, это должно делать то, что вы хотите, но я не мог не сказать о том, что это более сложная проблема, чем кажется.