Главная » Просмотр файлов » Введение в распределённые алгоритмы. Ж. Тель (2009) (не распознанно)

Введение в распределённые алгоритмы. Ж. Тель (2009) (не распознанно) (1185664), страница 70

Файл №1185664 Введение в распределённые алгоритмы. Ж. Тель (2009) (не распознанно) (Введение в распределённые алгоритмы. Ж. Тель (2009) (не распознанно).pdf) 70 страницаВведение в распределённые алгоритмы. Ж. Тель (2009) (не распознанно) (1185664) страница 702020-08-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 70)

Если F является фрагментом и e — ребро наименьшего веса, исходящее из F, то F ∪ {e} также является фрагментом.Минимальное остовное дерево. Рассмотрим взвешенный граф G = (V, E)и для обозначения веса ребра e будем использовать запись (e). Вес остовногодерева T в графе G полагается равным сумме весов всех N − 1 ребер, входящих в состав T, и при этом T называется минимальным остовным деревомили сокращенно MST (иногда его называют также остовным деревом минимального веса), если ни одно остовное дерево не имеет вес, меньший чем T.

В этомпараграфе мы будем полагать, что каждое ребро имеет уникальный вес, т. е. различные ребра имеют различные веса; хорошо известно, что в таком случае в графесуществует единственное минимальное остовное дерево.Д о к а з а т е л ь с т в о. Допустим, что F ∪{e} не является фрагментом MST.Тогда e наряду с некоторыми ребрами MST образует цикл и при этом одно из ребер этого цикла, принадлежащее MST (например f), является ребром, исходящимиз фрагмента F. Согласно выбору ребра e справедливо неравенство (e) < (f);но в таком случае после изъятия ребра f из MST и добавления вместо него ребраe, мы получили бы дерево, вес которого был бы меньше веса MST, т. е.

пришлибы к противоречию.Хорошо известны последовательные алгоритмы построения MST, среди которых можно отметить алгоритмы Прима и Краскала. Алгоритм Прима (см. [55,раздел 24.2]) начинает работу с простейшего фрагмента и на каждом шаге расширяет его, добавляя ребро наименьшего веса, исходящее из построенного к томувремени фрагмента. Алгоритм Краскала (см. [55, раздел 24.2]) начинает работу, располагая семейством фрагментов, состоящих из одного узла, и проводитих соединение, добавляя ребра наименьшего веса, исходящие из того или иногофрагмента.

Поскольку в алгоритме Краскала разрешается работать независимо с несколькими фрагментами, он более подходит для реализации в качествераспределенного алгоритма.Предложение 7.18. Если все веса ребер попарно различны, то существует только одно MST.7.3.3. Глобальное описание алгоритма GHS.Д о к а з а т е л ь с т в о. Допустим противное и рассмотрим случай, когдаоба дерева T1 и T2 (причем T1 6= T2) являются минимальными остовными деревьями. Рассмотрим ребро e наименьшего веса, которое содержится в одном изэтих деревьев, но не содержится в другом; такое ребро существует, ибо T 1 6= T2 .Допустим, не умаляя общности, что e принадлежит T 1 , но не входит в состав T2 .Тогда граф T2 ∪ {e} содержит цикл, и, поскольку в дереве T1 нет циклов, хотя быодно ребро этого цикла, скажем ребро e0 , не содержится в T1 . Согласно выборуребра e, справедливо неравенство (e) < (e0). Но тогда дерево T2 ∪ {e} \ {e0 }имеет вес, меньший чем T2 , вопреки тому, что T2 является MST.Вначале мы расскажем о глобальной работе алгоритма, т.

е. опишем, как алгоритм обращается с фрагментами. Затем мы приведем локальный алгоритм, описывающий действия, которые должны выполняться в каждом узле сети, чтобыосуществить эти глобальные операции над фрагментами.Всякое вычисление алгоритма GHS складывается из следующих шагов.1. Формируется такое семейство фрагментов, что объединение их содержитвсе узлы сети.2.

