Задача кратчайшего пути - Shortest path problem

Кратчайший путь (A, C, E, D, F) между вершинами A и F взвешенного ориентированного графа

В теория графов, то проблема кратчайшего пути проблема поиска дорожка между двумя вершины (или узлов) в график такая, что сумма веса составляющих его краев сводится к минимуму.

Задача поиска кратчайшего пути между двумя перекрестками на дорожной карте может быть смоделирована как частный случай задачи кратчайшего пути в графах, где вершины соответствуют перекресткам, а края соответствуют сегментам дороги, каждый из которых взвешивается длиной сегмент.

Определение

Задачу кратчайшего пути можно определить для графики будь то ненаправленный, направленный, или смешанный. Здесь он определен для неориентированных графов; для ориентированных графов определение пути требует, чтобы последовательные вершины соединялись соответствующим ориентированным ребром.

Две вершины смежны, если обе инцидентны общему ребру. дорожка в неориентированном графе есть последовательность вершин такой, что примыкает к для .Такой путь называется путем длины от к . ( переменные; их нумерация здесь связана с их положением в последовательности и не должна иметь отношения к какой-либо канонической маркировке вершин.)

Позволять быть ребром, инцидентным обоим и . Учитывая ценный весовая функция , и неориентированный (простой) граф , кратчайший путь от к это путь (где и ) что по всем возможным минимизирует сумму Когда каждое ребро в графе имеет единичный вес или , это эквивалентно поиску пути с наименьшим количеством ребер.

Проблему также иногда называют задача о кратчайшем пути с одной парой, чтобы отличить его от следующих вариантов:

  • В проблема кратчайшего пути из одного источника, в котором нужно найти кратчайшие пути от исходной вершины v ко всем остальным вершинам графа.
  • В проблема кратчайшего пути с одним пунктом назначения, в котором мы должны найти кратчайшие пути от всех вершин ориентированного графа к одной конечной вершине v. Это можно свести к задаче поиска кратчайшего пути с одним источником, перевернув дуги в ориентированном графе.
  • В задача о кратчайшем пути для всех пар, в котором нужно найти кратчайшие пути между каждой парой вершин v, v ' в графике.

Эти обобщения имеют значительно более эффективные алгоритмы, чем упрощенный подход к запуску алгоритма кратчайшего пути с одной парой для всех соответствующих пар вершин.

Алгоритмы

Наиболее важные алгоритмы решения этой проблемы:

Дополнительные алгоритмы и связанные оценки можно найти в Черкасский, Гольдберг и Радзик (1996).

Кратчайшие пути из одного источника

Ненаправленные графы

ВесСложность времениАвтор
+О(V2)Дейкстра 1959
+О((E + V) журналV)Джонсон 1977 (двоичная куча )
+О(E + V журналV)Фредман и Тарьян 1984 (Куча Фибоначчи )
О(E)Thorup 1999 (требуется постоянное умножение)

Невзвешенные графики

АлгоритмСложность времениАвтор
Поиск в ширинуО(E + V)

Направленные ациклические графы (DAG)

Алгоритм, использующий топологическая сортировка может решить проблему кратчайшего пути с одним источником за время Θ (E + V) в произвольно взвешенных группах DAG.[1]

Направленные графы с неотрицательными весами

Следующая таблица взята из Шрайвер (2004), с некоторыми исправлениями и дополнениями. Зеленый фон указывает на асимптотически наилучшую границу в таблице; L - максимальная длина (или вес) среди всех ребер с учетом целочисленных весов ребер.

ВесАлгоритмСложность времениАвтор
О(V 2EL)Ford 1956 года
Алгоритм Беллмана – ФордаО(VE)Шимбель 1955, Беллман 1958, Мур 1959
О(V 2 журналV)Данциг 1960
Алгоритм Дейкстры со спискомО(V 2)Leyzorek et al. 1957 г., Дейкстра 1959, Минти (см. Поллак и Вибенсон 1960 ), Уайтинг и Хиллиер 1960
Алгоритм Дейкстры с участием двоичная кучаО((E + V) журналV)Джонсон 1977
Алгоритм Дейкстры с участием Куча ФибоначчиО(E + V журналV)Фредман и Тарджан 1984, Фредман и Тарьян, 1987 г.
Алгоритм набора[2] (Алгоритм Дейкстры с помощью очередь ведра с участием L ведра)О(E + LV)Набери 1969
О(E журнал журналL)Джонсон 1981, Карлссон и Поблете, 1983 г.
Алгоритм ГабоуО(E журналE/V L)Габов 1983, Габов 1985
О(E + V журнал L)Ахуджа и др. 1990 г.
ThorupО(E + V журнал журналV)Thorup 2004

