Jump to content

Мега-Слияние

Мега-слияние — это распределенный алгоритм, направленный на решение задачи выборов в обобщенном связном неориентированном графе . [1] [2]

Введение

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

Mega-Merger был разработан Робертом Греем Галлагером из Массачусетского технологического института в 1983 году. Он применяет распределенный подход «разделяй и властвуй» , смешанный со стратегией завоевания на основе рангов. Алгоритм обычно представляется по аналогии село-город. Каждый узел графа обозначает деревню, соединяющие их ребра — это дороги, а корневое связующее дерево в подграфе — это город. Тогда весь граф представляет собой мегаполис. Мега-слияние заставляет деревни объединяться и образовывать города в соответствии с рангом и границами друг друга. Затем города формируются в результате союзов или путем завоевания/поглощения.

Предварительные условия

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

Mega-Merger строит минимальное связующее дерево на основе связанных графов при условии:

  • Полная надежность: ни одно сообщение не теряется при передаче.
  • Пользовательский интерфейс (уникальный инициатор): протокол запускает один узел.
  • Двунаправленные каналы связи: каждое ребро является двунаправленным, связь может передаваться в обоих направлениях.

Никаких дополнительных ограничений не требуется.

Алгоритм

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

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

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

  1. Дружеское слияние: : Если города имеют одну и ту же ссылку слияния и имеют одинаковый ранг, происходит дружественное слияние , и два города сливаются в один. Для вновь созданного города выбирается новое имя, выбирается правящая деревня, а путь от предыдущего правителя к узлу в соединении слияния переориентируется так, что он ведет к новому лидеру. Ранг нового города также повышен на единицу. Обратите внимание, что это единственный способ, которым два города могут повысить ранг друг друга.
  2. Поглощение: : Если запрашивающий город имеет более низкий ранг, город-получатель запускает процесс поглощения : поглощается как при дружеском слиянии, но теряет свое название и образовавшийся город имеет ранг .
  3. Приостановка: : В таких случаях замораживает запрос: он ожидает либо поглощения по правилу 2 , либо слияния и повышения своего ранга выше ранга из для того, чтобы иметь возможность ввести в действие правило 1 и усвоить .

Внешние сообщения

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

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

  • : очевидно, что ребро является внутренним ребром в . и обменяйтесь негативными ответами.
  • : просится в город более высокого ранга. По правилу 2 можно утверждать, что никакого поглощения не происходит и действительно принадлежит другому городу.
  • : в этом случае задержит ответ, как указано в правиле 3 .

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

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

Mega-Merger владеет несколькими объектами недвижимости:

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

Прекращение действия

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

Завершение обеспечивается предотвращением взаимоблокировок и полной надежностью .

Анализ затрат состоит из двух компонентов: стоимости этапа и верхней границы этапа. Город запускает этап, запрашивая ссылку слияния из своих деревень и применяя одно из вышеуказанных правил в соответствии с желаемой ситуацией. Мы можем разделить этот этап на пять этапов:

  1. Трансляция запроса на ссылку на слияние в узлы в дереве.
  2. Каждый узел пересылает сообщение своему соседей и ждет своих ответы.
  3. Затем узлы отправляют ответы обратно правителю города посредством конвергентной передачи на общую сумму сообщения.
  4. Затем корень выбирает ссылку слияния и отправляет сообщение выбранному узлу. Тривиально этому сообщению придется путешествовать узлы.

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

Теперь о количестве этапов. По ранее представленному свойству по размеру городов каждый город уровня имеет , следовательно, наибольший достижимый ранг равен . Поскольку города могут сливаться/поглощаться только один раз за этап, в общей сложности у нас есть общее количество сообщений.

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

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

Мега-слияние создает минимальное связующее дерево путем объединения поддеревьев по пути с минимальной стоимостью, то есть по ссылке слияния. По определению минимального связующего дерева, минимальное связующее дерево — это набор минимальных связующих деревьев, соединенных путями с минимальной стоимостью. По своей конструкции Mega-Merger пересылает запрос через свою ссылку слияния, и рано или поздно это ребро станет частью дерева благодаря предотвращению взаимоблокировок .

  1. ^ Галлагер, Роберт (1983). «Распределенный алгоритм минимального остовного дерева» (PDF) . Массачусетский технологический институт .
  2. ^ Авербух, Барух (1987). «Оптимальный распределенный алгоритм для остовного дерева минимального веса, подсчета, выбора лидера и других задач» (PDF) . SIAM Journal по вычислительной технике .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 59b9634d61b338510b4648dcb194adb3__1620321660
URL1:https://arc.ask3.ru/arc/aa/59/b3/59b9634d61b338510b4648dcb194adb3.html
Заголовок, (Title) документа по адресу, URL1:
Mega-Merger - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)