Jump to content

Алгоритм кратчайшей пары непересекающихся ребер

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

  1. Запустите алгоритм поиска кратчайшего пути для данной пары вершин.
  2. Замените каждое ребро кратчайшего пути (эквивалентного двум противоположно направленным дугам) одной дугой, направленной к исходной вершине.
  3. Сделайте длину каждой из вышеуказанных дуг отрицательной.
  4. Запустите алгоритм кратчайшего пути (Примечание: алгоритм должен принимать отрицательные затраты)
  5. Сотрите перекрывающиеся края двух найденных путей и измените направление оставшихся дуг на первом кратчайшем пути так, чтобы каждая дуга на нем теперь была направлена ​​к целевой вершине. В результате получается желаемая пара путей.

Вместо общего алгоритма поиска кратчайшего пути Форда. [2] [3] действительно для отрицательных дуг, присутствующих в любом месте графа (с несуществующими отрицательными циклами), Бхандари [4] предоставляет два разных алгоритма, каждый из которых можно использовать на шаге 4. Один алгоритм представляет собой небольшую модификацию традиционного алгоритма Дейкстры , а другой, называемый алгоритмом поиска в ширину (BFS), является вариантом алгоритма Мура. [5] [6] Поскольку отрицательные дуги находятся только на первом кратчайшем пути, в преобразованном графе не возникает отрицательного цикла (шаги 2 и 3). В неотрицательном графе модифицированный алгоритм Дейкстры сводится к традиционному алгоритму Дейкстры и, следовательно, может использоваться на этапе 1 приведенного выше алгоритма (и, аналогично, алгоритма BFS).

Модифицированный алгоритм Дейкстры

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

Источник: [4] [7]

Г = (В, Е) d(i) – расстояние вершины i (iεV) от исходной вершины A; это сумма дуг возможных путь от вершины A до вершины i. Обратите внимание, что d(A)=0; P(i) – предшественник вершины i на том же пути. Z – вершина назначения

Шаг 1.

Start with d(A) = 0,
d(i)     = l (Ai), if i∈ΓA;  Γi ≡ set of neighbor vertices of vertex i, l(ij) = length of arc from vertex i to vertex j.
      
         = ∞, otherwise.       
Assign S = V-{A}, where V is the set of vertices in the given graph.
Assign P(i) = A, ∀i∈S.

Шаг 2.

a) Find j∈S such that d(j) = min d(i), i∈S.
b) Set S = S – {j}.
c) If j = Z (the destination vertex), END; otherwise go to Step 3.

Шаг 3.

∀i∈Γj, if d(j) + l(ji) < d(i),
a) set d(i) = d(j) + l(ji), P(i) = j.
b) S = S ∪{i}
Go to Step 2.

Основные этапы алгоритма кратчайшей пары с непересекающимися ребрами показаны ниже:

Графическая иллюстрация алгоритма поиска кратчайшей пары непересекающихся путей
Graphical Illustration of the Shortest Pair of Disjoint Paths Algorithm

На рисунке A показан заданный неориентированный граф G(V, E) с весами ребер.

На рисунке B показан рассчитанный кратчайший путь ABCZ от A до Z (жирными линиями).

На рисунке C показано обращение дуг кратчайшего пути и их отрицательные веса.

На рисунке D показан кратчайший путь ADCBZ от A до Z, определенный в новом преобразовании. граф на рисунке C (это определяется с помощью модифицированного алгоритма Дейкстры (или алгоритма BFS), действующего для таких отрицательных дуг; в таком преобразованном графе никогда не бывает отрицательных циклов).

На рисунке E показан определенный кратчайший путь ADCBZ на исходном графике.

На рисунке F показана определенная кратчайшая пара непересекающихся путей (ABZ, ADCZ), найденная после стирания ребра BC, общего для путей ABCZ и ADCBZ, и соответствующей группировки оставшихся ребер.

Обсуждение

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

В неотрицательном графе модифицированный алгоритм Дейкстры функционирует как традиционный алгоритм Дейкстры. В графе, характеризующемся вершинами со степенью O(d) (d<|V|), эффективность равна O(d|V|), то есть O(|V| 2 ), в худшем случае, как в традиционном случае Дейкстры.

