МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Распределенные алгоритмы

    Соглашение. Все корректные процессы останавливаются на одном и том же

    значении.

    Зависимость. Если командующий корректен, все корректные процессы

    останавливаются на [pic].

    Можно, кроме этого, требовать одновременности, то есть, что все корректные

    процессы принимают решение в одном и том же импульсе. Все алгоритмы,

    обсуждаемые в этом и следующем разделах, удовлетворяют требованию

    одновременности; см. также Подраздел 14.2.6.

    14.1.1 Граница Способности восстановления

    Способность восстановления синхронных сетей после Византийских сбоев, как в

    случае асинхронных сетей (Теорема 13.25), ограничена t < N/3. Эта граница

    была впервые продемонстрирована Пизом, Шостаком и Лампортом [PSL80]

    представлением нескольких сценариев для алгоритма в присутствии N/3 или

    более Византийских процессов. В отличие от сценариев, используемых в

    доказательстве Теоремы 13.25, здесь корректные процессы получают

    противоречивую информацию, позволяющую заключить, что некоторые процессы

    являются сбойными. Однако, как оказывается, невозможно определить, какие

    процессы являются ненадежными, и неверные процессы могут навязать неверное

    решение.

    Теорема 14.1 t-Византийско-устойчивого протокола вещания при t>N/3 не

    существует.

    Доказательство. Как в ранних доказательствах, способность восстановления

    N/3 или выше позволяет разделить процессы на три группы (S, T, и U), каждая

    из которых может быть полностью сбойной. Группа, содержащая командующего,

    называется S. Противоречие получается из рассмотрения трех сценариев,

    изображенных на Рисунке 14.1, где сбойная группа обозначена двойным блоком.

    [pic]

    Рисунок 14.1 Сценарии для доказательства теоремы 14.1.

    В сценарии 0 командующий вещает значение 0, и процессы в группе U сбойные;

    в сценарии 1 командующий вещает 1 и процессы в T сбойные. В импульсе i

    сценария 0 процессы группы U посылают процессам группы T в точности те

    сообщения, которые они послали бы (согласно протоколу) в 1 сценарии. (То

    есть, сообщения, посланные в ответ на сообщения, полученные в импульсе i-1

    сценария 1.) Процессам в S они посылают сообщения, направляемые протоколом.

    Процессы в S и T, конечно, посылают корректные сообщения во всех импульсах.

    Заметьте, что в этом сценарии только процессы группы U посылают

    неправильные сообщения, и спецификации протокола предписывают, что все

    корректные процессы, включая группу T, останавливаются на 0.

    Сценарий 1 определен аналогично, но здесь процессы в T сбойные и они

    посылают сообщения, которые должны были послать в сценарии 0. В этом

    сценарии процессы в U останавливаются на 1.

    В заключение рассмотрим сценарий 2, где процессы в S сбойные и ведут себя

    следующим образом. Процессам в T они посылают сообщения сценария 0 и

    процессам в U они посылают сообщения сценария 1. Теперь можно показать

    индукцией по номеру импульса, что сообщения, посланные T к U (или, от U к

    T) - точно те, что посланы в сценарии 0 (или 1, соответственно).

    Следовательно, для процессов в T сценарий 2 неотличим от сценария 0 и для

    процессов в U он неотличим от сценария 1. Из этого следует, что процессы в

    T останавливаются на 0, и процессы в U останавливаются на 1. Противоречие.

    (

    В доказательстве используется то, что Византийские процессы могут посылать

    сообщения 1-сценария, даже если они получили только сообщения 0-сценария.

    То есть, процессы могут "лгать" не только о своем собственном состоянии, но

    также и о сообщениях, которые они получили. Именно эту возможность можно

    устранить с помощью установления подлинности, как описано в Разделе 14.2;

    это ведет к способности восстановления N-1.

    14.1.2 Алгоритм Византийского вещания

    В этом подразделе будет показано, что верхняя граница способности

    восстановления, показанная в предыдущем подразделе, точна. Кроме того,

    противопоставляя ситуации в асинхронных сетях, максимальная способность

    восстановления достижима при использовании детерминированных алгоритмов. Мы

    представляем рекурсивный алгоритм, также Пиза и других [PSL80], который

    допускает t Византийских отказа при t < N/3. Способность восстановления -

    параметр алгоритма.

    Алгоритм Broadcast(N, 0) дан как Алгоритм 14.2; он не допускает отказов (t

    = 0), и если отказов не происходит, все процессы останавливаются на входе

    командующего в 1 импульсе. Если отказ происходит, соглашение может быть

    нарушено, но завершение (и одновременность), тем не менее, гарантируется.

    Импульс

    1: Командующий посылает всем процессам,

    помощники не посылают.

    Получить сообщения импульса 1.

    Командующий принимает решение на [pic].

    Помощники принимают решение следующим образом:

    if от g в импульсе 1 было получено cообщение

    then принять решение x

    else принять решение udef

    Алгоритм 14.2 Broadcast (N, 0).

    Протокол для способности восстановления t>0 (Алгоритм 14.3) использует

    рекурсивные вызовы процедуры для способность восстановления t-1.

    Командующий посылает свой вход всем помощникам в импульсе 1, и в следующем

    импульсе, каждый помощник начинает вещание полученного значения другим

    помощникам, но это вещание имеет способность восстановления t-1. Эта

    уменьшенная способность восстановления - трудноуловимый момент алгоритма,

    потому что (если командующий корректен) все t Византийские процессы могут

    находиться среди помощников, так что фактическое число отказов может

    превышать способность восстановления вложенного вызова Broadcast. Чтобы

    доказать правильность возникающего в результате алгоритма, необходимо

    рассуждать, используя способность восстановления t и фактическое число

    сбойных процессов f (см. Лемму 14.3). В импульсе t+1 вложенные вызовы

    производят решение, поэтому помощник p принимает решение в N-1 вложенных

    вещаниях. Эти N-1 решения хранятся в массиве [pic], из которого решение p

    получается большинством голосов (значение, полученное непосредственно от

    командующего, здесь игнорируется!). Для этого на массивах определяется

    детерминированная функция major, с таким свойством, что, если v имеет

    большинство в W, (то есть, более половины элементов равны, то major(W)=v.

    Импульс

    1: Командующий посылает всем процессам,

    помощники не посылают.

    Получить сообщения импульса 1.

    Помощник p действует следующим образом.

    if от g в импульсе 1 было получено cообщение

    then [pic] else [pic]

    Объявить [pic] другим помощникам, действуя как командующий

    в [pic] в следующем импульсе

    (t+1): получить сообщения импульса t + 1.

    Командующий останавливается на [pic].

    Для помощника p:

    Для каждого помощника q в [pic] встречается решение.

    [pic] := решение в [pic];

    [pic]

    Алгоритм 14.3 Вещание (N, t) (ДЛЯ t> 0).

    Лемма 14.2 (Завершение) Если Broadcast(N, t) начинается в импульсе 1,

    каждый процесс принимает решение в импульсе t+1.

    Доказательство. Так как протокол рекурсивен, его свойства доказываются с

    использованием рекурсии по t.

    В алгоритме Broadcast(N, 0) (Алгоритм 14.2), каждый процесс принимает

    решение в импульсе 1.

    В алгоритме Broadcast(N, t) помощники начинают рекурсивные обращения

    алгоритма, Broadcast(N-1, t-1), в импульсе 2. Если алгоритм начат в

    импульсе 1, он принимает решение в импульсе t (это - гипотеза индукции),

    следовательно если он начат в импульсе 2, все вложенные вызовы принимают

    решение в импульсе t + 1. В одном том же импульсе принимается решение в

    Broadcast(N, t). (

    Чтобы доказывать зависимость (также индукцией) предполагается, что

    командующий корректен, следовательно все t сбойных процесса находятся среди

    N-1 помощников. Так как t < (N - l) /3 не всегда выполняется, простую

    индукцию использовать нельзя, и мы рассуждаем, используя фактическое число

    неисправностей, обозначенное f.

    Лемма 14.3 (Зависимость) Если командующий корректен, если имеется f сбойных

    процессов, и если N > 2f+t, то все корректные процессы останавливаются на

    входе командующего.

    Доказательство. В алгоритме Broadcast(N, 0) если командующий корректен, все

    корректные процессы, останавливаются на значении входа генерала.

    Теперь предположим, что лемма справедлива для Broadcast(N-1, t-1). Так как

    командующий корректен, он посылает свой вход всем помощникам в импульсе 1,

    так что каждый корректный помощник q выбирает [pic]. Теперь N > 2f + t

    означает (N - 1) > 2f + (t - 1), поэтому гипотеза индукции применяется к

    вложенным вызовам, даже если теперь все f сбойных процесса находятся среди

    помощников. Таким образом, для корректных помощников p и q, решение p в

    Broadcast(N-1, t-1) равняется [pic], то есть, [pic]. Но, поскольку строгое

    большинство помощников корректно (N > 2f + t), процесс p завершится с

    [pic], в котором большинство значений равняется [pic]. Следовательно,

    применение major к p выдает нужное значение [pic]. (

    Лемма 14.4 (Соглашение) Все корректные процессы останавливается на одном и

    том же значении.

    Доказательство. Так как зависимость означает соглашение в выполнениях, в

    которых командующий является корректным, мы теперь сконцентрируемся на

    случае, когда командующий сбойный. Но тогда самое большее t-l помощников

    сбойные, что означает, что вложенные вызовы функционируют в пределах своих

    способностей восстановления!

    Действительно, t < N/3 означает t - 1 < (N - 1) / 3, следовательно,

    вложенные вызовы удовлетворяют соглашению. Таким образом, все корректные

    помощники остановятся на одном и том же значении [pic] для каждого

    помощника q во вложенном вызове [pic]. Таким образом, каждый корректный

    помощник вычисляет точно такой же вектор W в импульсе t + 1, что означает,

    что применение major дает тот же самый результат в каждом корректном

    процессе. (

    Теорема 14.5 Протокол Broadcast(N, t) (Алгоритм 14.2/14.3) - t-Византийско-

    устойчивый протокол вещания при t < N/3.

    Доказательство. Завершение было показано в Лемме 14.2, зависимость в Лемме

    14.3, и соглашение в Лемме 14.4. (

    Протокол Broadcast принимает решение в (t + 1)-ом импульсе, что является

    оптимальным; см. Подраздел 14.2.6. К сожалению, его сложность по сообщениям

    экспоненциальная; см. Упражнение 14.1.

    14.1.3 Полиномиальный Алгоритм Вещания

    В этом разделе мы представляем Византийский алгоритм вещания Долева и

    других [DFF+82], который использует только полиномиальное число сообщений и

    бит. Временная сложность выше, чем у предыдущего протокола; алгоритм

    требует 2t+3 импульса для достижения решения. В следующем описании будет

    предполагаться, что N = 3t + 1, и позже будет обсужден случай N > 3t + 1.

    Алгоритм использует два порога, L = t + 1 и H = 2t + 1. Эти числа

    выбираются так, что (1) каждое множество из L процессов содержит по крайней

    мере один корректный процесс, (2) каждое множество из H процессов содержит

    по крайней мере L корректных процессов, и (3) имеется по крайней мере H

    корректных процессов. Обратите внимание, что предположение [pic] необходимо

    и достаточно для выбора L и H, удовлетворяющих этим трем свойствам.

    Алгоритм обменивается сообщениями типа , где v или значение 1, или

    имя процесса (bm обозначает “broadcast message”, “вещать сообщение”.)

    Процесс p содержит двухмерную булеву таблицу R, где [pic] истинен тогда и

    только тогда, когда p получил сообщение от процесса q.

    Первоначально все элементы таблицы ложны, и мы полагаем, что таблица

    обновляется в фазе получения каждого импульса (это не показано в Алгоритме

    14.4). Заметьте, что [pic] монотонна в импульсах, то есть, если [pic]

    становится истинным в некотором импульсе, он остается истиной в более

    поздних импульсах. Кроме того, так как только корректные процессы

    “выкрикивают” сообщения, для корректных p, q, и r в конце каждого импульса

    имеем: [pic].

    В отличие от протокола Broadcast предыдущего подраздела, протокол Долева и

    других является асимметричным в значениях 0 и 1. Решение 0 - значение по

    умолчанию и выбирается, если в обмене было недостаточно много сообщений.

    Если командующий имеет вход 1, он будет “выкрикивать” сообщения , и

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

    В алгоритме уместны три типа действия: инициирование, поддержка и

    подтверждение.

    Поддержка. Процесс p поддерживает процесс q в импульсе i, если в более

    ранних импульсах p получил достаточно доказательств, что q послал сообщения

    ; если дело обстоит так, p пошлет сообщения в импульсе i.

    Процесс p прямо поддерживает q, если p получил сообщение от q.

    Процесс p косвенно поддерживает q, если p получил сообщение по

    крайней мере от L процессов. Множество процессов [pic], поддерживаемых p,

    определяется неявно из [pic]

    [pic] (*прямая*)

    [pic] (*косвенная*)

    [pic]

    Порог для становления косвенным поддерживающим означает, что если

    корректный процесс поддерживает процесс q, то q послал по крайней мере одно

    сообщение . Действительно, предположим, что некоторый корректный

    процесс поддерживает q, пусть i - первый импульс, в котором это происходит.

    Так как косвенная поддержка q требует получения по крайней мере одного

    сообщения от корректного процесса в более раннем импульсе, первая

    поддержка корректным процессом процесса q - прямая. Прямая поддержка

    корректным процессом означает, что этот процесс получил сообщение

    от q.

    Подтверждение. Процесс p подтверждает процесс q после получения сообщения

    от H процессов, то есть,

    [pic]

    Выбор порогов означает, что, если корректный процесс p подтверждает q, то

    все корректные процессы подтверждают q самое большее одним импульсом позже.

    Действительно, предположим, что p подтверждает q после импульса i. Процесс

    p получил сообщения от H процессов, включая (выбором порогов) по

    крайней мере L корректных поддерживающих для q. Корректные поддерживающие

    для q посылают сообщение всем процессам, что означает, что в

    импульсе i все корректные процессы получают по крайней мере L сообщений

    и поддерживают q в импульсе i + 1. Таким образом, в импульсе i + 1

    все корректные процессы посылают , и поскольку число корректных

    процессов по крайней мере H, каждый корректный процесс получает достаточную

    поддержку, чтобы подтвердить q.

    Инициирование. Процесс p инициирует, когда у него есть достаточно

    доказательств того, что окончательное значения решения будет 1. После

    инициирования, процесс p посылает сообщения . Инициирование может

    быть вызвано тремя типами доказательств, а именно (1) p - командующий и

    [pic], (2) p получает от командующего в импульсе 1, или (3) p

    подтвердил достаточно много помощников в конце последнего импульса.

    Последняя возможность в частности требует некоторого внимания, так как

    число подтвержденных помощников, которое является "достаточным"

    увеличивается в течение выполнения, и подтвержденный командующий не идет в

    счет для этого правила. В первых трех импульсах L помощников должны быть

    подтверждены, чтобы инициировать, но начиная с импульса 4 порог

    увеличивается через каждые два импульса. Таким образом, инициирование

    согласно правилу (3) требует, чтобы к концу импульса i, [pic] помощников

    было подтверждено. Запись [pic] в алгоритме обозначает множество

    подтвержденных помощников, то есть, [pic]. Инициирование процессом p

    представляется булевой переменной [pic].

    Если корректный помощник r инициирует в конце импульса i, все корректные

    процессы подтверждают r в конце импульса i + 2. Действительно, r

    “выкрикивает” в импульсе i + 1, поэтому все корректные процессы

    (прямо) поддерживают r в импульсе i + 2, так что каждый процесс получает по

    крайней мере H сообщений в этом импульсе.

    Алгоритм продолжается в течение 2t + 3 импульсов; если процесс p подтвердил

    по крайней мере H процессов (здесь считает командующий) к концу того

    импульса, p принимает решение 1, иначе p принимает решение 0. См. Алгоритм

    14.4.

    var [pic] : boolean init false

    [pic] : boolean init if [pic] then true else false;

    Импульс i: (* Фаза посылки *)

    if [pic] then shout;

    forall [pic] do shout;

    получить все сообщения импульса i;

    (*обновление состояния*)

    if i = 1 and [pic] then [pic];

    if [pic] then [pic];

    if i = 2t + 3 then (*принять решение*)

    if [pic] then [pic] else [pic]

    Алгоритм 14.4 Протокол с надежным вещанием.

    Командующий, являющийся единственным процессом, который может

    самостоятельно предписать инициирования (в других процессах) занимает

    мощное положение в алгоритме. Легко заметить, что, если командующий

    корректно инициирует, начинается лавина сообщений, которая заставляет все

    корректные процессы подтвердить H процессов и остановиться на значении 1. К

    тому же если он не инициирует, то нет "критической массы" сообщений,

    которая ведет к инициированию любого корректного процесса.

    Лемма 14.6 Алгоритм 14.4 удовлетворяет завершению (и одновременности) и

    зависимости.

    Доказательство. Из алгоритма видно, что все корректные процессы принимают

    решение в конце импульса 2t + 3, что показывает завершение и

    одновременность. Чтобы показать зависимость, мы предположим, что

    командующий корректен.

    Если командующий корректен и имеет вход 1, он “выкрикивает” сообщение в импульсе 1, заставляя каждый корректный процесс q инициировать.

    Следовательно, каждый корректный процесс q “выкрикивает” в

    импульсе 2, так что к концу импульса 2 каждый корректный процесс p

    поддерживает все другие корректные процессы. Это означает, что в импульсе 3

    каждый корректный p “выкрикивает” для каждого корректного q, так

    что в конце импульса 3 каждый корректный процесс получает от

    каждого другого корректного процесса, заставляя его подтвердить q. Таким

    образом с конца раунда 3 каждый корректный процесс подтвердил H процессов,

    что означает, что окончательное решение будет 1. (Командующий

    поддерживается и подтверждается всеми корректными процессами одним

    импульсом ранее других процессов.)

    Если командующий корректен и имеет вход 0, он не “выкрикивает” в

    импульсе 1, чего не делает и никакой другой корректный процесс.

    Предположим, что никакой корректный процесс не инициировал в импульсах с 1

    по i-1; тогда никакой корректный процесс не посылает в импульсе i.

    В конце импульса i никакой корректный процесс не поддерживает и не

    подтверждает никакого корректного процесса, так как, как мы видели ранее,

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.