Комментарии 21
О двух генералах: если первый составит сообщение так:
Я однозначно выступаю, но если ты не поддержишь меня, я буду разбит. Подтверди, что поддержишь.
и второй напишет:
Поддерживаю, и я выступаю
и первый получит ответ второго, то проблема коммуникации решена. Но ценой некоторого теоретического риска для жизни или репутации первого... Но это же генералы, им не привыкать...
Конкретно в условиях задачи они могут воспользоваться дополнительным выскоэнтропийным каналом (т.е. с очень низкой скоростью/объемами передачи), чтобы с помощью одного бита установить общее знание. И тогда достаточно одного письма: например, “я выступаю на рассвете, если понял, подними три высоких больших флага красного цвета, и я подниму пять зелёных флагов в ответ”.
В компьтерных сетях таким “флагом” является механизм доверия - т.е. мы все знаем и все доверяем ЛетсЭнкрипт (получили информацию из СМИ/учебников и т.п.) - и потому генеральских проблем у нас нет.
ИМХО, достаточно отправить подтверждение другим каналом связи: "Если получил это сообщение и готов поддержать - подними флаг / разожги костёр / три зелёных свистка вверх / ..."
В задаче есть важный момент, на который в статье не было акцентировано внимание: каналы связи ненадёжны. В частности, посыльного, отправляемого другому генералу, могут легко перехватить вражеские войска (сообщение не дойдёт и пославший его генерал не узнает, что оно не дошло, а адресант – что сообщение вообще было). Вероятность этого не указана и установить её генералам трудно (можно принять за "50 на 50", хуже не будет) но очевидно, что если генерал 1 отправит ваше предлагаемое сообщение и пойдёт в атаку, а посыльного перехватят, то он и его армия будут разбиты, в то время как второй будет стоять и ждать в неведении. В этом проблема коммуникации, а не в нерешительности или нежелании принять "некоторый риск".
Для получения какой-никакой надёжности в успехе надо либо много сообщений (например, обменяться несколькими итерациями "обобщения знания" чтобы убедиться что канал связи более-менее работоспособен, затем послать сразу 20 гонцов с последним предупреждением с расчётом что хотя бы один точно дойдёт – всё равно нет гарантии, но шанс относительно высокий), либо альтернативные, надёжные каналы связи (такие как "поднять флаг(и) определённого цвета").
...и немного практической логики:
О трех логиках в баре:
Если все трое промолчат некоторое время, т.е. будут в неопределенности, и одновременно это поймут, то один, двое или все трое хором могут ответить "да".
Иначе почему первый отвечает, что он не знает? Возможно, он поспешил, не успев услышать возможного ответа "нет, я буду виски" от одного или двоих? А если он поспешил, то ответ, что он не знает, верен в моменте, но не верен в принципе, исходя из ситуации (нужно было немного подождать...)
Конечно, здесь возникает практический же вопрос: сколько ждать? Практический ответ на него: столько, сколько обычно проходит времени, когда на любой заданный барменом вопрос следует ответ... (предполагаем, что не отвечать на вопросы бармена крайне невежливо, и такого никогда не бывает).
Всё же, тот факт что модальную логику назвали особым образом никак не даёт нам права более вольно обращаться с логическими высказываниям.
Выводы можно делать только из того, что высказано в условии задачи. Времени в условии не было. Да и вообще, за логикой физического изменения это к Зиновьеву.
почему первый отвечает, что он не знает? Возможно, он поспешил, не успев услышать возможного ответа “нет, я буду виски” от одного или двоих?
Потому что первый - это тот, кто ответил первым, очевидно же. Люди не могут отвечать синхронно, поэтому всегда один будет первым, другой - вторым и так далее.
Три физика заходят в «Бар логики».
Официант: Вы все хотите пива?
Первый физик: Да!
Второй физик: Да!
Третий физик: Да!
Это всё, что вам нужно знать об отличии физика от логика…
Не совсем правильно. Физик ответит : “Думаю - да!” Т.е. выдвинет гипотизу и дождётся подтверждения/опровержения. Хотя да, из “Бара логики” вышибалы за такое всё равно выбросят. Я думаю.
Какая тонкая шутка ;)
А вот Гегель говорил: "известное не есть от того познанное".
"До Штирлица не дошло сообщение из Центра. Он перечитал сообщение ещё два раза, но до него всё равно не дошло." (с)
В принципе, частичное решение есть - пакетный пинг, где каждое сообщение пакета несёт информацию о том, сколько всего сообщений в пакете отправлено. Тогда получатель (если получает хотя бы одно сообщение из пакета) сразу имеет и статистику пропускания канала, и может оценить, какого размера пакет отправить обратно для заданной вероятности согласования.
Вы поняли шутку?
Поскольку первый логик ответил: «Я не знаю», он, очевидно, сам хотел пива, но не знал, хотят ли его все остальные.
Ключевое слово «очевидно». Если дело было в английском баре, то надо было бы написать «хайли лайкли»
То бишь, «очевидно» совсем другое. Рассуждаем по логике: «Элементарно, Ватсон!». Три знакомых студента, с кафедры логики математического факультета Кембриджа, ну или Оксфорда (какая разница!) спустились на минус первый этаж Университета, в университетский бар слабоалкогольных напитков. Можно было бы подумать, что это бар невинных прохладительных напитков и минералки, но официант, всё «спалил» своим вопросом про пиво.
Ребята, все друг друга знают, но хотят ли другие пива - не знают! Ну, прям, детский сад! «Хочешь пирожок? – Нет! – Почему? – Не знаю!»
А как такое может быть? Первый предлагает другим: «Давай сходим в университетский бар!». А про себя думает, я хочу только солённых бубликов и минералки. Второй отвечает: «Классная идея!» и полагает, что будет повод выпить кумыса, он тоже хорошо «вставляет», как пиво. Третий отвечает: «Поехали!» И надеется «макнуть» пива с водочкой, благо, в рюкзаке у него фляга с разбавленным спиртом (просто спросил как-то раз у подруги, что будем пить? Водку и спирт? Она ответила: «Ой! Даже не знаю! Всё такое вкусное!»).
Короче, если рассматривать подобного «сферического коня в вакууме», то ваша идея, насчет «хайли лайкли» – вполне рабочая. Иначе, остаётся предположить, что один предложил пойти, утолить жажду пивом, а все остальные согласились. Но, тогда бы не было задачи. Ибо первый бы ответил официанту «да» и все получили бы всё, что хотели без лишнего словоблудия.
В конце концов, несмотря на все наши сообщения, мы оба поступили логично: отказались от идеи поменяться и просто забрали каждый того ребенка, которого обычно забирали, из его обычной школы.
Какой Вы сложный.
Давай поменяемся, Лады?
Лады!
Всё. Нахрена вам эти супер точные подтверждения? Намерение есть и оно очевидно для обеих сторон.
а вдруг "Лады!" от второго не дойдет до первого?
Невдруг. Во-первых, есть две галочки в месенджерах.
Во-вторых, можно отправить сообщение повторно, если не получен ответ за разумное время.
На всякий случай, мы тут говорим не про реальный случай - в обычной жизни, действительно вы правы, все решается очень просто "двумя галочками" в мессенджере. Мы говорим, про чисто теоретическую математическую возможность.
Итак, чисто в теории, две галочки могут означать, что он открыл сообщение, но вдруг он открыл, но забыл прочитать. Тогда первый человек, строго говоря, даже с двумя галочками не может быть уверен, прочтено ли сообщение.
Повторное сообщение, тоже не решает проблему. Даже миллиард сообщений, чисто теоретически могут не дойти.
"Я знаю, что ничего не знаю".
Не всегда в жизни работает чётка логика, она очень быстро приходит к тому, что написано чуть выше.
В сетях, при передачи данных однократную ошибку ещё учитывают, а вот двукратную (порчу сразу двух битов) считают настолько маловероятной, что ей пренебрегают. Хотя чисто формально это возможно. И ничего, все пользуются интернетом и никто не жужжит.
Ваши рассуждения любопытны, но не более. В жизни бесполезны.
Рассмотрим современную вариацию задачи о двух генералах, с которой мне самому довелось столкнуться.
На всякий случай, мы тут говорим не про реальный случай
Что-то Вы меня совсем запутали. А как ещё надо интерпретировать фразу "довелось столкнуться"?

Проблема общего знания: введение