В одном древнем городе жили мудрецы и их жёны. Каждое утро мудрецы собирались на базаре и обменивались новостями. А поскольку они любили сплетничать, каждый из них знал, у кого из мудрецов жена верная, а у кого — нет. Но про собственных жён мудрецы этого не знали, ибо у них была благоразумная традиция: не обсуждать ни с кем его жену. Поэтому каждый мудрец считал, что уж его-то жена — верная. Если же мудрец каким бы то ни было образом узнавал, что жена ему неверна, он её выгонял из дома в ту же ночь.
Однажды на базар явился чужестранец и во всеуслышание заявил: «Ба! да в этом городе есть неверные жёны!» «Тоже мне новость!» — подумали мудрецы и разошлись по домам. Однако слова чужестранца не остались незамеченными, и через некоторое время все неверные жены были изгнаны. Почему?
Рассмотрим самый простой случай: всего одна жена неверна. Тогда слова чужестранца стали новостью для её мужа, и он выгонит жену в ту же ночь. Пусть теперь неверных жён две. Попробуйте провести рассуждения за каждого из их мужей, опираясь на случай с одной неверной женой.
Начнем со случая, когда неверных жён две — A и B. Поставим себя на место мужа A. Сам он знает ещё лишь об одной неверной жене — B, потому рассуждает следующим образом. «Если бы моя жена была мне верна, то муж B выгнал бы B в первую же ночь, но, придя на базар на следующее утро, я узнаю, что B осталась дома, значит моя жена тоже неверна!». Муж B проводит аналогичные рассуждения, в итоге A и B будут выгнаны во вторую ночь.
Если неверных жён три — A, B и С, — можно снова провести очень похожее рассуждение за мужа A. «Я знаю о двух неверных жёнах — B и C. Если бы моя была мне верна, то мужья B и C выгнали бы их во вторую ночь, но, придя на базар на утро, я узнаю, что и B и C остались дома, значит моя жена неверна!» В итоге на третью ночь A, B и С будут изгнаны. Подобные же рассуждения продолжаются, если неверных жён было больше.
Для пущей формальности докажем при помощи математической индукции, что если неверных жён N, то все они будут изгнаны в N-ю ночь. Случаи N = 1, 2, 3 мы уже разобрали. Докажем переход индукции: пусть мы уже знаем этот факт для некоторого N, а всего неверных жён в городе N + 1. Тогда каждый из мудрецов, чьи жёны им изменяют, знает лишь об N неверных жёнах, поэтому, поскольку их всех не выгнали в N-ю ночь (как произошло бы по предположению индукции), то неверных жён N + 1, и мудрецы поймут, что их жёны им изменяют, и выгонят их в (N + 1)-ю ночь.
Таким образом, каждый мудрец, видя N неверных жён, сразу может сказать, что либо они все будут изгнаны в N-ю ночь (значит его жена ему верна!), либо, если этого не произойдёт, в (N + 1)-ю ночь будет изгнана N + 1 неверная жена.
Эта задача в различных формулировках уже давно стала достоянием математического фольклора. Достаточно сказать, что филдсовский лауреат Теренс Тао дважды публиковал в своём блоге вариант этой задачи, каждый раз вызывая бурные обсуждения.
Основную трудность при решении этой задачи вызывает кажущееся противоречие с повседневной логикой. На первый взгляд, чужестранец не сказал ничего нового мудрецам, все они и так знали, что среди их жён есть неверные. Выходит, ничего не поменялось и жёнам не грозит разоблачение. Даже те, кто сами придумали решение, часто не могут объяснить, где ошибка в этом рассуждении и какую же информацию сообщил путешественник мудрецам.
Давайте снова разберём последовательно несколько случаев. Если неверная жена одна, то всё понятно: новая информация напрямую сообщена её мужу, теперь он знает, что есть неверные жены. Пусть неверных жён больше одной. Ключевыми словами в условии задачи являются «во всеуслышание» — если неверных жён две, то теперь их мужья знают, что все знают, что есть неверные жены. Если неверных жены три, то после заявления все знают, что все знают, что все знают, что есть неверные жены. И так далее до бесконечности, то есть в общем случае после сообщения все знают, что все знают, что все знают, ..., что есть неверные жёны. Если мудрец видит N неверных жён, то сначала он знает только первые N таких утверждений, а после заявления чужестранца ему становятся известны все.
В математической логике для подобных ситуаций есть специальный термин «общепринятое знание» (Common knowledge). Некоторый факт считается общепринятым если 1) он всем известен; 2) всем известно, что он всем известен; 3) всем известно, что всем известно, что он всем известен; и т. д. Вообще, понятие об общепринятом знании является чрезвычайно важным в теории игр с неполной информацией, когда оптимальная стратегия игрока зависит от того, какой информацией обладает соперник. Легко видеть, что «общепринятое знание» является гораздо большим, чем просто знание, известное всем.
Приведем пример из истории, демонстрирующий различие между двумя этими ситуациями. До начала второй мировой войны, в 1937 году, британский ученый Джеральд Тач изобрел дипольные отражатели — средство для создания радиолокационных помех, позволяющее самолетам избегать вражеских радаров. Аналогичное средство было изобретено в Люфтваффе в 1942 году. Обе разработки были секретными и о факте создания вражеской стороной отражателей никому не было известно. Это привело к тому, что вплоть до 1943 года ни одна из сторон не использовала это средство из-за опасений, что, став доступным соперникам, оно станет грозным оружием. Таким образом, знание об отражателях было известным обоим участникам, но не было общепринятым. Как только обе стороны применили средство в воздушных боях, знание о нем стало общепринятым. (Подробнее об этом см в Википедии в статье Chaff (countermeasure).)