Чи можемо ми знайти k найкоротші шляхи між усіма парами швидше, ніж розв’язувати парну задачу повторно?


9

Я хочу створити найкоротший шлях ( буде менше 10) між усіма парами в графі. Графік (фактично карта метро):kк

  • позитивно зваженою
  • непрямий
  • розріджений
  • з приблизно 100 вузлами

Мій поточний план - застосувати кнайкоротший шлях до кожної пари; Зараз я шукаю більш ефективну альтернативу (можливо, з динамічним програмуванням).


3
Чесно кажучи, для 100 вершин здається малоймовірним, що вам потрібно щось ефективніше, ніж вирішення кожної з 45 000 парних задач.
Девід Річербі

Відповіді:


6

Перш за все, вирішальна різниця в обчислювальній техніці к-коротші шляхи - це якщо шляхи повинні бути простими чи ні. Шлях називається простим , якщо він не містить вузлів повторно. Шлях із циклом, наприклад, не простий. Зауважте, що на сторінці Вікіпедії, яку ви пов’язували, статті стосуються не обов'язково простих шляхів. Випадок простих шляхів здається важчим, ніж випадок із не обов'язково простими шляхами.

Усі пари к- найкоротша проблема простих шляхів

Це здається досить молодою сферою досліджень. Недавній документ Агарваль та Рамачандран можна знайти в ArXiv [1]. Розділ попередньої роботи також дасть вам деяке уявлення про історію проблеми.

Усі пари к-коротша проблема шляхів

Тут, дійсно, найкращим вибором є просто багаторазове застосування алгоритму Eppsteins [2]. Загальне зауваження, що повторне застосування алгоритму для однопотокової версії проблеми є найшвидшим підходом, вже було зроблене в 1977 році Е. Л. Лоуллером [3]; Eppstein надає найшвидший на сьогоднішній день алгоритм цієї підпрограми.

Список літератури

[1] Агарвал, У. та Рамачандран, В. Знахідка кПрості найкоротші шляхи та цикли. arXiv: 1512.02157 [cs.DS] https://arxiv.org/pdf/1512.02157.pdf

[2] Еппштейн, Д. Знаходження k найкоротших шляхів. Журнал обчислювальної техніки SIAM 28, 2 (1999), 652–673.

[3] Лоулер, Е. Л. Прокоментуйте обчислення k найкоротших шляхів у графі. Комунікації ОСБ, 20 (8): 603–605, 1977.


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

Цікаво і досить дивно, що, мабуть, 10000 випадків проблеми не можна вирішити швидше, ніж просто вирішити 10000 одиничних випадків один за одним.
gnasher729

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