stringtranslate.com

Задача о кратчайшем пути

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

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

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

Определение

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

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

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

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

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

Алгоритмы

Существует несколько известных алгоритмов решения этой задачи и ее вариантов.

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

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

Неориентированные графы

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

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

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

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

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

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

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

Находит отрицательный цикл или вычисляет расстояния до всех вершин.

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

Приложения

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

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

Шаги трансформации

[7]

  1. Создайте остаточный график:
    • Для каждого ребра (u, v) в исходном графе создадим два ребра в остаточном графе:
      • (u, v) с емкостью c(u, v)
      • (v, u) с емкостью 0
    • Остаточный график отображает оставшуюся доступную емкость сети.
  2. Найдите кратчайший путь:
    • Используйте алгоритм кратчайшего пути (например, алгоритм Дейкстры, алгоритм Беллмана-Форда), чтобы найти кратчайший путь от исходного узла до приемного узла в остаточном графе.
  3. Увеличьте поток:
    • Найдите минимальную пропускную способность по кратчайшему пути.
    • Увеличьте поток на краях кратчайшего пути на эту минимальную пропускную способность.
    • Уменьшите пропускную способность рёбер в прямом направлении и увеличьте пропускную способность рёбер в обратном направлении.
  4. Обновите остаточный график:
    • Обновите остаточный граф на основе дополненного потока.
  5. Повторить:
    • Повторяйте шаги 2–4 до тех пор, пока не останется ни одного пути от источника до приемника.

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

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

Неориентированный граф

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

Приложения

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

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

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

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

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

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

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

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

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

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

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

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

Другие сопутствующие проблемы можно классифицировать по следующим категориям.

Пути с ограничениями

В отличие от задачи поиска кратчайшего пути, которая может быть решена за полиномиальное время в графах без отрицательных циклов, задачи поиска кратчайшего пути, которые включают дополнительные ограничения на желаемый путь решения, называются Constrained Shortest Path First и их сложнее решить. Одним из примеров является задача поиска кратчайшего пути с ограничениями [15] , которая пытается минимизировать общую стоимость пути, в то же время поддерживая другую метрику ниже заданного порога. Это делает задачу NP-полной (такие задачи не считаются эффективно решаемыми для больших наборов данных, см. задачу P = NP ). Другой пример NP-полной задачи требует включения в путь определенного набора вершин [16] , что делает задачу похожей на задачу коммивояжера (TSP). TSP — это задача поиска кратчайшего пути, который проходит через каждую вершину ровно один раз и возвращается в начало. Задача поиска самого длинного пути в графе также является NP-полной.

Частичная наблюдаемость

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

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

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

Обнаружение отрицательного цикла

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

Общая алгебраическая структура полуколец: задача алгебраического пути

Многие проблемы можно сформулировать как форму кратчайшего пути для некоторых подходящих подстановочных понятий сложения вдоль пути и взятия минимума. Общий подход к ним заключается в том, чтобы считать эти две операции операциями полукольца . Умножение полуколец выполняется вдоль пути, а сложение — между путями. Эта общая структура известна как задача алгебраического пути . [20] [21] [22]

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

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

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

В реальной жизни транспортная сеть обычно является стохастической и зависящей от времени. Продолжительность поездки по участку дороги зависит от многих факторов, таких как объем трафика (матрица отправления-назначения), дорожные работы, погода, аварии и поломки транспортных средств. Более реалистичной моделью такой дорожной сети является стохастическая зависящая от времени (STD) сеть. [25] [26]

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

Чтобы решить эту проблему, некоторые исследователи используют распределение продолжительности поездки вместо ее ожидаемого значения. Таким образом, они находят распределение вероятностей общей продолжительности поездки, используя различные методы оптимизации, такие как динамическое программирование и алгоритм Дейкстры . [27] Эти методы используют стохастическую оптимизацию , в частности, стохастическое динамическое программирование, для поиска кратчайшего пути в сетях с вероятностной длиной дуги. [28] Термины надежность времени поездки и изменчивость времени поездки используются как противоположности в литературе по транспортным исследованиям: чем выше изменчивость, тем ниже надежность прогнозов.

