Вы задаете довольно сложный вопрос, но хорошо бы вернуться к основам. Есть несколько концепций для рассмотрения:
оценка
Если (настоящему) игроку показывают позицию и спрашивают «кто выигрывает в этой игре?», Как они решают? Скорее всего, они будут проверять несколько основных вещей, таких как: материальные различия, степень, в которой фигуры были разработаны или позиционированы «хорошо», удвоенные / изолированные / соединенные / пройденные пешки, (контролируемые) открытые файлы, как далеко вверх доска пешки.
Теперь, если вам нужно, вы можете придумать систематический способ подсчета баллов позиции на основе вышеизложенного. Например, вы можете решить, что пешка стоит 1 очко, а пройденная пешка - на 0,3 балла больше. Отдельные или сдвоенные пешки могут стоить немного меньше и т. Д. Если вы сложите все, вы получите оценочное значение для ближайшей позиции под рукой.
Это известно как оценка , и в основном все шахматные программы имеют способ оценивать позиции (игнорируя новаторские AI-шахматные движки, которые обычно очень слабы).
Но как насчет тонких, глубоких позиционных ходов?
Ну, мы только немного поцарапали поверхность оценки позиции. Реальная реализация функции оценки может быть упрощенной, чтобы позволить оценивать больше позиций в секунду (хотя и грубым образом), или более сложной, что приведет к меньшему количеству оцениваемых позиций, но с более высокой степенью достоверности. Функция оценки нередко учитывает сотни или даже тысячи отдельных частей информации.
Поиск
Я специально упустил что-то из вышеперечисленного, о чем сразу подумает большинство реальных игроков - есть ли способ немедленно выиграть игру для любой из сторон? Любые товарищи или "висящие" кусочки видны? Хотя это легко можно сделать тривиально, это совсем не тривиально.
Что означает для игрока полное доверие к комбинации? В конце концов, все сводится к тому, чтобы рассчитать все варианты. Реальные игроки, как правило, этого не делают (за исключением тривиальных или очень вынужденных товарищей), большую часть времени мы рассматриваем лишь несколько вариантов и исключаем другие, которые кажутся «неконструктивными» или явно приводят к проигрышу. , Мы часто допускаем ошибки во время этого расчета, например, мы можем понять, что изменение в порядке перемещения заставляет угрозы испаряться и т. Д. Дело в том, что, чтобы быть полностью уверенным в комбинации, вам действительно нужно рассчитать весь путь до ее завершения, предполагая, что каждый игрок сделает только лучший возможный ход, доступный для них (это называется «мин / макс»).
Теперь, учитывая, что у шахмат гораздо больше пространства для поиска (это то, что называется «всеми возможными ходами в будущем»), чем то, что компьютер способен вычислить, нужно идти на компромиссы. Как и люди, компьютеры могут принять решение игнорировать целые линии мышления на основе определенных критериев. Это известно как эвристика . Стоит отметить, что хотя вы можете быть действительно уверены в комбинации, только если ее перебор, сложная функция оценки часто может обнаруживать наличие угроз (например, мы могли бы подсчитывать вилки, возможности шампуров и т. Д., Чтобы вести поиск в этом направлении). ).
В конце концов, хотя компьютеры чрезвычайно быстры, именно эвристика позволяет им так глубоко рассчитывать. Тем не менее, вы можете быть удивлены, насколько глубоко современные движки рассчитывают полностью, как правило, это за 3 хода, даже в быстрых играх.
Заключение / объединение всего этого
Итак, подведем итог: в функции оценки встроен большой интеллект (т. Е. Они учитывают больше вещей, чем ваш обычный человек-игрок), эвристика позволяет компьютеру отбросить мысли, которые, по его мнению, вряд ли удастся завершить, и компьютеры очень, очень быстро. Сложите их, и их довольно сложно победить.