Jump to content

Алгоритм Джонсона

Алгоритм Джонсона
Сорт Задача о кратчайшем пути для всех пар (для взвешенных графов)
Структура данных График
Худшая производительность

Алгоритм Джонсона — это способ найти кратчайшие пути между всеми парами вершин в взвешенном по ребрам ориентированном графе, . Это позволяет некоторым весам ребер быть отрицательными числами с отрицательным весом не , но циклы могут существовать. Он работает с использованием алгоритма Беллмана-Форда для вычисления преобразования входного графа, которое удаляет все отрицательные веса, что позволяет алгоритм Дейкстры к преобразованному графу. использовать [ 1 ] [ 2 ] Он назван в честь Дональда Б. Джонсона , который впервые опубликовал эту технику в 1977 году. [ 3 ]

Похожий метод повторного взвешивания также используется в алгоритме Суурбалле для поиска двух непересекающихся путей минимальной общей длины между одними и теми же двумя вершинами в графе с неотрицательными весами ребер. [ 4 ]

Описание алгоритма

[ редактировать ]

Алгоритм Джонсона состоит из следующих шагов: [ 1 ] [ 2 ]

  1. Сначала новый узел q в граф добавляется , соединенный ребрами с нулевым весом с каждым из остальных узлов.
  2. Во-вторых, алгоритм Беллмана-Форда используется , начиная с новой вершины q , чтобы найти для каждой вершины v минимальный вес h ( v ) пути из q в v . Если на этом этапе обнаруживается отрицательный цикл, алгоритм завершается.
  3. Затем ребра исходного графа повторно взвешиваются с использованием значений, вычисленных алгоритмом Беллмана-Форда: ребро от u до v , имеющее длину , дана новая длина w ( ты , v ) + час ( ты ) - час ( v ) .
  4. Наконец, q удаляется, и алгоритм Дейкстры используется для поиска кратчайших путей от каждого узла s до любой другой вершины в перевзвешенном графе. Расстояние в исходном графе затем вычисляется для каждого расстояния D ( u , v ) путем добавления h ( v ) − h ( u ) к расстоянию, возвращаемому алгоритмом Дейкстры.

Первые три этапа алгоритма Джонсона изображены на иллюстрации ниже.

Граф слева на иллюстрации имеет два отрицательных ребра, но не имеет отрицательных циклов. Центральный график показывает новую вершину q , дерево кратчайшего пути, вычисленное алгоритмом Беллмана-Форда с q в качестве начальной вершины, и значения h ( v ), вычисленные в каждом другом узле как длину кратчайшего пути от q до этой вершины. узел. Обратите внимание, что все эти значения неположительны, поскольку q имеет ребро нулевой длины, ведущее к каждой вершине, и кратчайший путь не может быть длиннее этого ребра. Справа показан перевзвешенный граф, сформированный путем замены веса каждого ребра ⁠. ш ты ( час , v ) + ( ты ) - час ( v ) . В этом перевзвешенном графе веса всех ребер неотрицательны, но кратчайший путь между любыми двумя узлами использует ту же последовательность ребер, что и кратчайший путь между теми же двумя узлами в исходном графе. Алгоритм завершается применением алгоритма Дейкстры к каждому из четырех начальных узлов перевзвешенного графа.

Корректность

[ редактировать ]

В перевзвешенном графе ко всем путям между парой s и t узлов одинаковое количество h ( s ) − h ( t ) добавлено . Предыдущее утверждение можно доказать следующим образом: пусть p путь. Его вес W в перевзвешенном графике определяется следующим выражением:

Каждый отменено в предыдущем выражении в квадратных скобках; следовательно, у нас остается следующее выражение для W :

Выражение в квадратных скобках представляет собой вес p в исходном весе.

Поскольку перевес добавляет одинаковую сумму к весу каждого путь, путь является кратчайшим путем при исходном взвешивании тогда и только тогда, когда он является кратчайшим путем после повторного взвешивания. Вес ребер, принадлежащих кратчайшему пути от q до любого узла, равен нулю, и, следовательно, длины кратчайших путей от q до каждого узла становятся нулевыми в перевзвешенном графе; однако они по-прежнему остаются кратчайшими путями. Следовательно, отрицательных ребер быть не может: если бы ребро uv после перевзвешивания имело отрицательный вес, то путь нулевой длины от q до u вместе с этим ребром образовал бы путь отрицательной длины от q до v , что противоречит тому факту, что все вершины имеют нулевое расстояние от q . Отсутствие отрицательных ребер обеспечивает оптимальность путей, найденных алгоритмом Дейкстры. Расстояния в исходном графе могут быть рассчитаны на основе расстояний, рассчитанных с помощью алгоритма Дейкстры в повторно взвешенном графе путем обращения преобразования повторного взвешивания. [ 1 ]

Временная сложность этого алгоритма с использованием кучи Фибоначчи в реализации алгоритма Дейкстры равна : алгоритм использует время для этапа Беллмана – Форда алгоритма и для каждого из реализации алгоритма Дейкстры. Таким образом, когда граф разреженный , общее время может быть быстрее, чем у алгоритма Флойда-Уоршалла , который решает ту же проблему за время. . [ 1 ]

  1. ^ Перейти обратно: а б с д Кормен, Томас Х .; Лейзерсон, Чарльз Э .; Ривест, Рональд Л .; Штейн, Клиффорд (2001), Введение в алгоритмы , MIT Press и McGraw-Hill, ISBN  978-0-262-03293-3 . Раздел 25.3, «Алгоритм Джонсона для разреженных графов», стр. 636–640.
  2. ^ Перейти обратно: а б Блэк, Пол Э. (2004), «Алгоритм Джонсона», Словарь алгоритмов и структур данных , Национальный институт стандартов и технологий .
  3. ^ Джонсон, Дональд Б. (1977), «Эффективные алгоритмы поиска кратчайших путей в разреженных сетях», Журнал ACM , 24 (1): 1–13, doi : 10.1145/321992.321993 , S2CID   207678246 .
  4. ^ Суурбалле, JW (1974), «Непересекающиеся пути в сети», Networks , 14 (2): 125–145, doi : 10.1002/net.3230040204 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: beb08cb42f5cb0dc72973937b5d0c6c0__1713906180
URL1:https://arc.ask3.ru/arc/aa/be/c0/beb08cb42f5cb0dc72973937b5d0c6c0.html
Заголовок, (Title) документа по адресу, URL1:
Johnson's algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)