Направленные графы с произвольными весами без отрицательных циклов

ВесАлгоритмСложность времениАвтор
О(V 2EL)Ford 1956 года
Алгоритм Беллмана – ФордаО(VE)Шимбель 1955, Беллман 1958, Мур 1959
Джонсон-Дейкстра с участием двоичная кучаО(V (E + журналV))Джонсон 1977
Джонсон-Дейкстра с участием Куча ФибоначчиО(V (E + журналV))Фредман и Тарьян 1984, Фредман и Тарьян, 1987 г., адаптированный после Джонсон 1977
Техника Джонсона применяется к алгоритму Dial[2]О(V (E + L))Набери 1969, адаптированный после Джонсон 1977

Плоские ориентированные графы с произвольными весами

Кратчайшие пути для всех пар

Задача поиска кратчайшего пути для всех пар находит кратчайшие пути между каждой парой вершин v, v ' в графике. Задача поиска кратчайших путей для всех пар для невзвешенных ориентированных графов была введена Шимбель (1953), который заметил, что это может быть решено с помощью линейного числа умножений матриц, что занимает общее время О(V4).

Ненаправленный граф

ВесСложность времениАлгоритм
+О(V3)Алгоритм Флойда-Уоршолла
Алгоритм Зейделя (ожидаемое время работы)
Уильямс 2014
+О(Электромобиль журнал α (E,V))Петти и Рамачандран 2002
О(Электромобиль)Thorup 1999 применяется к каждой вершине (требуется постоянное умножение).

Направленный граф

ВесСложность времениАлгоритм
ℝ (без отрицательных циклов)О(V3)Алгоритм Флойда-Уоршолла
Уильямс 2014
ℝ (без отрицательных циклов)О(Электромобиль + V2 журналV)Джонсон-Дейкстра
ℝ (без отрицательных циклов)О(Электромобиль + V2 журнал журналV)Петти 2004
О(Электромобиль + V2 журнал журналV)Hagerup 2000

Приложения

Алгоритмы кратчайшего пути применяются для автоматического поиска направлений между физическими точками, например направления движения на веб-картография такие сайты как MapQuest или Карты Гугл. Для этого приложения доступны быстрые специализированные алгоритмы.[3]

Если один представляет недетерминированный абстрактная машина как граф, в котором вершины описывают состояния, а ребра описывают возможные переходы, алгоритмы кратчайшего пути могут использоваться для поиска оптимальной последовательности вариантов для достижения определенного состояния цели или для установления нижних границ времени, необходимого для достижения данного состояния. Например, если вершины представляют состояния головоломки как кубик Рубика и каждое направленное ребро соответствует одному перемещению или повороту, алгоритмы кратчайшего пути могут использоваться для поиска решения, которое использует минимально возможное количество перемещений.

В сеть или телекоммуникации с точки зрения мышления, эту проблему кратчайшего пути иногда называют проблемой пути с минимальной задержкой и обычно связывают с проблема самого широкого пути. Например, алгоритм может искать самый короткий (минимальная задержка) самый широкий путь или самый широкий самый короткий (минимальная задержка) путь.

Более беззаботным приложением являются игры "шесть ступеней расставания "которые пытаются найти кратчайший путь на графиках, как кинозвезды, появляющиеся в одном фильме.

Другие приложения, часто изучаемые в исследование операций, включая план завода и объекта, робототехника, транспорт, и СБИС дизайн.[4]

Дорожные сети

Дорожную сеть можно рассматривать как граф с положительными весами. Узлы представляют собой перекрестки дорог, и каждое ребро графа связано с участком дороги между двумя перекрестками. Вес края может соответствовать длине соответствующего сегмента дороги, времени, необходимому для прохождения сегмента, или стоимости прохождения сегмента. Используя направленные кромки, также можно моделировать улицы с односторонним движением. Такие графы являются особенными в том смысле, что одни ребра важнее других для путешествий на большие расстояния (например, шоссе). Это свойство было формализовано с использованием понятия размерности шоссе.[5] Существует множество алгоритмов, которые используют это свойство и поэтому могут вычислять кратчайший путь намного быстрее, чем это было бы возможно на общих графах.

