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

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

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

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

Для всех вершин и и подмножеств S верно нера­венство ds (u, и) ^ 0, потому что пустой путь (не содержащий ни одного ребра)является S -путем из и в и веса 0. Никакой другой путь не имеет меньшего веса,поскольку в графе G нет циклов отрицательного веса. Значит, ds (u, и) = 0.Правило (1). Так как 0-путь не имеет промежуточных вершин, 0-путь из ив v состоит только из канала uv.Правило (2). Следует непосредственно из правила 1).Правило (3). В простом S '-пути из и в v вершина да либо встречается ровноодин раз, либо вообще не встречается.

Если не содержит промежуточной вер­шины да, то это S -путь; в противном случае этот путь представляет собой по­следовательное соединение двух S -путей, один из которых ведет в вершину да, адругой исходит из вершины да.Правило (4). Применяя лемму 4.1, можно показать, что в том случае, еслив графе есть S '-путь из и в о, существует и простой S '-путь длины ds (и, v) из ив V. Согласно правилу (3) отсюда следует равенство ds (и, v) = min ( ds (u, v), ds (u, w)+ds (Правило (5). Каждый К-путь является путем и наоборот.4.2. Задача построения кратчайших путей для всех пар вершин125Правило (6). Каждый К-путь является путем и наоборот.

Поэтому опти­мальный К-путь также является оптимальным путем.□begin(* Вначале положить S равным 0, a D считать равной 0-расстоянию *)S := 0 ;forallи, v doif и = v then D[u, v\ := Оelse if uv € E then D[u, v] := couvelse D[u, v] := oo ;(* Добавить к S «центровую» вершину*)while S ДVdo(* Инвариант цикла: Vm, v : D[u, a] = ds (u, v) *)begin pick да from V \ S ;(* Выполнить глобальную обработку опорной вершины да *)forallu eVdo(* Выполнить локальную обработку опорной вершины да для и *)forallv е V doD[u, v] := min (D[u, о], D[u, да] + D[w, ц ] ) ;S := S U {да}end (* Vm,v: D [u, o] = d(u,v)*)Алгоритм 4.4.

Алгоритм Флойда— Уоршалла*SПри помощи утверждения 4.5 и метода динамического программированиянетрудно разработать алгоритм решения задачи построения кратчайших путейдля всех пар вершин (см. алгоритм 4.4). В этом алгоритме сначала рассматри­ваются 0-пути, а затем последовательно строятся S -пути для расширяющихсямножеств S, до тех пор пока не будут рассмотрены все пути.Теорема 4.6. Алгоритм 4.4 вычисляет расстояние между всеми парамивершин за 0(А 3) шагов.Д о к а з а т е л ь с т в о .

В начале работы алгоритма D[u, и] = 0, если и == v, D[u, v ] = toцо, если uv € Е, и D[u, v] = оо в остальных случаях. При этомS = 0. Согласно правилам 1) и 2) утверждения 4.5 мы имеем Vm, v : D[u, v] == ds (u, v). Если к множеству S добавляется вершина w, то согласно правилам 3)и 4) того же утверждения оператор присваивания, уточняющий значение D[u, и],обеспечивает сохранение выполнимости предложения Vm, v : D[u, v] = ds (u, v),используемого в качестве инварианта цикла. Программа завершает выполнение,когда S = V.

Принимая во внимание правила 5) и 6) утверждения 4.5, а такжеинвариант цикла, заключаем, что S -расстояния между всеми вершинами равнырасстояниям.Основной цикл выполняется N раз, и в каждой его итерации выполняетсяv)f!2 операций (их можно выполнять последовательно или параллельно). Отсюдаполучается верхняя оценка сложности алгоритма.□Гл. 4. Алгоритмы маршрутизации1264 .2 .2 . А л г о р и т м Т у э г а п о с т р о е н и я к р а т ч а й ш и х п у т е йvar SuDuNbu'■set °f nodes ;: array of weights ;: array of nodes ;begin S„ := 0 ;forall v € V doif v = иthen begin D u [v\ := 0 ; N b u [v] := u d e f endelse if и € N e i g h uthen begin D u [v] := <auv ; N b u [v\ := v endelse begin D u [v\ := oo ; N b u [v] := u d e f end;while S u У У dobegin pick w from V \ S u ;(* Здесь все процессы должны выбрать о д н уи т у жевершину w *)if и = wthen «broadcast the table D w »else «receive the table D w » ;forall v € V doif D u [w ] + D w [v] < D u [v\ thenbegin D u [v] := D u [w ] + D w [v\ ;N b u [ v ] := N b u [w ]end;Su := Su U {ay}endendАлгоритм 4.5.

Упрощенный вариант алгоритма (для узлаи).Распределенный алгоритм вычисления таблиц маршрутизации был разрабо­тан Туэгом в работе [194] на основе алгоритма Флойда—Уоршалла, которыйбыл описан в предыдущем параграфе. Мы должны убедиться в том, что алго­ритм Флойда—Уоршалла подходит для этой цели, т. е. те допущения, на которыхбазируется этот алгоритм, верны для распределенных систем.