В преобразованном графе алгоритма кратчайшей пары непересекающихся ребер, который содержит отрицательные дуги, данная вершина, ранее «постоянно» помеченная на этапе 2a модифицированного алгоритма Дейкстры, может быть повторно посещена и перемаркирована на этапе 3a и вставлена ​​обратно в набор вершин S ( Шаг 3б). Эффективность модифицированного Дейкстры в таком преобразованном графе становится O(d 2 |V|), являющийся O(|V| 3 ) в худшем случае. Большинство графов, представляющих практический интерес, обычно разрежены и имеют степени вершин O(1), и в этом случае эффективность модифицированного алгоритма Дейкстры, примененного к преобразованному графу, становится O(|V|) (или, что то же самое, O(|E| )). Алгоритм кратчайшей пары, не пересекающийся по ребрам, тогда становится сравнимым по эффективности с алгоритмом Суурбалля , который в общем имеет значение O(|V| 2 ) из-за дополнительного преобразования графа, которое изменяет вес графа, чтобы избежать дуг с отрицательной стоимостью, что позволяет алгоритм Дейкстры использовать для обоих шагов кратчайшего пути. Повторное взвешивание требует построения всего дерева кратчайших путей с корнем в исходной вершине. Обходя это дополнительное преобразование графа и используя вместо него модифицированный алгоритм Дейкстры, подход Бхандари приводит к упрощенной версии алгоритма кратчайшей пары непересекающихся ребер без особого ущерба для эффективности, по крайней мере, для разреженных графов. Получившаяся простая форма в дальнейшем поддается легкому расширению. [8] [9] к алгоритмам K (>2) непересекающихся путей и их вариациям, таким как частично непересекающиеся пути, когда полной непересекаемости не существует, а также к графам с ограничениями, с которыми сталкивается практикующий сетевой специалист в более сложных реальных сетях.

Вершинно-непересекающаяся версия описанного выше алгоритма кратчайшей пары путей, не пересекающихся по ребрам, получается путем разделения каждой вершины (за исключением вершин источника и назначения) первого кратчайшего пути на шаге 3 алгоритма, соединяя разделенную пару вершин нулевым весовая дуга (направленная к исходной вершине) и замена любого инцидентного ребра двумя противоположно направленными дугами, одна инцидентная в вершине расщепляемой пары (ближе к исходной вершине), а другая дуга, исходящая из другой вершины. Варианты K (>2) получаются аналогично, например, вершины кратчайшего ребра непересекающейся пары путей (за исключением вершин источника и назначения) разбиваются, при этом вершины в каждой расщепленной паре соединяются друг с другом дугами с нулевым значением. вес, а также внешние края аналогичным образом [8][9] . Алгоритмы, представленные для неориентированных графов, также распространяются на ориентированные графы и в целом применимы к любой задаче (в любой технической дисциплине), которую можно смоделировать как граф вершин и ребер (или дуг).

  1. ^ Бхандари, Рамеш (1999). Жизнеспособные сети: алгоритмы разнообразной маршрутизации . Спрингер. п. 46. ​​ИСБН  0-7923-8381-8 .
  2. ^ Форд, ЛР (1956). Теория сетевых потоков, отчет P-923 . Санта-Моника, Калифорния: Rand Corporation.
  3. ^ Джонс, Р.Х.; Стил, Северная Каролина (1989). Математика в теории коммуникации . Чичестер: Эллис Харвуд (подразделение John Wiley & Sons). п. 74. ИСБН  0-470-21246-2 .
  4. ^ Jump up to: а б Бхандари, Рамеш (1999). Жизнеспособные сети: алгоритмы разнообразной маршрутизации . Спрингер. стр. 21–37. ISBN  0-7923-8381-8 .
  5. ^ Э.Ф. Мур (1959) «Кратчайший путь через лабиринт», Труды Международного симпозиума по теории переключения, Часть II , издательство Гарвардского университета, стр. 285-292
  6. ^ Кершенбаум, Аарон (1993). Алгоритмы проектирования телекоммуникационных сетей . МакГроу-Хилл. стр. 159–162. ISBN  0-07-034228-8 .
  7. ^ Бхандари, Рамеш (1994), «Оптимальная разнообразная маршрутизация в оптоволоконных сетях связи», Proc. IEEE INFOCOM , Торонто, Канада, стр. 1498-1508.
  8. ^ Бхандари, Рамеш (1997) «Алгоритмы оптимальных физически непересекающихся путей и живучие сети», Proc. Второго симпозиума IEEE по компьютерам и коммуникациям , Александрия, Египет, стр. 433-441.
  9. ^ Бхандари, Рамеш (1999). Жизнеспособные сети: алгоритмы разнообразной маршрутизации . Спрингер. стр. 175–182, 93–162. ISBN  0-7923-8381-8 .


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e195ddaa9d3e9eb7e5fb879e68020719__1711909080
URL1:https://arc.ask3.ru/arc/aa/e1/19/e195ddaa9d3e9eb7e5fb879e68020719.html
Заголовок, (Title) документа по адресу, URL1:
Edge disjoint shortest pair algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)