Jump to content

Минимальное связующее дерево с узким местом

В математике минимальное связующее дерево с узким местом (MBST) в неориентированном графе — это связующее дерево , в котором самое дорогое ребро является максимально дешевым. Ребро узкого места — это ребро с наибольшим весом в связующем дереве. Охватывающее дерево является минимальным связующим деревом с узким местом, если граф не содержит остовное дерево с меньшим весом ребра узкого места. [1] Для ориентированного графа аналогичная проблема известна как «Минимальное узкое место, охватывающее древовидность» (MBSA) .

Определения

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

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

[ редактировать ]
Минимальное связующее дерево с узкими местами

В неориентированном графе G ( V , E ) функции w : E R пусть S — множество всех остовных деревьев Ti и . Пусть B ( Ti остовного ) — ребро максимального веса для любого Ti дерева . Мы определяем подмножество минимальных узких остовных деревьев S ′ такое, что для каждых T j S и T k S мы имеем B ( T j ) ⩽ B ( T k ) для всех i и k . [2]

Граф справа является примером MBST, красные ребра на графике образуют MBST G ( V , E ) .

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

[ редактировать ]
Минимальное узкое место, охватывающее древовидность G(V,E)

Древовидность графа G — это направленное дерево графа G , содержащее направленный путь от заданного узла L до каждого узла подмножества V ′ из V \{ L } . Узел L называется корнем древовидности. Древовидность является охватывающей древовидностью, если V ′ = V \{ L } . MBST в данном случае представляет собой пролетное ветвление с минимальным краем узкого места. MBST в этом случае называется минимальным узким местом, охватывающим древовидность (MBSA).

Граф справа является примером MBSA, красные ребра на графике образуют MBSA G ( V , E ) .

Характеристики

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

MST (или минимальное связующее дерево ) обязательно является MBST, но MBST не обязательно является MST. [3]

[4]

Алгоритм Камерини для неориентированных графов

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

Предлагаются раздевалки [5] алгоритм , используемый для получения минимального связующего дерева с узкими местами (MBST) в заданном неориентированном связном графе с взвешиванием по ребрам в 1978 году. Он делит ребра наполовину на два набора. Веса ребер в одном наборе не больше, чем в другом. Если остовное дерево существует в подграфе, состоящем исключительно из ребер из набора меньших ребер, оно затем вычисляет MBST в подграфе, MBST подграфа в точности является MBST исходного графа. Если связующее дерево не существует, оно объединяет каждый несвязный компонент в новую супервершину, а затем вычисляет MBST в графе, образованном этими супервершинами и ребрами в большем наборе ребер. Лес в каждом несвязном компоненте является частью MBST в исходном графе. Повторяйте этот процесс до тех пор, пока в графе не останется две (супер) вершины и между ними не будет добавлено одно ребро с наименьшим весом. Находится MBST, состоящий из всех ребер, найденных на предыдущих шагах. [4]

Псевдокод

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

Процедура имеет два входных параметра. G — граф, w массив весов всех ребер в графе G. [6]

function MBST(graph G, weights w)
    E ← the set of edges of G 
    if | E | = 1 then return E else
        A ← half edges in E whose weights are no less than the median weight
        BE - A
        F ← forest of GB
        if F is a spanning tree then
            return MBST(GB,w)
        else
            return MBST((GA)η, w)  F

В приведенном выше ( GA в ) η супервершин (путем рассмотрения вершин в несвязном компоненте как одно) и ребер A. — это подграф, состоящий из

Время работы

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

Алгоритм работает за время O ( E ), где E — количество ребер. Эта граница достигается следующим образом:

  • разделение на два набора с алгоритмами поиска медианы за O ( E )
  • найти лес в O ( E )
  • учитывая полуребра в E на каждой итерации O ( E + E /2 + E /4 + ··· + 1) = O ( E )

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

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

Алгоритмы MBSA для ориентированных графов

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

Для ориентированного графа доступны два алгоритма: алгоритм Камерини для поиска MBSA и еще один от Габоу и Тарьяна. [4]

Алгоритм Камерини для MBSA

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

Для ориентированного графа алгоритм Камерини фокусируется на поиске набора ребер, максимальная стоимость которого будет равна стоимости узкого места MBSA. Это делается путем разделения набора ребер E на два набора A и B и сохранения набора T , который является набором, в котором известно, что G T не имеет охватывающей древовидности, увеличивая T на B всякий раз, когда максимальная древовидность G ( B T ) не является остовным древовидием группы G , иначе мы уменьшим E на A . Общая временная сложность равна O ( E log E ). [5] [4]

Псевдокод

[ редактировать ]
function MBSA(G, w, T) is
    E ← the set of edges of G 
    if | E − T | > 1 then
        A ← UH(E-T)
        B ← (E − T)A
        F ← BUSH(GBUT)
        if F is a spanning arborescence of G then
            S ← F
            MBSA((GBUT), w, T)
        else
            MBSA(G, w, TUB);
  1. T представляет собой подмножество E, для которого известно, что GT не содержит какой-либо связующей древовидности с корнем в узле «a». Первоначально T пусто
  2. UH берет (E−T) набор ребер в G и возвращает A ⊂ (E−T) такой, что:
    1. W a ≥ W b , для a ∈ A и b ∈ B
  3. BUSH(G) возвращает максимальное разветвление G с корнем в узле «a».
  4. Конечный результат будет S.
