Задача византийских генералов

Задача византийских генералов

Задача византийских генералов — в вычислительной технике мысленный эксперимент, призванный проиллюстрировать проблему синхронизации состояния систем в случае, когда коммуникации считаются надёжными, а процессоры — нет.

Содержание

Определение

N «синих» генералов возглавляют армии в горах и готовятся атаковать «зелёных» в долине. Для связи атакующие используют надёжную связь (например, телефон). Однако, из n генералов m являются предателями и активно пытаются воспрепятствовать согласию лояльных генералов. Согласие состоит в том, чтобы все лояльные генералы узнали о численности всех лояльных армий и пришли к одинаковым выводам (пусть и ложным) относительно состояния предательских армий. (Последнее условие важно, если генералы на основании полученных данных планируют выработать стратегию и необходимо, чтобы все генералы выработали одинаковую стратегию.)

Формализация

Каждый из лояльных генералов должен получить вектор длины n, в котором i-й элемент либо обязательно содержит численность i-й армии (если её командир лоялен), либо может содержать произвольное число, если её командир не лоялен. При этом вектора у всех лояльных командиров должны быть полностью одинаковы.

Алгоритм решения

Рекурсивный алгоритм был предложен в 1982 г. Лесли Лампортом. Алгоритм сводит задачу для случая m предателей среди n генералов к случаю m-1 предателя.

Для случая m=0 алгоритм тривиален, поэтому проиллюстрируем его для случая n=4 и m=1. В этом случае алгоритм осуществляется в 4 шага.

1-й шаг. Каждый генерал посылает всем остальным сообщение, в котором указывает численность своей армии. Лояльные генералы указывают истинное количество, а предатели могут указывать различные числа в разных сообщениях. Генерал-1 указал число 1 (одна тысяча воинов), генерал-2 указал число 2, генерал-3 (предатель) указал трем остальным генералам соответственно x, y, z, а генерал-4 указал 4.

2-й шаг. Каждый формирует свой вектор из имеющейся информации.

Получается:

vect1 (1,2,x,4)

vect2 (1,2,y,4)

vect3 (1,2,3,4)

vect4 (1,2,z,4)

3-ий шаг. Каждый посылает свой вектор всем остальным (генерал-3 посылает опять произвольные значения).

После этого у каждого генерала есть по четыре вектора:

g1 g2 g3 g4
(1,2,x,4) (1,2,x,4) (1,2,x,4) (1,2,x,4)
(1,2,y,4) (1,2,y,4) (1,2,y,4) (1,2,y,4)
(a,b,c,d) (e,f,g,h) (1,2,3,4) (i,j,k,l)
(1,2,z,4) (1,2,z,4) (1,2,z,4) (1,2,z,4)


4-й шаг. Каждый генерал определяет для себя размер каждой армии. Чтобы определить размер i-ой армии, каждый генерал берет три числа — размеры этой армии, пришедшие от всех командиров, кроме командира i-ой армии. Если какое-то значение повторяется среди этих трех чисел как минимум дважды, то оно помещается в результирующий вектор, иначе соответствующий элемент результирующего вектора помечается неизвестным (или нулем и т.п.).

Все лояльные генералы получают один вектор (1,2,f(x,y,z),4), где f(x,y,z) есть число, которое встречается как минимум два раза среди значений (x,y,z), или "неизвестность", если все три числа x,y,z различны. Поскольку значения x,y,z и функция f у всех лояльных генералов одни и те же, то согласие достигнуто.

Результаты исследования задачи

Лампорт доказал, что в системе с m неверно работающими процессорами можно достичь согласия только при наличии 2m+1 верно работающих процессоров (более 2/3).

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

Применение

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Задача византийских генералов" в других словарях:

  • Задача двух генералов — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете …   Википедия

  • Парадокс Белла — Парадокс Белла  один из известных релятивистских парадоксов специальной теории относительности, связанный с невозможностью определения понятия «абсолютно твёрдого тела» в пространстве времени теории относительности. В наиболее известном… …   Википедия

  • Ахиллес и черепаха — У этого термина существуют и другие значения, см. Ахиллес и черепаха (значения). Ахиллес и черепаха  одна из апорий древнегреческого философа Зенона. Содержание 1 Содержание 2 Разрешение апории …   Википедия

  • Дилемма заключённого — Будут ли заключенные друг друга предавать, следуя своим эгоистическим интересам, или будут молчать, тем самым минимизируя общий срок? Дилемма заключённого (англ. Prisoner s dilemma, реже употребляется название «дилемма …   Википедия

  • Китайская комната — Китайская комната  мысленный эксперимент, описанный Джоном Сёрлем, в котором критикуется возможность моделирования человеческого понимания, в частности естественного языка, путем создания «искусственного интеллекта». По сути является… …   Википедия

  • Парадокс Ньюкома — был придуман физиком Уильямом Ньюкомом (внук Саймона Ньюкомба) в 1960 году. Парадокс предполагает мысленный эксперимент, игру с двумя участниками  предсказателем (который может безошибочно предсказывать будущее) и собственно игроком.… …   Википедия

  • Стрела Зенона — Стрела Зенона, или «Летящая стрела»  одна из апорий Зенона Элейского: Летящая стрела неподвижна, так как в каждый момент времени она занимает равное себе положение, то есть покоится; поскольку она покоится в каждый момент времени, то она… …   Википедия

  • Парадокс близнецов — Парадокс близнецов  мысленный эксперимент, при помощи которого пытаются «доказать» противоречивость специальной теории относительности. Согласно СТО, с точки зрения «неподвижных» наблюдателей все процессы у двигающихся объектов замедляются.… …   Википедия

  • Копенгагенская интерпретация —     Квантовая механика …   Википедия

  • Демон Максвелла — Демон Максвелла  мысленный эксперимент 1867 года, а также его главный персонаж  воображаемое разумное существо микроскопического размера, придуманное британским физиком Джеймсом Клерком Максвеллом с целью проиллюстрировать кажущийся… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»