Первоначально это семейство состоит из всех узлов сети, каждый из которых рассматривается как граф с одним узлом.264Гл. 7. Алгоритмы избрания лидера3. Узлы всякого фрагмента вступают во взаимодействие с целью выявленияисходящего из фрагмента ребра с наименьшим весом.4. Как только будет определено исходящее из фрагмента ребро с наименьшим весом, данный фрагмент соединяется с другим фрагментом путем добавленияэтого исходящего ребра, которое строится в результате взаимодействия этих двухфрагментов.5. Алгоритм завершает работу, как только останется только один фрагмент.Для эффективной реализации этих шагов потребуется ввести некоторые обозначения и операции.1. Имя фрагмента. Чтобы определить исходящее ребро наименьшего веса,необходимо суметь проверить, выводит ли некоторое ребро за пределы фрагмента или оно ведет в узел того же самого фрагмента.

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

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

Вместо этого каждому фрагменту сопоставляется ранг, который первоначально полагается равным 0 для любого фрагмента, состоящего изодного узла. Некоторый фрагмент F1 может соединиться с фрагментом F2 более высокого ранга, после чего новый фрагмент F1 ∪ F2 будет иметь такой жеранг, как и фрагмент F2 . Этот новый фрагмент унаследует имя фрагмента F2 ,и поэтому в узлах фрагмента F2 не потребуется проводить никаких уточнений.Неизбежно также и соединение двух фрагментов одного и того же ранга; в этомслучае новый фрагмент будет носить новое имя и его ранг будет на единицупревосходить ранг соединенных фрагментов.

Именем образовавшегося фрагмента будет вес того ребра, которое соединило два исходных фрагмента; указанноеребро назовем стержнем нового фрагмента. Те два узла, которые соединеныребром-стержнем, будут называться стержневыми узлами.Лемма 7.20. Если соблюдать указанные выше правила соединения фрагментов, то суммарно во всех процессах перемена имени или ранга случится не более N log N раз.Д о к а з а т е л ь с т в о. Ранг всякого процесса не понижается, и лишь в томслучае, когда он повышается, процесс вынужден переменить имя своего фрагмен-7.3. Произвольные сети265та.

Фрагмент ранга L содержит не менее 2L процессов, и поэтому максимальновозможный ранг равен log N. Отсюда следует, что в каждом отдельном процессеранг содержащего его фрагмента повышается не более log N раз. Значит, общеечисло перемен имени и ранга фрагмента ограничено величиной N log N.Краткое изложение стратегии соединения. Для обозначения фрагмента Fс именем FN и рангом L будем использовать запись F = (FN, L). Обозначимсимволом eF исходящее из фрагмента F ребро наименьшего веса.Правило A. Если eF ведет в такой фрагмент F 0 = (FN0 , L0), для которогоL < L0 , то фрагмент F присоединяется к F 0 и образовавшийся при этом новыйфрагмент сохраняет имя FN 0 и ранг L0 .

Эти новые значения отправляются всемпроцессам, входящим в состав F.Правило B. Если eF ведет в такой фрагмент F 0 = (FN0 , L0), для которогоL = L0 и eF0 = eF , то эти два фрагмента соединяются и образуют один новыйфрагмент, который будет носить имя (eF) и иметь ранг L + 1. Эти новые значенияотправляются всем процессам, входящим в состав F и F 0 .Правило C. Во всех остальных случаях (т. е. когда либо L > L 0 , либо L == L0 и eF0 6= eF) фрагмент F должен ожидать, когда откроется возможностьприменения правила A или B.7.3.4. Подробное описание алгоритма GHSСтатус узлов и связей. Как отмечено в описании алгоритма 7.10, в узле pзадействовано несколько локальных переменных, среди которых есть переменные статуса каналов stachp [q] для каждого канала связи pq. Канал может иметьодин из следующих трех статусов: branch, если известно, что соответствующееребро входит в MST, reject, если известно, что это ребро не входит в MST,и basic, если данное ребро еще не было использовано.

Обмен сообщениями вофрагменте с целью выявления исходящего ребра наименьшего веса проводитсяпо ребрам типа branch. Для всякого процесса p рассматриваемого фрагмента запись fatherp будет обозначать то ребро, которое ведет к стержню данногофрагмента. Состоянием statep узла p может быть либо find, если процесс p привлечен к проводимому во фрагменте поиску исходящего ребра наименьшего веса,либо found в противном случае.

