Здравствуйте, BreQwaS, Вы писали:
BQS>На графе дано: старт, финиш, промежуточные точки. BQS>Нужно: найти кратчайший маршрут из старта в финиш, включающий в себя (в любом порядке) каждую из промежуточных точек.
BQS>Есть ли хороший алгоритм для решения такой задачки?
Думаю, что полиномиального алгоритма от количества промежуточных точек нет.
Запускаем алгоритм Флойда и находим кратчайшие пути между всеми парами точек. Дальше строим граф, состоящий из точки старта, финиша и промежуточных точек. Длина ребра в новом графе — кратчайшее расстояние между соответсвующими точками. Получили задачу коммивояжёра.