Все эти алгоритмы работают в два этапа. На первом этапе граф предварительно обрабатывается без знания исходного или целевого узла. Второй этап - это этап запроса. На этом этапе известны исходный и целевой узел. Идея состоит в том, что дорожная сеть является статической, поэтому этап предварительной обработки можно выполнить один раз и использовать для большого количества запросов в одной и той же дорожной сети.

Алгоритм с самым быстрым известным временем запроса называется разметкой концентраторов и может вычислять кратчайший путь в дорожных сетях Европы или США за доли микросекунды.[6] Другие использованные методы:

Связанные проблемы

Для задач кратчайшего пути в вычислительная геометрия, увидеть Евклидов кратчайший путь.

В задача коммивояжера - это задача поиска кратчайшего пути, который проходит через каждую вершину ровно один раз и возвращается в начало. В отличие от задачи о кратчайшем пути, которая может быть решена за полиномиальное время в графах без отрицательных циклов, задача коммивояжера имеет вид НП-полный и, как таковой, считается неэффективно решаемым для больших наборов данных (см. P = проблема NP ). Проблема найти самый длинный путь в графе также NP-полна.

В Проблема канадского путешественника а проблема стохастического кратчайшего пути - это обобщения, в которых либо граф не полностью известен движущемуся, изменяется с течением времени, либо действия (обходы) являются вероятностными.

Кратчайший путь с несколькими отключениями [7] представляет собой представление примитивной сети путей в рамках Теория репутаций.

В проблема самого широкого пути ищет путь так, чтобы минимальная метка любого ребра была как можно больше.

Стратегические кратчайшие пути

Иногда ребра графа имеют индивидуальности: каждое ребро имеет свой эгоистичный интерес. Примером может служить сеть связи, в которой каждое ребро представляет собой компьютер, который, возможно, принадлежит другому человеку. Разные компьютеры имеют разные скорости передачи, поэтому каждое ребро в сети имеет числовой вес, равный количеству миллисекунд, необходимых для передачи сообщения. Наша цель - отправить сообщение между двумя точками сети в кратчайшие сроки. Если мы знаем время передачи каждого компьютера (вес каждого ребра), то мы можем использовать стандартный алгоритм поиска кратчайших путей. Если мы не знаем время передачи, мы должны попросить каждый компьютер сообщить нам время передачи. Но компьютеры могут быть эгоистичными: компьютер может сказать нам, что время его передачи очень велико, так что мы не будем беспокоить его своими сообщениями. Возможное решение этой проблемы - использовать вариант механизма ВКГ, что дает компьютерам стимул раскрыть свой истинный вес.

Формулировка линейного программирования

Есть естественный линейное программирование формулировка задачи поиска кратчайшего пути, приведенная ниже. Это очень просто по сравнению с большинством других применений линейных программ в дискретная оптимизация, однако он иллюстрирует связи с другими концепциями.

Для ориентированного графа (V, А) с исходным узлом s, целевой узел т, и стоимость шij для каждого края (я, j) в А, рассмотрим программу с переменными Иксij

свести к минимуму при условии и для всех я,

