Ханаби — это, пожалуй, моя любимая настолка из тех, что не про отыгрыш ролей. Колода из пятидесяти карт, пять цветов, номиналы от одного до пяти, горстка жетонов — и одно-единственное правило, которое выворачивает всё наизнанку: ты видишь карты всех, кроме себя. Свои карты ты держишь «лицом к столу», так что каждый сосед знает твою руку лучше тебя самого.

Цель у всех общая: выложить пять «фейерверков», по одному на цвет, каждый — цепочкой от единицы до пятёрки по возрастанию. В свой ход можно сделать одно из трёх разрешенных действий: сыграть карту, сбросить карту или дать подсказку. Подсказка стоит жетон (которых вечно не хватает) и устроена скупо — ты указываешь другому игроку на все его карты какого-то одного цвета или одного номинала («вот эти две — синие», «вот эта — тройка», или даже «множество всех твоих красных карт пусто»1), и всё. Для того, чтобы получить жетон подсказки, нужно сбросить карту – однако некоторые карты сбрасывать нельзя, это мгновенно приводит к проигрышу. Поэтому не стоит сбрасывать карты вслепую, нужно что-то знать (или хотя бы подозревать) о своей руке; а главным источником информации как раз и являются эти самые жетоны подсказок. Из этой кооперативной борьбы с дефицитом информации и растёт вся игра.

Интеллектуальный trust fall

Самое красивое в Ханаби — это ощущение, что ты идёшь в темноте, держась за чужие руки. Ты не видишь своих карт и вынужден действовать по косвенным уликам: по тому, что тебе подсказали, но ещё больше по тому, что сделали или не сделали остальные.

И вот здесь возникает то, ради чего в эту игру и стоит играть. Ты часто не можешь знать, почему сосед сделал именно этот ход. Он видит то, чего не видишь ты, — например, всю твою руку, — и его решение может опираться на информацию, которая тебе недоступна. Тебе остаётся только поверить, что он поступил так по какой-то хорошей причине. Не потому что он дурак, а потому что с его точки зрения это лучший ход, и однажды ты поймёшь, почему именно2.

Это интеллектуальный trust fall: ты падаешь спиной назад и веришь, что тебя поймают. И когда это срабатывает — когда ты наконец разворачиваешься лицом к своим картам, а там ровно то, на что намекала цепочка чужих ходов, — это отдельный, ни на что не похожий опыт.

Контрабанда знания в шляпах

Обычно занятные математические факты про игру лежат где-то отдельно от практической игры за столом: приятно знать, но на партию не влияет. А иногда бывает и хуже: знание оптимальной стратегии способно удовольствие от игры прикончить. Крестики-нолики схлопываются в вечную ничью ровно в тот момент, когда оба игрока выучили, как не проигрывать, — и играть становится буквально не во что. Сломанные комбо-билды в D&D правилами не запрещены, но тихо банятся джентльменским соглашением за столом: все понимают, что некромант с трёхзначным поголовьем подконтрольных скелетов-лучников технически легален, но портит вечер, — и договариваются так не делать. Оптимум и веселье, вообще говоря, дружат редко.

Про Ханаби такие оптимальные стратегии тоже известны3, и некоторые из них стоит рассмотреть. Существуют они в ситуации, когда все места за столом занимают не люди, а боты, играющие по строгому алгоритму, и держатся на одной общей идее — назовём её информационной контрабандой. Вместо того чтобы пользоваться подсказками по духу правил, боты смотрят на подсказку как на голый канал связи: чтобы что-то передать, отправитель шифрует сообщение под легальный формат подсказки, а все остальные, зная общую конвенцию, его расшифровывают. Фокус в том, что одна-единственная легальная подсказка несёт при этом полезную нагрузку сразу всем за столом, а не только тому, к кому формально обращаются.

Стратегии две. Первая, hat recommendation strategy, рекомендует каждому игроку, какую карту сыграть или сбросить. Вторая, hat information strategy, устроена мощнее: с помощью теории вероятностей и оптимального кодирования она сообщает игрокам, чем на самом деле являются их карты4, и делает это до того эффективно, что уже за считанные подсказки — пять, а то и меньше — каждый за столом знает свою руку целиком5.

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

Но как вообще получается спрятать сообщение внутри «вот эти две карты синие», и при чём тут шляпы? Чтобы это понять, нам придётся ненадолго отвлечься на гномиков в разноцветных колпаках.

Гномики в разноцветных колпаках

Есть замечательный поджанр математических головоломок — задачи про общее знание, и самая известная из них про шапки.

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

