Здравствуйте, BreQwaS, Вы писали:
BQS>На графе дано: старт, финиш, промежуточные точки.
BQS>Нужно: найти кратчайший маршрут из старта в финиш, включающий в себя (в любом порядке) каждую из промежуточных точек.
BQS>Есть ли хороший алгоритм для решения такой задачки?
BQS>Парочка хороших кейвордов по теме тоже устроит
Ключевые слова:
Hamiltonian path
Traveling salesman problem
Это задача нахождения гамильтоновой цепи во взвешенном графе с минимальной стоимостью. Задача является NP-трудной. Полиномиального алгоритма решения не существует.
The problem remains NP-hard even for the case when the cities are in the plane with Euclidean distances, as well as in a number of other restrictive cases.
Если интересует точные методы, то
— если количество вершин небольшое и есть возможность использовать O(2^n) памяти, то решается с помощью динамического программирования.
— если чуть побольше, то
методом ветвей и границ
— если порядка сотен вершин, то надо использовать
cutting-plane method
Если интересуют эвристические методы, то ищи эвристику Кернигана-Лина и ее многочисленные модификации.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>