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

Сейчас я объясню, почему невозможно доставить сообщение получателю с абсолютной гарантией получения. Описанную ниже проблему называют "задачей двух генералов".

Две армии, которыми руководят два генерала, приготовились штурмовать город. Армии расположены так, что единственная связь между ними - путём отправки гонца с письмом. Вокруг полно вражеских патрулей, поэтому гонца могут перехватить и он не доберётся до получателя. Штурм должны начать обе армии одновременно, иначе операция обречена на провал. Оба генерала собираются штурмовать город, но время штурма ещё не согласовано.

Проблема заключается в том, чтобы надёжно обменяться сообщениями о "времени Ч" с целью утвердить время начала штурма.

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

Однако, теперь Б не знает, получил ли А подтверждение о том, что Б получил первое послание, ведь гонца могли поймать враги. Поэтому, как только гонец от Б к А доставит подтверждение, А должен теперь отослать ещё одного гонца к Б, который сообщил бы, что письмо с подтверждением от Б к А получено. Казалось бы, этого достаточно, но нет! Теперь А, отослав гонца с сообщением о подтверждении о получении сообщения, полученного от Б, должен как-то удостовериться, что гонец этот добрался до Б.Следовательно, Б теперь должен отправить очередного гонца к А.

Эту цепочку можно продолжать как угодно долго. На каждом этапе либо генерал А, либо Б не уверены в том, что адресат получил подтверждение, поэтому гонцами придётся обмениваться вечно. Это означает, что не существует надёжного способа передать сообщение от А к Б.

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


Средняя оценка: 3.8 (36 голосов)