О компьютерном обучении шахматам и Го, а также об их взаимосвязи.

Как вам всем, должно быть, известно, компьютерное обучение настольным играм заключается не только в создании программы, способной делать ходы. Гораздо более интересной задачей является создание системы, которая способна самостоятельно анализировать позиции, сравнивать различные продолжения и на основании накопленного опыта улучшать качество принимаемых решений. Шахматы и Го хорошо подходят для изучения такого подхода, поскольку правила обеих игр можно формализовать, а результат партии непосредственно зависит от последовательности принятых решений.

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

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

N = BD

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

Для выбора между вариантами можно использовать принцип minimax. Если обозначить множество допустимых ходов через M(P), а оценку получаемой позиции через V(P), то для игрока, стремящегося увеличить оценку, выбор можно представить как:

V(P) = maxm ∈ M(P) V(Pm)

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

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

Eш = wmM + waA + wkK + wpP + wsS

Здесь M - материальное преимущество, A - активность фигур, K - безопасность королей, P - структура пешек, S - другие позиционные характеристики, а соответствующие w определяют их относительный вес. В настоящих движках такая оценка может вычисляться даже нейронной сетью! (см. NNUE)

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

Eг = wtT + wiI + wgG + wsS

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

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

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

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

В простейшем варианте результат партии можно представить как величину z, принимающую значения -1, 0 или 1. Тогда задача обучения состоит в том, чтобы полученная модель V(P) была как можно ближе к фактическому результату партии:

L = (V(P) - z)2

Величина L показывает ошибку предсказания: чем сильнее прогноз отличается от фактического результата, тем больше значение ошибки. При обучении компьютер изменяет параметры модели таким образом, чтобы средняя ошибка на большом количестве примеров уменьшалась.

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

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

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

23 сентября 2026 года.