Казалось бы, каждый угадывает свой колпак с вероятностью 1/2, и больше двух-трёх правильных ответов не выжать. Но есть стратегия, которая гарантирует четыре угадывания из пяти. Первый игрок называет не свой колпак, а чётность: говорит «синий», если синих колпаков на остальных четырёх головах нечётное число, и «красный» иначе. Он приносит себя в жертву — угадает свой колпак лишь случайно, с вероятностью 1/2. Зато теперь каждый из оставшихся, зная объявленную чётность и видя чужие колпаки, вычисляет свой цвет однозначно, простым вычитанием.

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

В более общем случае это называется «контрольной суммой» или «контрольной цифрой» и используется в куче разных областей, от штрихкодов до протоколов TCP/IP: везде, где было бы полезно замечать и исправлять ошибки передачи информации. Контрольная цифра, если она равна сумме остальных по модулю, позволяет восстановить любой один недостающий символ. В нашей задаче каждый игрок не знает ровно один символ — свой колпак — и именно поэтому одна-единственная объявленная сумма обслуживает сразу всех: каждому не хватает разного кусочка, и контрольная цифра латает любую из этих дыр.

server_hat сложная шутка про шляпы, отказоустойчивость, и информационное шардирование

Суть турбоподсказки

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

Заметим, что у игрока с рукой из четырёх карт без учёта подсказок есть ровно одно из восьми осмысленных действий: [сыграть / сбросить] карту номер [1, 2, 3, 4] (номер карты, во избежание разночтений, давайте считать как расстояние от большого пальца). Это число от 0 до 7. Размер руки в Ханаби бывает разным6 — от трёх до пяти карт, — и число вариантов вместе с ним: с пятью картами это уже десять действий, с тремя — шесть. Дальше я буду вести рассказ для руки из четырёх карт (восемь действий); подставить своё число под свою партию несложно.

Когда я даю подсказку, у меня тоже есть несколько возможностей: я обращаюсь к одному из N соседей и говорю ему что-то про [цвет / номинал], описывая состояние дел относительно одного варианта из пяти. Ёмкости канала хватает даже с запасом.

Теперь давайте представим, что существует некоторая известная всем функция, которая по руке игрока и по тому, что лежит на столе, выбирает Очевидно Правильное Действие и выдаёт это число 0–7. Все игроки знают эту функцию и умеют её применять к любой видимой руке. Можно сказать, что Очевидное Действие – это такой цвет шляпы, известный всем, кроме её хозяина.

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

Так вот, в подходящей для этого ситуации игрок объявляет: «турбоподсказка!» и даёт не нормальную подсказку, а закодированную: такую, чтобы её скрытое число равнялось сумме Очевидно Правильных Действий всех рук, которые видит подсказывающий, по модулю 10. Это и есть контрольная сумма из задачи про колпаки. Каждый сосед смотрит на чужие руки, вычисляет их числа сам, вычитает из только что объявленной суммы — и узнаёт цвет своей шляпы, то есть получает свою личную рекомендацию.

Сразу можно сделать маленькую приятную оптимизацию: «действие» и «номер карты» можно развести по двум независимым каналам, и модуль 10 распадается на два маленьких: два на действие, пять на номер карты. Возможных номиналов - 5, карт в руке - 4; вариантов «сбросить/сыграть» два, и удобнее передавать действие через имя человека, которому предназначена подсказка («левый-vs-правый сосед», например)7. Можно просто складывать по модулю 2 все «сыграть/сбросить» и по модулю 5 все номера карт (номинал «пятёрка» тогда будет соответствовать числу «нуль»).

Почему по модулю 5, если карт в руке у всех обычно 4? Ну, во-первых, количество карт в руке зависит от числа игроков, как я уже упоминал; номинал же всегда от 1 до 5. Во-вторых, бОльший модуль даёт избыточность, что важно. Теперь возможен сценарий, когда кто-то (неправильно) декодирует подсказку, получает «играй карту номер 5», сопоставляет это со своими четырьмя картами в руке и немедленно может понять, что ошибся либо в стратегиях, либо в расчётах.

Оговорки

Как я уже упоминал, использовать турбоподсказку стоит не всегда. Есть ряд ситуаций, где процесс ломается.

Несколько правильных ходов. Весь фокус держится на том, что «Очевидно Правильное Действие» — вещь, которую все игроки понимают одинаково. Но что если у руки есть два одинаково хороших хода? Или, что более вероятно, есть несколько одинаково «посредственных» ходов: скажем, можно сбросить любую из нескольких ненужных карт. Тогда алгоритму нужно доопределить, какой из них «правильный». Автор изначальной статьи аккуратно расписывает приоритеты (играть пятёрку раньше, «сыграть» важнее, чем «сбросить», и так далее), и это можно усложнять под свою группу сколько угодно.

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

