stringtranslate.com

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

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

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

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

Определение

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

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

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

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

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

Алгоритмы

Наиболее важными алгоритмами решения этой задачи являются:

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

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

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

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

Ориентированные ациклические графы (DAG)

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

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

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

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

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

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

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

Всепарные кратчайшие пути

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

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

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

Приложения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Кратчайший путь в стохастических нестационарных сетях

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

Несмотря на значительный прогресс, достигнутый за последнее десятилетие, остается спорным вопрос о том, как следует определять и идентифицировать оптимальный путь в стохастических дорожных сетях. Другими словами, не существует однозначного определения оптимального пути в условиях неопределенности. Один из возможных и распространенных ответов на этот вопрос — найти путь с минимальным ожидаемым временем в пути. Основное преимущество использования этого подхода заключается в том, что эффективные алгоритмы кратчайшего пути, введенные для детерминированных сетей, можно легко использовать для определения пути с минимальным ожидаемым временем прохождения в стохастической сети. Однако полученный в результате оптимальный путь, определенный с помощью этого подхода, может быть ненадежным, поскольку этот подход не позволяет учитывать изменчивость времени в пути. Чтобы решить эту проблему, некоторые исследователи используют распределение времени в пути вместо его ожидаемого значения, поэтому они находят распределение вероятностей общего времени в пути, используя различные методы оптимизации, такие как динамическое программирование и алгоритм Дейкстры . [23] Эти методы используют стохастическую оптимизацию , в частности стохастическое динамическое программирование, для поиска кратчайшего пути в сетях с вероятностной длиной дуги. [24] В литературе по транспортным исследованиям концепция надежности времени в пути используется взаимозаменяемо с изменчивостью времени в пути, так что в целом можно сказать, что чем выше изменчивость времени в пути, тем ниже будет надежность, и наоборот. .

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

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

Рекомендации