Наиболее важ­ным из этих допущений является предположение о том, что в графе нет цикловотрицательного веса. Распределенные системы и в самом деле обладают этимсвойством, так как каждому отдельному каналу связи приписывается положи­тельная стоимость. Можно принять даже более строгое предположение (см. А1ниже).В этом параграфе мы будем действовать в рамках следующих допущений.А1. Каждый цикл в сети имеет положительный вес.А2.

Каждый процесс сети располагает информацией об отличительных при­знаках всех узлов системы (множества вершин V).4.2. Задача построения кратчайших путей для всех пар вершин127АЗ. Каждый процесс располагает информацией о том, какие узлы являютсяего соседями (для каждой вершины и эти сведения содержатся в массиве Neighu)и какой вес имеют каналы, соединяющие процесс с его соседями.Нам будет проще разобраться с корректностью алгоритма Туэга (алгоритм 4.6),если вначале мы рассмотрим его упрощенный вариант, так называемый «простойалгоритм» (алгоритм 4.5).Упрощенный алгоритм. Чтобы получить распределенный алгоритм, пере­менные и операции алгоритма Флойда—Уоршалла разносятся по разным уз­лам сети.

Переменная D[u, v] отдается процессу и; для удобства обозначениямы будем записывать и на месте индекса следующим образом Du[v], Операции,которые присваивают значения переменной Du[v], должны выполняться в узлеи, и, когда значение некоторой переменной, относящейся к узлу да, необходимодля этой операции, это значение должно быть послано процессу и. В алгоритмеФлойда—Уоршалла все вершины должны использовать информацию от опор­ной вершины (она обозначена символом да в теле цикла), которая отправляет этуинформацию одновременно всем вершинам посредством «широковещательной»операции. Наконец, в этом алгоритме нужно ввести специальную операцию, длятого чтобы не только вычислять длины кратчайших S -путей (для этого исполь­зуются переменные Du[v]), но также и первый канал в каждом таком пути (дляэтого мы будем использовать переменные Nbu[v]).Допущение о том, что всякий цикл в сети имеет положительный вес, мож­но использовать для того, чтобы показать, что после каждого этапа обработкиопорной вершины в таблицах маршрутизации не образуются циклы.Лемма 4.7.

Пусть заданы множество вершин S и вершина да. Предпо­ложим также, что1) для всех вершин и верно равенство Du[w] = ds (u, да);2) если ds (u, да) < оо и и Ф да, то значением переменной Nbu[w] явля­ется имя соседа вершины и на кратчайшем S-nym u, ведущем к вер­шине да.Тогда ориентированный граф Tw = (Vw, Ew), где( u e V w -4=^ Du[w\ < оо)и{их е Еш -4=^ ( а / д а Д Nbu[w] = х)),является деревом, в корне которого расположена вершина да.Д о к а з а т е л ь с т в о . Прежде всего заметим, что в том случае, если длявершины и Ф да выполняется неравенство /) ц[да] < оо, то Nbu\w] Ф udef иDmu\w][да] < оо. Значит, для каждой вершины u e Vw, и ф т , существует вершинах, х е Vw, для которой верно равенство Nba[w] = х.Для каждой вершины иЕ Vw, и Ф да, в множестве Еш есть одно ребро, и поэто­му число вершин в графе Тш превосходит количество ребер на единицу.

Осталосьпоказать, что граф Тш не содержит циклов. Коль скоро для ребра их Е Ew име­ет место равенство ds (u, да) = <s>ux + ds {x, да), наличие цикла («о, и\, ... , ифв графе Tw повлекло бы за собой следующее соотношение:ds {uq, да)йи0щ += се ) Ц1ц2 + . . .

+и>ик_1Щ) + ds (uo,да),128Гл. 4. Алгоритмы маршрутизациииз которого вытекает то, чтоО = coUoUl + coUlu2 + . . . + e)U/i_ lUo,а это противоречит допущению о том, что каждый цикл имеет положительныйвес.□Теперь алгоритм Флойда—Уоршалла может быть непосредственно преобра­зован в алгоритм 4.5. Каждая вершина-процесс устанавливает начальные значе­ния приписанным ей переменным и выполняет N итераций основного цикла. Этоталгоритм еще не дает нам окончательного решения, потому что мы не описали,как провести эффективное широковещательное распространение таблицы марш­рутизации опорной вершины. Пока мы можем лишь поверить, что в том случае,когда операция «broadcast the table Dw» выполняется процессом w, а операция«receive the table Dw» выполняется другими процессами, каждый узел получитдоступ к таблице Dw.Нужно обратить особое внимание на операцию «pick w from V \ S» и ор­ганизовать ее выполнение так, чтобы все процессы выбирали опорные вершиныв одном и том же порядке.

Коль скоро предполагается, что всем процессам зара­нее известно множество V, мы можем считать, что вершины из этого множествавыбираются в каком-либо заранее заданном порядке (например, имена вершинвыбираются в алфавитном порядке).Корректность упрощенного алгоритма устанавливается в следующей теореме.Теорема 4.8. Алгоритм 4.5 завершает свое выполнение в каждом узлесети после N итераций основного цикла. Когда алгоритм завершаетсяв узле и, для каждой вершины v выполняется равенство Du[v] = d(u, v ),и в том случае, если в сети есть путь из и в и, то значением переменнойNbu[v] является наименование первого канала в кратчайшем пути из ив у; в противном случае Nbu[v] = udef.Д о к а з а т е л ь с т в о .

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

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

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

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