Интуиция за этим заключается в том, что - индикаторная переменная, определяющая, является ли край (я, j) является частью кратчайшего пути: 1, если он есть, и 0, если это не так. Мы хотим выбрать набор ребер с минимальным весом при условии, что этот набор образует путь из s к т (представлен ограничением равенства: для всех вершин, кроме s и т количество входящих и исходящих ребер, которые являются частью пути, должно быть одинаковым (т. е. это должен быть путь от s до t).

Этот LP обладает тем особым свойством, что он является целостным; более конкретно, каждый базовое оптимальное решение (если он существует) имеет все переменные, равные 0 или 1, а набор ребер, переменные которых равны 1, образуют s-т погружение. См. Ahuja et al.[8] для одного доказательства, хотя происхождение этого подхода восходит к середине 20 века.

Двойственным для этой линейной программы является

максимизировать утуs при условии для всех ij, уjуяшij

а допустимые двойники соответствуют понятию последовательная эвристика для Алгоритм A * для кратчайших путей. Для любого возможного двойного у то снижение затрат неотрицательны и А * по сути работает Алгоритм Дейкстры на эти сниженные затраты.

Общая алгебраическая система полуколец: проблема алгебраических путей

Многие проблемы могут быть сформулированы как форма кратчайшего пути для некоторых подходящих понятий сложения вдоль пути и взятия минимума. Общий подход к ним состоит в том, чтобы рассматривать две операции как операции одного полукольцо. Умножение полукольцом выполняется по пути, а сложение - между путями. Эта общая структура известна как проблема алгебраического пути.[9][10][11]

Большинство классических алгоритмов поиска кратчайшего пути (и новых) можно сформулировать как решение линейных систем над такими алгебраическими структурами.[12]

Совсем недавно была разработана еще более общая структура для решения этих (и гораздо менее явно связанных проблем) под знаменем оценочные алгебры.[13]

Кратчайший путь в стохастических сетях, зависящих от времени

В реальных ситуациях транспортная сеть обычно бывает стохастической и зависит от времени. Фактически, путешественник, ежедневно пересекающий ссылку, может испытывать разное время в пути по этой ссылке не только из-за колебаний спроса на поездки (матрица исходный-пункт назначения), но также из-за таких инцидентов, как рабочие зоны, плохие погодные условия, аварии и поломки транспортных средств. . В результате стохастическая зависящая от времени (STD) сеть является более реалистичным представлением реальной дорожной сети по сравнению с детерминированной.[14][15]

Несмотря на значительный прогресс, достигнутый в течение последнего десятилетия, остается спорным вопрос, как следует определять и идентифицировать оптимальный путь в стохастических дорожных сетях. Другими словами, не существует однозначного определения оптимального пути в условиях неопределенности. Один из возможных и распространенных ответов на этот вопрос - найти путь с минимальным ожидаемым временем в пути. Основное преимущество использования этого подхода состоит в том, что эффективные алгоритмы кратчайшего пути, введенные для детерминированных сетей, могут быть легко использованы для идентификации пути с минимальным ожидаемым временем прохождения в стохастической сети. Однако результирующий оптимальный путь, определенный с помощью этого подхода, может быть ненадежным, поскольку этот подход не учитывает изменчивость времени в пути. Для решения этой проблемы некоторые исследователи используют распределение времени в пути вместо его ожидаемого значения, поэтому они находят распределение вероятностей общего времени в пути, используя различные методы оптимизации, такие как динамическое программирование и Алгоритм Дейкстры .[16] Эти методы используют стохастическая оптимизация, а именно стохастическое динамическое программирование для поиска кратчайшего пути в сетях с вероятностной длиной дуги.[17] Понятие надежности времени в пути используется взаимозаменяемо с изменчивостью времени в пути в литературе по исследованиям транспорта, так что в целом можно сказать, что чем выше изменчивость времени в пути, тем ниже будет надежность, и наоборот.

Для более точного учета надежности времени в пути были предложены два общих альтернативных определения оптимального пути в условиях неопределенности. Некоторые ввели концепцию наиболее надежного пути, стремясь максимизировать вероятность прибытия вовремя или раньше, чем заданный бюджет времени в пути. Другие, в качестве альтернативы, выдвинули концепцию α-надежного пути, на основе которой они намеревались минимизировать бюджет времени в пути, необходимый для обеспечения заранее заданной вероятности своевременного прибытия.

Смотрите также

использованная литература

Заметки

  1. ^ Cormen et al. 2001 г., п. 655
  2. ^ а б Наберите, Роберт Б. (1969), «Алгоритм 360: Лес кратчайшего пути с топологическим упорядочением [H]», Коммуникации ACM, 12 (11): 632–633, Дои:10.1145/363269.363610
  3. ^ Сандерс, Питер (23 марта 2009 г.). «Быстрое планирование маршрута». Google Tech Talk. Цитировать журнал требует | журнал = (Помогите)
  4. ^ Чен, Дэнни З. (декабрь 1996 г.). «Разработка алгоритмов и программного обеспечения для задач геометрического планирования пути». Опросы ACM Computing. 28 (4es). Статья 18. Дои:10.1145/242224.242246. S2CID  11761485.
  5. ^ Авраам, Иттай; Фиат, Амос; Гольдберг, Эндрю В.; Вернек, Ренато Ф. «Размер шоссе, кратчайшие пути и доказуемо эффективные алгоритмы». Симпозиум ACM-SIAM по дискретным алгоритмам, страницы 782–793, 2010 г.
  6. ^ Авраам, Иттай; Деллинг, Дэниел; Гольдберг, Эндрю В.; Вернек, Ренато Ф. research.microsoft.com/pubs/142356/HL-TR.pdf «Алгоритм маркировки на основе концентраторов для кратчайших путей в дорожных сетях». Симпозиум по экспериментальным алгоритмам, страницы 230–241, 2011 г.
  7. ^ Крогер, Мартин (2005). «Кратчайший многократно отключенный путь для анализа сцеплений в двух- и трехмерных полимерных системах». Компьютерная физика Коммуникации. 168 (3): 209–232. Bibcode:2005CoPhC.168..209K. Дои:10.1016 / j.cpc.2005.01.020.
  8. ^ Ахуджа, Равиндра К.; Маньянти, Томас Л.; Орлин, Джеймс Б. (1993). Сетевые потоки: теория, алгоритмы и приложения. Прентис Холл. ISBN  978-0-13-617549-0.
  9. ^ Пара, Клод (1967), «Sur des алгоритмы для проблем разрушения в конечных графах (Об алгоритмах для задач путей в конечных графах)», в Rosentiehl (ed.), Théorie des graphes (journées internationales d'études) - Теория графов (международный симпозиум), Рим (Италия), июль 1966 г .: Dunod (Париж) et Gordon and Breach (Нью-Йорк), стр. 271CS1 maint: location (ссылка на сайт)
  10. ^ Дерниам, Жан Клод; Пара, Клод (1971), Problèmes de cheminement dans les graphes (Проблемы пути в графах), Данод (Париж)
  11. ^ Барас, Джон; Теодоракопулос, Джордж (4 апреля 2010 г.). Проблемы с путями в сетях. Издатели Morgan & Claypool. С. 9–. ISBN  978-1-59829-924-3.
  12. ^ Гондран, Мишель; Мину, Мишель (2008). Графы, диоиды и полукольца: новые модели и алгоритмы. Springer Science & Business Media. Глава 4. ISBN  978-0-387-75450-5.
  13. ^ Пули, Марк; Колас, Юрг (2011). Общий вывод: объединяющая теория для автоматизированных рассуждений. Джон Вили и сыновья. Глава 6. Алгебры оценок для задач о путях. ISBN  978-1-118-01086-0.
  14. ^ Луи Р.П., 1983. Оптимальные пути в графах со стохастическими или многомерными весами. Сообщения ACM, 26 (9), стр. 670-676.
  15. ^ Раджаби-Бахаабади, Моджтаба; Шариат-Мохаймани, Афшин; Бабаи, Мохсен; Ан, Чанг Ук (2015). «Многоцелевой поиск пути в стохастических зависящих от времени дорожных сетях с использованием генетического алгоритма недоминируемой сортировки». Экспертные системы с приложениями. 42 (12): 5056–5064. Дои:10.1016 / j.eswa.2015.02.046.
  16. ^ Оля, Мохаммад Хессам (2014). «Нахождение кратчайшего пути в комбинированном экспоненциально-гамма-распределении вероятностей длины дуги». Международный журнал операционных исследований. 21 (1): 25–37. Дои:10.1504 / IJOR.2014.064020.
  17. ^ Оля, Мохаммад Хессам (2014). «Применение алгоритма Дейкстры для общей задачи поиска кратчайшего пути с нормальной длиной дуги распределения вероятностей». Международный журнал операционных исследований. 21 (2): 143–154. Дои:10.1504 / IJOR.2014.064541.

Список используемой литературы

дальнейшее чтение

  • Frigioni, D .; Marchetti-Spaccamela, A .; Нанни, У. (1998). «Задача кратчайшего пути от одного источника с ограниченным полностью динамическим выходом». Proc. 7-й год. ACM-SIAM Symp. Дискретные алгоритмы. Атланта, Джорджия. С. 212–221. CiteSeerX  10.1.1.32.9856.
  • Дрейфус, С. Э. (октябрь 1967 г.). Оценка некоторых алгоритмов кратчайшего пути (PDF) (Отчет). Project Rand. ВВС США. РМ-5433-ПР. DTIC AD-661265.