Требования:Нахождение кратчайшего пути по нескольким точкам
Есть несколько целей, которые вы должны посетить на графике (не имеет значения, в каком порядке и сколько раз вы посещаете каждую точку)
Вы можете начать с начальной точки, посетить все цели и вернуться на базу.
Вы можете посещать каждую цель несколько раз.
Вопрос:
1) Какой алгоритм я должен использовать, чтобы подойти к этому?
2) Предлагаемый мною подход
Скажем цели = [A, B, C]
- Я имею в виду использовать алгоритм Дейкстры, чтобы найти кратчайший путь к любой из целей.
- Как только я достиг цели, я использую Диджстру, чтобы найти любую из оставшихся целей.
- Как только я нахожу все цели, я буду использовать Диджстру, чтобы найти путь к исходной точке.
- Это должно дать мне самый короткий путь, чтобы найти все цели и обратно домой
Если вы можете посещать каждую цель несколько раз, очевидно, что она будет посещать одну и ту же цель подпоследовательно, потому что расстояние между мишенью и собой равно 0, и вы можете посчитать 3 посещения в одну точку с 1 посещением. Итак, какое еще дополнительное правило делает эту проблему отличной от проблемы коммивояжера? – GolezTrol
@ GolezTrol вы должны посетить все целевые узлы. – Adam
@GolezTrol Не уверен, что ваш вопрос. Как только я посетил A. A будет удален из целевого списка. Хотя я все еще могу пройти мимо этого в будущем, он больше не является целью – samol