Как с этим быть? В первой статье алгоритм просто ест эту ошибку: там явно написано «если кто-то уже ходил до тебя, но использовано меньше двух жетонов ошибки, то ходи картой; иначе пытайся сделать что-то другое». Во второй статье эту проблему чинят не через более сложные соглашения, а через то, что все игроки постоянно оценивают исход партии в симуляции, и в сложных ситуациях, сравнив матожидания, могут выбрать не давать рискованную подсказку или не класть на стол подозрительную карту.

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

Человеческий фактор. Ещё раз повторю, что корректная работа турбоподсказки требует того, чтобы все игроки согласились по поводу стратегии для всех других игроков. Если эти выбранные стратегии не сойдутся, код расшифруется неправильно. Стоит напарнику посчитать «очевидное» иначе — и контрольная сумма будет указывать не туда. Человек, дающий турбоподсказку, должен аккуратно взвесить публичную информацию, состояние игры, смекалистость своей группы.

Например, «очевидный ход» может (случайно или намеренно) включать в себя цепочку рассуждений навроде «у Алисы две одинаково играбельные карты, но если она сходит желтой четвёркой, то следующий после неё Борис сможет сыграть свою жёлтую пятёрку». Есть большой риск, что Алиса и Борис не расшифруют сообщение правильно8. С другой стороны, когда до них дойдёт ход, состояние игры может измениться настолько, чтобы дать беднягам все недостающие кусочки головоломки (за счёт наблюдения за другими игроками, за счёт новых карт на столе, или даже из-за прямых классических подсказок).

Ханаби NP-трудна

Когда пишут, что нечто есть NP-hard или NP-complete, то это по сути значит, что эту задачу нельзя решить алгоритмически ничем принципиально быстрее, чем полным перебором вариантов (быстрый способ мгновенно решил бы и тысячи других знаменитых задач — а его никто не нашёл). То есть эта задача является очень тяжелой в некотором строгом математическом смысле (или можно сказать более оптимистично: «тут открыт простор для творчества и оригинальных решений для каждого конкретного случая!»).

Есть статья с замечательным названием «Hanabi is NP-hard, even for cheaters who look at their cards». Авторы делают радикальный ход: выбрасывают всю скрытую информацию. Пусть игрок видит свои карты, пусть даже знает, в каком порядке оставшиеся в колоде карты лежат рубашкой вверх, пусть это вообще пасьянс для одного — всё равно задача «запланировать, что выкладывать на стол, что сбрасывать, а что придержать в руке, чтобы собрать 25» остаётся вычислительно трудной.

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

А между пространством нормальной игры и болотом безвыходных конфигураций существует тоненькая, но очень мстительная прослойка промежуточных ситуаций. Там, где выиграть скорее всего можно, но это требует очень длинных и сложных рассуждений.

На поверхности Ханаби выглядит как игра про скрытую информацию и теорию разума, и во многом это действительно так. Но чуть глубже находятся злючие рифы комбинаторной задачи о расписании, которая NP-трудна даже с открытыми картами. Описанная выше коллизия синих троек — это крошечный и наглядный экземпляр этой трудности.

Турбоподсказки на практике

hanabi_evidence таблица сложения по модулю 4 и другие магико-оккультные аттрибуты турбоподсказки

Мне довелось однажды испытать эту стратегию в реальности, во время почти безнадёжного момента в партии из трёх человек (то есть: я, Рома, Наталья). Каждый держал по четыре карты. Дотошный читатель спросит меня: почему по четыре карты, ведь по правилам три игрока должны получить по пять карт? Дело в том, что всё это происходило в три часа ночи, и поэтому этот аспект правил как-то укрылся от нашего внимания.

hanabi_party

Расклад изображён на картинке. Сыграть прямо сейчас можно жёлтую 2, белую 2, красную 3, синюю 4 или зелёную 5. Своих карт я, понятно, не видел, зато видел чужие. У Натальи: белая 5, жёлтая 3, синяя 1, синяя 4. У Ромы: белая 4, жёлтая 3, жёлтая 4, жёлтая 1.

Какого хода я от них хочу? У Натальи ровно одна карта, которую можно положить на стол, — синяя 4, синяя стопка как раз её ждёт; в руке она лежит четвёртой. У Ромы играть нечего совсем, зато есть безопасный сброс: жёлтая единица уже сыграна, так что его жёлтая 1 — мёртвая карта, не жалко, и тоже четвёртая. Остальные карты лучше не сбрасывать, они ещё могут пригодиться.

