Найкоротші шляхи, що забороняють кожен край


9

Я вдячний за будь-які вказівки або терміни, які могли б почати мене в правильному напрямку.

У нас є спрямований графік G=(V,E) і довжини lij для кожного краю ijщо можна вважати позитивним. Існує спеціальний пусковий вузолs і кінцевий вузол t.

Для кожного краю ij, ми хотіли б обчислити довжину найкоротшого шляху від s до t що не використовує край ij.

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

Заздалегідь спасибі.

Відповіді:


18

Проблема, яку ви згадуєте, називається "шляхи заміни". Ось декілька посилань:

  1. Готтільф та Левенштайн, вдосконалені алгоритми k простих найкоротших шляхів та задачі шляхів заміни. Інф. Зб. Letters, 109 (7): 352–355, 2009. Цей документ дає найшвидший на сьогоднішній день точний алгоритм для задачі шляхів заміни, що працює в часіO(mn+n2loglogn) час у графіках с n вузлів і m краї.
  2. А. Бернштейн. Майже оптимальний алгоритм наближення шляхів заміни та k найкоротших простих шляхів у загальних графіках. У Зб. SODA, стор. 742–755, 2010. Цей документ напрочуд дає схему наближення квазілінійного часу до проблеми.
  3. Дж. Гершбергер, С. Сурі та А. Бхосле. Про складність деяких найкоротших проблем. У Зб. STACS, сторінки 343–354, 2003. У цьому документі показано, що будь -який алгоритм порівняння шляхів, що вирішує задачу шляхів заміни, повинен мати щонайменшеΩ(mn) час.
  4. В.Вассилевська В., Р. Вільямс. Субкубічні рівноваги між проблемами шляху, матриці та трикутника. У Зб. FOCS, стор. 645-654, 2010. Ми показуємо, що якщо ви отримаєтеO(n3ε) точний алгоритм часу для заміщення шляхів для будь-якої константи ε>0, то це може бути перетворено в O(n3ε) алгоритм часу для всіх пар найкоротший шлях для постійних ε>0. Такий справді субкубічний алгоритм для всіх пар найкоротших шляхів є давно відкритою проблемою.
  5. О. Вейман, Р. Юстер. Шляхи заміщення за допомогою швидкого множення матриці. У Зб. FOCS, стор. 655-662, 2010. та В. Василевська В. Швидші шляхи заміни. У Зб. SODA, сторінки 1337-1346, 2011. У цих роботах показано, як використовувати швидке множення матриць для пошуку шляхів заміни у графіках із цілими вагами ребер в інтервалі{M,,M}. Останній документ дає найвідоміший час виконання,O~(Mnω).

8

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


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