Чтобы учесть изменчивость, исследователи предложили два альтернативных определения оптимального пути в условиях неопределенности. Самый надежный путь — это тот, который максимизирует вероятность прибытия вовремя с учетом бюджета времени на поездку. α-надежный путь — это тот, который минимизирует бюджет времени на поездку, необходимый для прибытия вовремя с заданной вероятностью.

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

Ссылки

Примечания

  1. ^ Задача о кратчайшем пути. doi :10.1007/978-3-031-02574-7.
  2. ^ Део, Нарсингх (17 августа 2016 г.). Теория графов с приложениями к инженерии и информатике. Courier Dover Publications. ISBN 978-0-486-80793-5.
  3. ^ Кормен и др. 2001, стр. 655
  4. ^ Дюрр, Кристоф; Хайлигман, Марк; Хойер, Питер; Мхалла, Мехди (январь 2006 г.). «Квантовая сложность запросов некоторых графовых задач». SIAM Journal on Computing . 35 (6): 1310–1328. arXiv : quant-ph/0401091 . doi : 10.1137/050644719. ISSN  0097-5397. S2CID  14253494.
  5. ^ ab Dial, Robert B. (1969). "Алгоритм 360: Лес кратчайших путей с топологическим упорядочением [H]". Сообщения ACM . 12 (11): 632–633. doi : 10.1145/363269.363610 . S2CID  6754003.
  6. ^ Кормен, Томас Х. (31 июля 2009 г.). Введение в алгоритмы (3-е изд.). MIT Press. ISBN 9780262533058.{{cite book}}: CS1 maint: date and year (link)
  7. ^ Кляйнберг, Джон; Тардос, Ева (2005). Разработка алгоритмов (1-е изд.). Аддисон-Уэсли. ISBN 978-0321295354.
  8. ^ Дюрр, К.; Хойер, П. (1996-07-18). «Квантовый алгоритм нахождения минимума». arXiv : quant-ph/9607014 .
  9. ^ Наеби, Аран; Уильямс, ВВ (2014-10-22). «Квантовые алгоритмы для задач поиска кратчайших путей в структурированных случаях». arXiv : 1410.6220 [quant-ph].
  10. ^ Сандерс, Питер (23 марта 2009 г.). "Быстрое планирование маршрута". Google Tech Talk . Архивировано из оригинала 2021-12-11.
  11. ^ Чен, Дэнни З. (декабрь 1996 г.). «Разработка алгоритмов и программного обеспечения для задач геометрического планирования пути». ACM Computing Surveys . 28 (4es). Статья 18. doi : 10.1145/242224.242246. S2CID  11761485.
  12. ^ Абрахам, Иттай; Фиат, Амос; Голдберг, Эндрю В .; Вернек, Ренато Ф. «Измерение шоссе, кратчайшие пути и доказуемо эффективные алгоритмы». Симпозиум ACM-SIAM по дискретным алгоритмам, страницы 782–793, 2010.
  13. ^ Абрахам, Иттай; Деллинг, Дэниел; Голдберг, Эндрю В .; Вернек, Ренато Ф. research.microsoft.com/pubs/142356/HL-TR.pdf «Алгоритм маркировки на основе концентратора для кратчайших путей в дорожных сетях». Симпозиум по экспериментальным алгоритмам, страницы 230–241, 2011.
  14. ^ Крогер, Мартин (2005). «Кратчайший множественный несвязный путь для анализа запутанностей в двумерных и трехмерных полимерных системах». Computer Physics Communications . 168 (3): 209–232. Bibcode : 2005CoPhC.168..209K. doi : 10.1016/j.cpc.2005.01.020.
  15. ^ Лосано, Леонардо; Медалья, Андрес Л. (2013). «О точном методе решения задачи поиска кратчайшего пути с ограничениями». Computers & Operations Research . 40 (1): 378–384. doi :10.1016/j.cor.2012.07.008.
  16. ^ Осанлу, Кевин; Бурсюк, Андрей; Геттье, Кристоф; Казенав, Тристан; Жакопен, Эрик (2019). «Оптимальное решение задач планирования ограниченного пути с помощью графовых сверточных сетей и оптимизированного поиска по дереву». Международная конференция IEEE/RSJ по интеллектуальным роботам и системам (IROS) 2019 г. стр. 3519–3525. arXiv : 2108.01036 . doi :10.1109/IROS40897.2019.8968113. ISBN 978-1-7281-4004-9. S2CID  210706773.
  17. ^ Бар-Ной, Амоц; Шибер, Барух (1991). «Проблема канадского путешественника». Труды второго ежегодного симпозиума ACM-SIAM по дискретным алгоритмам : 261–270. CiteSeerX 10.1.1.1088.3015 . 
  18. ^ Николова, Евдокия; Каргер, Дэвид Р. «Планирование маршрута в условиях неопределенности: проблема канадского путешественника» (PDF) . Труды 23-й Национальной конференции по искусственному интеллекту (AAAI) . стр. 969–974. Архивировано (PDF) из оригинала 2022-10-09.
  19. ^ Черкасский, Борис В.; Голдберг, Эндрю В. (1999-06-01). "Алгоритмы обнаружения отрицательного цикла". Математическое программирование . 85 (2): 277–311. doi :10.1007/s101070050058. ISSN  1436-4646. S2CID  79739.
  20. ^ Пара, Клод (1967). «Sur des алгоритмы для решения задач о путях в конечных графах». В Розентиэле, Пьер (ред.). Théorie des Graphes (journées Internationales d'Etudes) [Теория графов (международный симпозиум)] . Рим (Италия), июль 1966 года. Дюно (Париж); Гордон и Брич (Нью-Йорк). п. 271. ОСЛК  901424694.
  21. ^ Дерниам, Жан Клод; Пара, Клод (1971). Problèmes de cheminement dans lesgraphes [ Задачи о путях в графах ]. Дюно (Париж).
  22. ^ Барас, Джон; Теодоракопулос, Джордж (4 апреля 2010 г.). Проблемы путей в сетях. Morgan & Claypool Publishers. стр. 9–. ISBN 978-1-59829-924-3.
  23. ^ Gondran, Michel; Minoux, Michel (2008). "глава 4". Графы, диоиды и полукольца: новые модели и алгоритмы . Springer Science & Business Media. ISBN 978-0-387-75450-5.
  24. ^ Pouly, Marc; Kohlas, Jürg (2011). "Глава 6. Алгебры оценки для задач пути". Generic Inference: A Unifying Theory for Automated Reasoning . John Wiley & Sons. ISBN 978-1-118-01086-0.
  25. ^ Луи, РП, 1983. Оптимальные пути в графах со стохастическими или многомерными весами. Сообщения ACM, 26(9), стр.670-676.
  26. ^ Раджаби-Бахабади, Моджтаба; Шариат-Мохаймани, Афшин; Бабаи, Мохсен; Ан, Чанг Вук (2015). «Многоцелевой поиск пути в стохастических дорожных сетях, зависящих от времени, с использованием недоминируемого генетического алгоритма сортировки». Экспертные системы с приложениями . 42 (12): 5056–5064. doi :10.1016/j.eswa.2015.02.046.
  27. ^ Оля, Мохаммад Хессам (2014). «Поиск кратчайшего пути в комбинированном экспоненциальном – гамма-распределении вероятности длины дуги». Международный журнал операционных исследований . 21 (1): 25–37. doi :10.1504/IJOR.2014.064020.
  28. ^ Оля, Мохаммад Хессам (2014). «Применение алгоритма Дейкстры для общей задачи поиска кратчайшего пути с нормальным распределением вероятностей длины дуги». Международный журнал исследований операций . 21 (2): 143–154. doi :10.1504/IJOR.2014.064541.

Библиография

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