Спрашиваю Наталью: «согласна ли ты с тем, что у Ромы есть ровно один очевидный ход?». Она согласна. Спрашиваю Рому: «согласен ли ты с тем, что у Натальи есть ровно один очевидный ход?». Он согласен. Жетон подсказки остался лишь один, и если использовать его на развеивание невежества только одного игрока, то ход второго, скорее всего, приведёт ко краху партии. Ну что ж, настало время полчаса объяснять неподготовленным людям, как складывать по модулю и пользоваться математически закодированными подсказками. Было нелегко, но всё же получилось!

Кодирую. Действие — через того, к кому обращаюсь: Наталья играет, Рома сбрасывает, «сыграть плюс сбросить», нечётная сумма — «сыграть», и этот бит я передаю тем, что адресую подсказку Наталье. Номер карты — через названный номинал: у обоих карта четвёртая, 4 + 4 = 8, а считаем мы по модулю четыре (столько карт в руке; в тот момент я ещё не осознал преимущества модуля пять), где четвёрка равна нулю, так что 8 ≡ 0 — и это тот самый номинал «четыре».

Говорю: «Наталья, эта карта — четвёрка», показывая на её синюю 4.

И дальше происходит маленькое чудо. Наталья смотрит на Ромину руку, видит, что его очевидный ход — сбросить четвёртую карту, вычитает это из моего сообщения и понимает: играть, четвёртой. Рома смотрит на Натальину руку, видит её очевидную синюю четвёрку, вычитает — и понимает: сбрасывать, четвёртой (это действие, к слову, вернёт в бак одну подсказку – ура, живём дальше). Одна фраза, один жетон — и оба знают, что делать, а я не произнёс вслух ничего, кроме формально-легального «у тебя тут четвёрка».

Тут легко запутаться на ровном месте: кажется, будто Наталья играет четвёрку, потому что ей назвали четыре. Это совпадение — номинал, номер позиции и то, что её карта и вправду синяя 4, сошлись на числе «четыре» по чистой случайности. Расшифровка идёт не по смыслу подсказки, а по спрятанной в ней арифметике; назови я тот же самый код цветом или ткни в несколько карт того же номинала (если у Натальи было бы несколько четвёрок) — сообщение осталось бы тем же.

Оба игрока ходят правильно: таким вот образом я «выиграл» два хода по цене одного. Однако, пока я всё это объяснял, я забыл, какая из моих карт пятёрка! В результате одну из этих двух выигранных подсказок пришлось сжечь, чтобы не дать мне напортачить.

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

Дух игры

Турбоподсказка не спорит с духом Ханаби, а выражает его в чистом виде. Вся игра была про доверие вслепую, про общее знание, про согласованную без слов стратегию. А контрольная сумма — это буквально механизм, в котором каждый закрывает свою неизвестность, вычитая из общего сигнала то, что описывается общим консенсусом.

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

PS: легализация, почему бы и нет?

Кто-то может выдвинуть резонное возражение: всё это звучит складно, но это уже какая-то другая игра. Я не буду с этим спорить, но замечу, что на мой взгляд эта новая игра получается ничуть не хуже изначальной.

Можно даже оформить это как модификацию изначальной игры, явно введя «жетон турбоподсказки». Потратив его, игрок получает право не шифровать сообщение под легальный формат подсказки, а сказать вслух прямым текстом: «зелёный сыграть на четвёртой карте», «красный сброс на вторую». Ёмкость канала не меняется (или даже падает), но мучительное кодирование исчезает (а складывание чужих стратегий по модулю остаётся). Раньше турбоподсказка держалась на двух ограничителях: на существовании «очевидного хода» и на когнитивном бюджете живых людей; теперь у неё появляется дополнительный рычаг контроля через дефицит жетонов. А жетоны — это обычный игровой ресурс, который легко крутить для баланса.

PPS: вызов от Deepmind

Помните мысль про то, что игроки должны быть согласны по поводу хода всех других игроков и если стратегии не сойдутся, код расшифруется неправильно? Это на самом деле фундаментальная трудность, которую человечество ещё не разрешило.

История такая: в 2019 году вышла статья с гордым названием «The Hanabi Challenge: A New Frontier for AI Research» — её сделали в DeepMind, на волне побед над шахматами, го и StarCraft. Логика такая: игры с конкуренцией и полной информацией ИИ уже разгрыз, пора браться за кооперацию при скрытой информации и скудной связи. Быстро выяснилось, что в режиме self-play (когда все места за столом занимает одна и та же программа, заранее сыгравшаяся сама с собой – это в целом стандартная методика обучения нейронок) задача решается тривиально (той же самой информационной контрабандой).