Описание алгоритма GHS состоит из трех частей 7.10/7.11/7.12. Иногда обработка сообщений может быть отложена, до техпор пока не будет выполнено некоторое локальное условие. В таком случае мыбудем подразумевать, что анализируемое сообщение сохраняется в памяти. Впоследствии оно извлекается из памяти и обрабатывается так, как будто оно былотолько что получено. Если процесс получает сообщение, пребывая все еще в состоянии sleep, то перед тем как приступить к обработке этого сообщения, нашалгоритм проходит в этой точке этап инициализации (выполняя действие (1)).Поиск исходящего ребра наименьшего веса.

Все узлы фрагмента участвуют совместно в поиске исходящего из этого фрагмента ребра наименьшего веса,и как только такое ребро будет обнаружено, по нему отправляется сообщение266Гл. 7. Алгоритмы избрания лидераvar statep: (sleep, find, found) ;stachp [q]: (basic, branch, reject) для каждого q ∈ Neighp ;namep , bestwtp: real;levelp: integer;testchp , bestchp , fatherp : Neighp ;recp: integer;(1) Первым действием каждого процесса является инициализация данного алгоритма:begin пусть pq — это канал связи процесса p, имеющий наименьший вес ;stachp [q] := branch ; levelp := 0 ;statep := found ; recp := 0 ;send hconnect, 0i to qend(2) После получения сообщения hconnect, Li от q:begin if L < levelp then (* Соединить по правилу A *)begin stachp [q] := branch ;send hinitiate, levelp , namep , statep i to qendelse if stachp [q] = basicthen (* Правило C *) обработать это сообщение позднееelse (* Правило B *) send hinitiate, levelp + 1, (pq), findi to qend(3) После получения сообщения hinitiate, L, F, Si от q:begin levelp := L ; namep := F ; statep := S ; fatherp := q ;bestchp := udef ; bestwtp := ∞ ;forall r ∈ Neighp : stachp [r] = branch ∧ r 6= q dosend hinitiate, L, F, Si to r ;if statep = find then begin recp := 0 ; test endend7.3.

Произвольные сети267(4) procedure test:begin if ∃q ∈ Neighp : stachp [q] = basic thenbegin testchp := q with stachp [q] = basic and (pq) minimal ;send htest, levelp , namep i to testchpendelse begin testchp := udef ; report endend(5) После получения сообщения htest, L, F i от q:begin if L > levelp then (* С ответом придется подождать! *)обработать это сообщение позднееelse if F = namep then (* внутреннее ребро *)begin if stachp [q] = basic then stachp [q] := reject ;if q 6= testchpthen send hrejecti to qelse testendelse send haccepti to qend(6) После получения сообщения haccepti от q:begin testchp := udef ;if (pq) < bestwtpthen begin bestwtp := (pq) ; bestchp := q end;reportend(7) После получения сообщения hrejecti от q:begin if stachp [q] = basic then stachp [q] := reject;testendАлгоритм 7.10.

Алгоритм Галладжера—Хамблета—Спиры (Часть 1).Алгоритм 7.11. Алгоритм Галладжера—Хамблета—Спиры (Часть 2).hconnect, Li, где L — ранг данного фрагмента. Если фрагмент состоит из единственного узла, как это случается после инициализации такого узла, то нужноеребро — это просто инцидентное данному узлу ребро наименьшего веса (см. действие (1)), и сообщение hconnect, 0i отправляется по этому ребру.Теперь рассмотрим случай, когда новый фрагмент образовался за счет соединения двух фрагментов ребром e = pq. Если оба соединенных фрагментаимели одинаковый ранг L, то оба процесса p и q должны были отправить сообщение hconnect, Li по ребру e и должны были получить в ответ сообщениеhconnect, Li, и при этом ребро e должно иметь статус branch(см. действие (2)).Ребро pq становится стержнем нового фрагмента, и процессы p и q обмениваются сообщениями hinitiate, L + 1, N, Si, придавая вновь образованному фрагментуновый ранг и новое имя.

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

Тип файла
PDF-файл
Размер
2,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее