Чи є розумні продавці подорожей?


12

Жарти вбік, у мене була проблема маршрутизації, яка є майже проблемою продавця подорожі (TSP):

  • визначається вихідна точка
  • кінцева точка збігається з початковою
  • кожен вузол потрібно відвідати
  • загальна вартість повинна бути мінімізована

Два роки тому я думав, що TSP буде ідеальним збігом, тому я провів декілька зразкових даних через „ tsp_solveConcorde”. На щастя, було швидко очевидним, що найкоротший шлях TSP - це не самий короткий шлях , оскільки проблема полегшується нереально вимагаючи відвідування вузлів рівно один раз . Ця картина є лише покроковою ручною спробою оптимізації обчислюваного рішення, і вона вже заощаджує про відстань найдовшого використовуваного краю.

Проблема виникла, тому що я намагаюся знайти оптимальні маршрути до підмножини карток / моніторингу сайтів. Дані про місцезнаходження та дорожню мережу є одночасно досить точними та точними, тому вправа на кшталт цього має сенс.

Я переглянув узагальнення TSP, але не знайшов відповідного алгоритму. Мінімальний розміщення дерев не враховує повернення з гілок (1-е рішення тут коштує ще 3). Як я розумію, проблема найкоротшого шляху в кінцевому підсумку стосується лише двох вузлів, і ті, що не входять в оптимальний шлях, будуть залишені. Окремий випадок проблеми маршрутизації транспортного засобу, здається, підходить найкраще, хоча я не знаю, чи вважає він непрямі шляхи.

Моє запитання: чи існує певна назва, визначення для подібного роду проблем (сімейних)? Який алгоритм та інструмент ви б використали для його вирішення?

Я впевнений, що це було б обчислювально важко, але мене цікавлять як загальні (нескінченні ресурси), так і практичні відповіді.


Ви вивчили теорію графів?
nagytech

Приблизно стільки, скільки посилань на Вікіпедію вище, і кілька посилань глибше. В університеті ми лише зробили деяку тривіальну теорію LP та рішення.
lynxlynxlynx

Відповіді:


4

Це ТСП . Ви просто не визначили дійсну метрику відстані, оскільки вона не задовольняє нерівності трикутника: якщо є маршрут від А до С до В, який коротший зазначеної відстані від А до С, то зазначена відстань від А до С просто, неправильно. Рішення полягає в тому, щоб оновити матрицю відстані, встановивши довжину від А до С як найкоротшу довжину всіх маршрутів від А до С.


Чудово, це робить досить легко. Для невеликих графіків, мабуть, навіть не варто iz перерахувати нову матрицю відстані, але робити це на ходу.
lynxlynxlynx
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.