Статья подготовлена для студентов курса «Алгоритмы для разработчиков» в образовательном проекте OTUS. Есть N городов, связанных дорогами. Как помочь коммивояжёру проложить наиболее короткий/выгодный/дешёвый маршрут между этими городами, чтобы посетить каждый город хотя бы по одному разу и вернуться в исходную точку? Многие, изучающие computer science, знают о существовании этой задачи как одной из самых известных задач на графах. Все знают, что эта задача NP-полная и нерешаема в общем виде на современных компьютерах...
Из этой статьи вы узнаете об нахождении кратчайшего пути, проходя все точки графа и возвращаясь в исходную точку. Для решения задачи вам потребуется нарисованный граф и длины рёбер. Возьмём любую вершину, допустим “E“. Находим кратчайшее ребро, исходящее из этой точки. Как мы видим это ребро с длиной 3, но для нахождения кратчайшего пути в графе, мы не должны «перерезать» его, так как две стороны треугольника короче трёх. Поэтому мы это ребро забываем (сразу можно вычеркнуть рёбра со значениями 6, 8, 4, 2)...