Примечания

  1. ^ Кормен и др. 2001, с. 655
  2. ^ Дюрр, Кристоф; Хейлигман, Марк; Хойер, Питер; Мхалла, Мехди (январь 2006 г.). «Сложность квантовых запросов некоторых задач на графах». SIAM Journal по вычислительной технике . 35 (6): 1310–1328. arXiv : Quant-ph/0401091 . дои : 10.1137/050644719. ISSN  0097-5397. S2CID  14253494.
  3. ^ ab Dial, Роберт Б. (1969). «Алгоритм 360: Лес кратчайшего пути с топологическим упорядочением [H]». Коммуникации АКМ . 12 (11): 632–633. дои : 10.1145/363269.363610 . S2CID  6754003.
  4. ^ Дюрр, К.; Хойер, П. (18 июля 1996 г.). «Квантовый алгоритм поиска минимума». arXiv : Quant-ph/9607014 .
  5. ^ Наеби, Аран; Уильямс, ВВ (22 октября 2014 г.). «Квантовые алгоритмы для решения задач о кратчайших путях в структурированных случаях». arXiv : 1410,6220 [квант-ph].
  6. Сандерс, Питер (23 марта 2009 г.). «Быстрое планирование маршрута». Техническое обсуждение Google . Архивировано из оригинала 11 декабря 2021 г.
  7. ^ Чен, Дэнни З. (декабрь 1996 г.). «Разработка алгоритмов и программного обеспечения для решения задач геометрического планирования пути». Обзоры вычислительной техники ACM . 28 (4с). Статья 18. doi :10.1145/242224.242246. S2CID  11761485.
  8. ^ Авраам, Иттай; Фиат, Амос; Гольдберг, Эндрю В .; Вернек, Ренато Ф. «Размер шоссе, кратчайшие пути и доказуемо эффективные алгоритмы». Симпозиум ACM-SIAM по дискретным алгоритмам, страницы 782–793, 2010 г.
  9. ^ Авраам, Иттай; Деллинг, Дэниел; Гольдберг, Эндрю В .; Вернек, Ренато Ф. Research.microsoft.com/pubs/142356/HL-TR.pdf «Алгоритм маркировки на основе узлов для кратчайших путей в дорожных сетях». Симпозиум по экспериментальным алгоритмам, страницы 230–241, 2011 г.
  10. ^ Крогер, Мартин (2005). «Кратчайший множественный несвязный путь для анализа запутывания в двумерных и трехмерных полимерных системах». Компьютерная физика. Коммуникации . 168 (3): 209–232. Бибкод : 2005CoPhC.168..209K. дои : 10.1016/j.cpc.2005.01.020.
  11. ^ Лозано, Леонардо; Медалья, Андрес Л. (2013). «О точном методе решения задачи о кратчайшем пути с ограничениями». Компьютеры и исследования операций . 40 (1): 378–384. дои : 10.1016/j.cor.2012.07.008.
  12. ^ Осанлоу, Кевин; Бурсук, Андрей; Геттье, Кристоф; Казенав, Тристан; Якопен, Эрик (2019). «Оптимальное решение задач планирования пути с ограничениями с помощью сверточных сетей графов и оптимизированного поиска по дереву». Международная конференция IEEE/RSJ по интеллектуальным роботам и системам (IROS) 2019 . стр. 3519–3525. arXiv : 2108.01036 . doi : 10.1109/IROS40897.2019.8968113. ISBN 978-1-7281-4004-9. S2CID  210706773.
  13. ^ Бар-Ной, Амоц; Шибер, Барух (1991). «Проблема канадского путешественника». Материалы второго ежегодного симпозиума ACM-SIAM по дискретным алгоритмам : 261–270. CiteSeerX 10.1.1.1088.3015 . 
  14. ^ Николова, Евдокия; Каргер, Дэвид Р. «Планирование маршрута в условиях неопределенности: проблема канадских путешественников» (PDF) . Материалы 23-й Национальной конференции по искусственному интеллекту (AAAI) . стр. 969–974. Архивировано (PDF) из оригинала 9 октября 2022 г.
  15. ^ Черкасский, Борис В.; Гольдберг, Эндрю В. (1 июня 1999 г.). «Алгоритмы обнаружения отрицательного цикла». Математическое программирование . 85 (2): 277–311. дои : 10.1007/s101070050058. ISSN  1436-4646. S2CID  79739.
  16. ^ Пара, Клод (1967). «Sur des алгоритмы для решения проблем пути в конечных графах». В Розентиэле, Пьер (ред.). Théorie des Graphes (journées Internationales d'Etudes) [Теория графов (международный симпозиум)] . Рим (Италия), июль 1966 года. Дюно (Париж); Гордон и Брич (Нью-Йорк). п. 271. ОСЛК  901424694.
  17. ^ Дерниам, Жан Клод; Пара, Клод (1971). Problèmes de cheminement dans lesgraphes [ Задачи о путях в графах ]. Дюно (Париж).
  18. ^ Барас, Джон; Теодоракопулос, Джордж (4 апреля 2010 г.). Проблемы путей в сетях. Издательство Морган и Клейпул. стр. 9–. ISBN 978-1-59829-924-3.
  19. ^ Гондран, Мишель; Мину, Мишель (2008). "Глава 4". Графы, диоиды и полукольца: новые модели и алгоритмы . Springer Science & Business Media. ISBN 978-0-387-75450-5.
  20. ^ Пули, Марк; Кохлас, Юрг (2011). «Глава 6. Алгебры оценки для задач пути». Общий вывод: объединяющая теория для автоматизированного рассуждения . Джон Уайли и сыновья. ISBN 978-1-118-01086-0.
  21. ^ Луи, Р.П., 1983. Оптимальные пути в графах со стохастическим или многомерным весом. Сообщения ACM, 26 (9), стр. 670–676.
  22. ^ Раджаби-Бахабади, Моджтаба; Шариат-Мохаймани, Афшин; Бабаи, Мохсен; Ан, Чан Ук (2015). «Многоцелевой поиск пути в стохастических нестационарных дорожных сетях с использованием генетического алгоритма недоминируемой сортировки». Экспертные системы с приложениями . 42 (12): 5056–5064. дои : 10.1016/j.eswa.2015.02.046.
  23. ^ Оля, Мохаммад Хессам (2014). «Нахождение кратчайшего пути в комбинированной экспоненте – длина дуги распределения гамма-вероятности». Международный журнал операционных исследований . 21 (1): 25–37. дои : 10.1504/IJOR.2014.064020.
  24. ^ Оля, Мохаммад Хессам (2014). «Применение алгоритма Дейкстры для решения общей задачи о кратчайшем пути с нормальной длиной дуги распределения вероятностей». Международный журнал операционных исследований . 21 (2): 143–154. дои : 10.1504/IJOR.2014.064541.

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

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