А вот обучение модели для игры в режиме ad-hoc (программа садится играть с незнакомыми напарниками, чьих договорённостей ты не знаешь) — остаётся по-настоящему трудной и открытой задачей9. Именно она требует «теории разума»: смотреть на чужой ход и достраивать, почему человек так поступил.

  1. Вокруг законности «пустых» подсказок есть отдельный холивар, потому что английские правила базовой коробки на этот счёт молчат. В бумажных правилах русской версии «у тебя нет белых карт» приводится как один из примеров подсказки, поэтому я буду считать, что так подсказывать разрешено, и мне даже не стыдно. 

  2. иногда, правда, получается, что действительно кто-то по какой-то причине сглупил (или просто игроки не уследили за тем, что жетоны подсказок закончились). Это бывает весело обсудить после конца партии, это очень сплачивает участников. 

  3. C. Cox, J. De Silva, P. Deorsey, F. Kenter, T. Retter, J. Tobin. «How to Make the Perfect Fireworks Display: Two Strategies for Hanabi» и продолжающая её B. Bouzy. «Playing Hanabi Near-Optimally», 2017. Вторая статья доводит долю идеальных партий до ~92% для пяти игроков. 

  4. Идея вкратце: у каждого игрока про каждую его карту есть распределение вероятностей по 25 возможным картам, построенное только на публичной информации (то есть по подсказкам и сбросу, но не по чужим картам). Из числа неизвестных карт выбираем одну с наибольшей вероятностью оказаться играбельной прямо сейчас; подсказка сообщает уже про неё (канала обычно не хватает для того, чтобы передать сразу номинал + цвет, поэтому подсказка кодирует утверждение в духе «карта номер 2 у тебя в руке является либо зелёной пятёркой, либо красной единицей, либо красной двойкой»). Каждый вычитает то, что «сказал бы» подсказывающий остальным, и достаёт послание себе. За четыре с небольшим жетона каждый за столом получает полную информацию обо всех своих картах — и взорванный мозг. 

  5. Насколько мощна эта стратегия, можно понять по прелестной детали в реализации алгоритма. Когда все всё знают, подсказки почти не тратятся, жетоны копятся до потолка 8/8 — а при полном запасе жетонов сбрасывать нельзя. Значит, чтобы получить право сбросить карту и копнуть колоду дальше, приходится сперва потратить жетон на подсказку, которая никому ничего нового не сообщает. В hat information strategy явно прописаны условия, при которых игрокам нужно давать подсказки вхолостую. Всё это для того, чтобы обойти ограничение правил Ханаби, которое в нормальной игре обычно не всплывает вообще ни разу. 

  6. Правила говорят, по сколько карт нужно раздавать в начале: по 5 карт, если вас двое-трое, и по 4 карты, если вас четверо-пятеро. Мне однажды довелось сыграть замечательную партию из 7 человек, где всем раздали по 3 карты, вышло отлично. 

  7. здесь мы обращаемся с каналом довольно расточительно, сведя выбор соседа к двум вариантам. Было бы эффективнее связать вместе «сбросить/сыграть» и «подсказка про номинал/цвет» и в качестве подсказки говорить либо что-то типа «эти карты тройки» или что-то типа «эти карты красные» (а выбор соседа тогда может нести дополнительную закодированную информацию или просто помогать подсказке быть полезной в классическом смысле). Но на практике второй тип подсказки требует от всех игроков одинаково помнить соответствие между цветами и числами от 0 до 4 – очень опасное требование от человека, который и без этого считает в уме две суммы! 

  8. Алиса согласна по поводу ходов остальных игроков, но она не знает свои карты, поэтому ей кажется, что у Бориса нет возможности сходить своей пятёркой. Борис не видит причины, по которой Алиса должна сходить именно жёлтой четвёркой, а не другой картой. К слову, здесь мог бы и пригодиться дополнительный канал «человек, которому я даю подсказку», чтобы намекнуть Алисе о том, что ей будет трудно декодировать свой ход. 

  9. Чтобы не быть голословным: есть, например, две свежих статьи 2022 года: “Human-AI Coordination via Human-Regularized Search and Learning”, Hu et al 2022 и “Is Vanilla Policy Gradient Overlooked? Analyzing Deep Reinforcement Learning for Hanabi”, Grooten et al 2022.