Пошук найкоротшого шляху за наявності негативних циклів


13

З огляду на спрямований циклічний графік, де вага кожного краю може бути негативною, поняття "найкоротшого шляху" має сенс лише тоді, коли немає негативних циклів, і в цьому випадку ви можете застосувати алгоритм Беллмана-Форда.

Однак мені цікаво знайти найкоротший шлях між двома вершинами, який не передбачає їзди на велосипеді (тобто з обмеженням, що ви не можете відвідувати одну і ту ж вершину двічі). Чи добре вивчена ця проблема? Чи може бути використаний варіант алгоритму Беллмана-Форда, і якщо немає, чи існує інше рішення?

Мене також цікавить еквівалентна проблема всіх пар, до якої я можу інакше застосувати Флойда – Варшала.

Відповіді:


23

Шляхи без повторних вершин називаються простими шляхами , тому ви шукаєте найкоротший простий шлях у графіку з негативними циклами.

Це може зменшитись із проблеми, що триває найдовше . Якби для вашої проблеми був швидкий вирішувач, тоді, якщо отримати графік із лише позитивною вагою кромки, заперечення всіх крайових ваг та запуск вашої розв'язувальної системи дозволить отримати найдовший шлях у вихідному графіку.

Таким чином, ваша проблема - NP-Hard.


1
Це прекрасна відповідь. Я запитав у кількох людей цей ІРЛ без жодних рішень, і коли я їм пояснив це, їх реакція була такою ж, як і моя - "я, звичайно, зараз почуваюся такою дурною".
jleahy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.