После запуска первой итерации этого алгоритма мы получаем F и F не является остовным деревом G. Поэтому мы запускаем код
Во второй итерации мы получаем и также не является связующим ветвлением G. Поэтому мы запускаем код
На третьей итерации мы получаем и является охватывающим деревом G. Итак, мы запускаем код
когда мы запускаем , равно 1, что не больше 1, поэтому алгоритм возвращает результат и конечный результат .

Алгоритм Габоу и Тарьяна для MBSA

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

Габоу и Тарьян представили модификацию алгоритма Дейкстры для определения кратчайшего пути с одним источником, который создает MBSA. Их алгоритм работает за время O ( E + V log V ), если используется куча Фибоначчи . [7]

Псевдокод

[ редактировать ]
 For a graph G(V,E), F is a collection of vertices in V. 
 Initially, F = {s} where s is the starting point of the graph G and c(s) = -∞

 1  function MBSA-GT(G, w, T)
 2      repeat |V| times
 3          Select v with minimum c(v) from F; 
 4          Delete it from the F;
 5          for ∀ edge(v, w) do
 6              if wF or ∉ Tree then
 7                  add w to F;          
 8                  c(w) = c(v,w);
 9                  p(w) = v;     
 10             else
 11                 if wF and c(w) > c(v, w) then
 12                     c(w) = c(v, w);
 13                     p(w) = v;

Следующий пример показывает, как работает алгоритм.

На первом шаге алгоритма мы выбираем корень s из графа G, на рисунке выше вершина 6 — это корень s. Затем мы нашли все ребра(6,w) € E и их стоимость c(6,w), где w € V.
Далее переходим в вершину 5 графа G, находим все ребра(5,w) € E и их стоимость c(5,w), где w € V.
Далее переходим в вершину 4 графа G, находим все ребра(4,w) ∈ E и их стоимость c(4,w), где w ∈ V. Находим, что ребро(4,5) > ребро(6.5), поэтому мы сохраняем ребро(6,5) и удаляем ребро(4,5).
Далее переходим в вершину 1 графа G, находим все ребра(1,w) ∈ E и их стоимость c(1,w), где w ∈ V. Находим, что ребро(5,2) > край(1,2), поэтому мы удаляем край(5,2) и сохраняем край(1,2).
Далее переходим в вершину 2 графа G, находим все ребра(2,w) € E и их стоимость c(2,w), где w € V.
Далее переходим в вершину 3 графа G, находим все ребра(3,w) ∈ E и их стоимость c(3,w), где w ∈ V. Находим, что ребро(3,4) > ребро(6,4), поэтому мы удалим ребро(3,4) и оставим ребро(6,4).
После того, как мы пройдемся по всем вершинам графа G, алгоритм завершится.

Другой подход, предложенный Тарьяном и Габоу, с границей O ( E log *  V ) для разреженных графов, в котором он очень похож на алгоритм Камерини для MBSA, но вместо разделения набора ребер на два набора на каждую итерацию был введен K ( i ) , в котором i - количество разбиений, которые потребовали место или, другими словами, номер итерации, а K ( i ) — возрастающая функция, обозначающая количество разделенных наборов, которые должны быть на итерацию. К ( я ) знак равно 2 к ( я - 1) с k (1) = 2 . Алгоритм находит λ * где это значение края узкого места в любом MBSA. После λ * находится любое остовное дерево в G ( λ * ) — это MBSA, в котором G ( λ * ) — это граф, стоимость всех ребер которого λ * . [4] [7]

  1. ^ Все о связующем дереве узких мест
  2. ^ Мурали, Т.М. (2009), Применение минимальных остовных деревьев (PDF)
  3. ^ в вопросе 3 у вас есть доказательство этого утверждения (PDF)
  4. ^ Jump up to: а б с д и Трабулси, Ахмад (2014), связующие деревья узких мест (PDF) , заархивировано из оригинала (PDF) 4 марта 2016 г. , получено 28 декабря 2014 г.
  5. ^ Jump up to: а б Камерини, П.М. (1978), «Проблема связующего дерева мин-макс и некоторые расширения», Information Processing Letters , 7 (1): 10, doi : 10.1016/0020-0190(78)90030-3
  6. ^ Цуй, Юйсян (2013), Минимальное связующее дерево с узкими местами (PDF) , заархивировано из оригинала (PDF) 4 марта 2016 г. , получено 28 декабря 2014 г.
  7. ^ Jump up to: а б Габоу, Гарольд Н ; Тарьян, Роберт Э (1988). «Алгоритмы решения двух задач оптимизации узких мест» . Журнал алгоритмов . 9 (3): 411–417. дои : 10.1016/0196-6774(88)90031-4 . ISSN   0196-6774 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 77b93464739dece02da6203ac9aacb15__1714361880
URL1:https://arc.ask3.ru/arc/aa/77/15/77b93464739dece02da6203ac9aacb15.html
Заголовок, (Title) документа по адресу, URL1:
Minimum bottleneck spanning tree - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)