Нейросеть для нард: как движок выбирает ход и где ошибаются люди
Разработчики онлайн-платформы для длинных и коротких нард собрали статистику по 170 тысячам ходов из более чем 6 тысяч партий. На основе этих данных они проанализировали, как нейросетевой движок оценивает позиции и какие ошибки чаще всего допускают игроки. Оказалось, что правила длинных нард создают нетривиальные задачи для алгоритма, а часть выводов стала неожиданной для самих создателей.
За полгода работы платформы для длинных и коротких нард с нейросетевым движком накопилось 170 тысяч ходов с реальным выбором игроков. В выборку попали 6 383 партии, сыгранные 938 уникальными пользователями. Движок разбирает каждую партию ход за ходом, оценивая позиции и сравнивая их с тем, что выбрал человек. Цель — понять, как нейросеть принимает решения и в каких ситуациях люди чаще всего отклоняются от оптимальной игры. По ходу разбора авторы приводят четыре задачи из реальных партий: читателю предлагается сначала решить их самостоятельно и лишь потом сверить свой выбор с оценкой движка — так интереснее сравнить себя с выборкой.
В основе движка лежит стандартный для игр этого жанра подход, восходящий к TD-Gammon Джеральда Тезауро начала 1990-х. Тогда программа, обучившаяся на партиях с самой собой, вышла на уровень сильных игроков в бэкгаммон, и с тех пор нейросетевая оценка позиции стала отраслевым стандартом — от GNU Backgammon до eXtreme Gammon. Схема выбора хода у всех похожа: для текущей позиции и выпавших костей перебираются все допустимые ходы, для каждого строится итоговая позиция, и нейросеть оценивает каждую из них с точки зрения соперника, после чего знак оценки меняется. Движок сравнивает не последовательности шагов, а именно конечные расстановки. Это важно, потому что одна и та же позиция может быть достигнута разными путями, и генератор схлопывает такие варианты, чтобы не дублировать оценку. Например, при броске 4-1 можно сходить 24→20→19 или 24→23→19, и шашка окажется в одном и том же месте — для оценки это один вариант. На дублях это особенно критично: четыре шага одного числа порождают множество перестановок с одинаковым итогом, и без схлопывания генератор многократно оценивал бы одно и то же. Функция оценки получает расстановку шашек и возвращает ожидаемый результат партии; позицию после своего хода программа смотрит глазами соперника, ведь ходить теперь ему. В сильных программах эту функцию реализует нейросеть, и об устройстве конкретного движка разработчики обещают рассказать отдельно.
Правила длинных нард, в отличие от коротких (бэкгаммона), не предусматривают битья шашек и бара. Это накладывает отпечаток на генерацию ходов. Одна шашка закрывает пункт, и вставать на занятый пункт соперника нельзя. Позиция никогда не откатывается: неудачную расстановку нельзя исправить ударом, она остаётся с игроком надолго, поэтому главное оружие здесь — блокировка, а главный ресурс — темп. Голова — все 15 шашек стартуют на одном пункте, и за ход с него можно снять только одну шашку. В коде это превращается в счётчик снятий, который легко забыть, и тогда генератор выдаст абсурдные, хотя формально легальные ходы. Исключение для первого броска: второй игрок при дублях 3-3, 4-4 или 6-6 снимает две шашки с головы. Это связано с тем, что при таких бросках одна шашка упирается в голову соперника на 12-м пункте, и вторая шашка доигрывает остаток. Для 3-3 единственный правильный ход — 24→21→18→15 и 24→21, вариант с двумя шашками на 18-й противоречит смыслу исключения, и движок такой ход не строит. При 6-6 каждая шашка проходит только одну шестёрку — 24→18, дальше 12-й, и две шестёрки из четырёх пропадают. Для контраста 5-5: исключения нет, и оно не нужно — одна шашка проходит 24→19→14→9→4, перешагивая через голову белых, потому что пункт закрыт только для остановки. Отдельно стоит право первого хода: оно разыгрывается одной костью у каждого игрока, и выигравший ходит этими двумя разными числами, так что дубля на первом ходу у первого игрока не бывает, и исключение касается только второго.
Запрет глухого забора требует проверять каждый промежуточный шаг хода, а не только итоговую позицию. Нельзя построить блок из шести шашек, который запирает все пятнадцать шашек соперника, если ни одна из них не прошла вперёд. При этом запрет действует даже в течение одного хода: нельзя поставить шестую шашку и тем же ходом уйти с другого пункта блока. Это усложняет генератор, поскольку ход, заканчивающийся законно, может быть запрещён из-за способа его исполнения. Обязанность сыграть максимум: если можно сыграть обе кости, играются обе; если только одну — большую; при дубле играется столько, сколько возможно. Эти правила создают множество нюансов, которые алгоритм должен учитывать на каждом шаге, и именно они отличают длинные нарды от бэкгаммона, где битьё и бар радикально меняют структуру дерева ходов.
Собранная статистика позволила выявить, где люди чаще всего ошибаются. Часть выводов совпала с ожиданиями разработчиков, часть оказалась неожиданной. Например, игроки недооценивают важность темпа и блокировки, пытаясь сохранить гибкость там, где нужно строить забор. Также часты ошибки при снятии с головы, особенно в дебюте, когда кажется, что можно снять две шашки, но правило запрещает. Нейросеть же, обученная на миллионах партий, выбирает ходы, которые максимизируют ожидаемый результат, и часто её выбор неочевиден для человека. В статье приводятся четыре задачи из реальных партий, которые читателю предлагается решить самостоятельно, чтобы сравнить себя с выборкой.
Для российского рынка онлайн-нард это первый пример масштабного анализа с использованием нейросетевого движка. Платформа не только предоставляет возможность играть, но и служит исследовательским инструментом. Полученные данные могут быть использованы для обучения новых игроков, создания тренажёров и улучшения самого движка. В отличие от существующих программ, таких как GNU Backgammon или eXtreme Gammon, которые ориентированы в первую очередь на бэкгаммон, здесь акцент сделан на длинные нарды с их специфическими правилами. Это открывает нишу для специализированных решений, учитывающих российские стандарты, утверждённые приказом Минспорта № 347 от 30.04.2025. Пока что подобных датасетов по длинным нардам на рынке практически нет, и собранные 170 тысяч ходов — редкий по объёму материал для поведенческой аналитики в игровом ИИ.
В дальнейшем разработчики планируют рассказать об устройстве самого движка и о том, как нейросеть обучалась. Открытым остаётся вопрос, насколько хорошо модель обобщает на другие варианты нард и можно ли её использовать для анализа партий профессиональных игроков. Также интересно, как будут меняться ошибки людей по мере роста их квалификации и использования подсказок движка. Пока же собранные 170 тысяч ходов — это ценный датасет, который может лечь в основу новых исследований в области игрового ИИ и поведенческой аналитики.