Задача двух генералов

Задача двух генералов

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

Содержание

Определение

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

Для успешного штурма генералы должны атаковать город одновременно. Штурм, предпринятый только одной армией, приведет к катастрофическим последствиям для атакующих. Требуется найти алгоритм обмена сообщениями, который бы позволил каждому из генералов сказать:

«Да, мы оба атакуем в указанное время.»

Отметим, что достичь такого соглашения очень просто — достаточно одного сообщения с временем начала штурма и одного сообщения, подтверждающего получение первого. Сложность задачи заключается в невозможности разработать алгоритм гарантированного обмена этими сообщениями.

Иллюстрация проблемы

Предположим, первый генерал отправляет второму сообщение «Атакуем завтра в девять часов утра». Отправив посыльного, первый генерал не знает, добрался ли посыльный до второго генерала. Не зная, поддержит ли второй генерал его действия, первый может отложить штурм. Зная это, второй генерал может отправить подтверждающее сообщение «Я получил Ваше сообщение и атакую завтра в девять часов утра». Но это сообщение также может быть перехвачено противником. Зная, что первый генерал не начнет штурм без подтверждения, второй генерал также может отложить атаку. Первый генерал может отправить сообщение «Я получил Ваше подтверждение о времени начала штурма», но оно также может быть перехвачено. Быстро становится очевидным, что, сколько бы ни было циклов обмена сообщениями, нет способа гарантированно уведомить обоих генералов о том, что их сообщения получены. Таким образом, задача не имеет решения.

Доказательство

Предположим, что есть некоторая последовательность сообщений, доставленных или перехваченных, которая позволяет обоим генералам гарантированно согласовать время начала штурма. В таком случае существует некоторое минимальное подмножество таких сообщений. Рассмотрим последнее сообщение в этой минимальной последовательности. Так же, как и любое другое сообщение, оно может быть перехвачено. Если оно не будет доставлено, то условие согласованности действий не выполнится, и один из генералов (вероятнее всего, получатель) отложит свою атаку. С точки зрения другого генерала, алгоритм обмена будет соблюден, и он начнет штурм в полной уверенности, что будет поддержан. Таким образом, при использовании заведомо правильного алгоритма, создается ситуация, в которой один генерал штурмует город, а другой — нет. Это противоречит нашему допущению о существовании алгоритма решения задачи.

Инженерные подходы

Прагматичный подход к решению задачи предполагает не полное устранение ненадежности канала, а её сведение к допустимому уровню. Например, первый генерал может отправить 100 посыльных, считая, что вероятность перехвата всех чрезвычайно низка, и атаковать без подтверждения. Однако такой способ не обеспечивает строгой гарантии согласованности действий генералов. Также решением может являться использование алгоритма Диффи-Хеллмана.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


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

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

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

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

  • Парадокс Эйнштейна — Парадокс Эйнштейна  Подольского  Розена (ЭПР парадокс)  попытка указания на неполноту квантовой механики с помощью мысленного эксперимента, заключающегося в измерении параметров микрообъекта косвенным образом, не оказывая на этот… …   Википедия

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

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

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

  • Апории Зенона — …   Википедия

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

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


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

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