Для решения задачи коммивояжёра можно использовать следующие методы:
- Метод ветвей и границ. 14 Позволяет находить оптимальные или приблизительные решения для достаточно больших задач. 1
- Случайный перебор. 4 Вычисляются не все возможные варианты маршрута, а лишь некоторые выбранные в случайном порядке (например, с помощью генератора случайных чисел). 4 Из рассмотренных вариантов затем выбирается наилучший. 4
- Динамическое программирование. 4 Ключевая идея заключается в вычислении и запоминании пройденного пути от исходного города до всех остальных, последующем прибавлении к нему расстояний от текущих городов до оставшихся, и так далее. 4 По сравнению с полным перебором этот метод позволяет существенно сократить объём вычислений. 4
- Жадные алгоритмы. 4 Основаны на нахождении локально оптимальных решений на каждом этапе вычислений и допущении, что найденное таким образом итоговое решение будет глобально оптимальным. 4 Т. е. на каждой итерации выбирается лучший участок пути, который включается в итоговый маршрут. 4
Задача коммивояжёра относится к классу NP-трудных, поэтому не существует алгоритма, который находил бы точное решение за полиномиальное время. 5