6. Улучшение стратегии
К сожалению, машина, действующая по стратегии типа А, будет и слабым и медленным игроком. Она будет играть медленно, так как даже если на оценку одной позиции она затратит одну микросекунду (что очень оптимистично), то для оценки
позиций, которые надо сделать при трехходовом (за каждую сторону) варианте стратегии, ей потребуется более 16 минут на ход, т. е. около 10 часов для «обдумывания» ходов за свою сторону на 40-ходовую партию.
Машина будет малоискусным игроком, потому что она будет просматривать варианты только на три хода вперед. Кроме того, наша стратегия не дает ей возможности выделить спокойные позиции, в которых разумно производить оценку. Машина действует крайне неэкономным способом по такой программе — она считает все варианты ровно на три хода вперед и затем прекращает расчеты (даже если противник под шахом). Хороший шахматист проверяет только несколько избранных вариантов и просчитывает их на разумную глубину. Чемпион мира может рассчитать комбинации на глубину, скажем, 15—20 ходов. Некоторые варианты, данные Алехиным («Мои самые лучшие шахматные партии 1924-1937 гг.»), имеют такую длину. Конечно, на такую глубину исследуется только небольшое количество вариантов. В играх любителей редко проверяются варианты более чем на 6—8 ходов, и то только тогда, когда ходы носят форсированный характер (ответы противника очень ограничены).
Вообще говоря, когда имеется немного угроз и форсированных ходов, большинство исследуемых вариантов имеет глубину один-два хода, и только около полудюжины форсированных вариантов рассчитываются на 4—5 ходов.
С этой точки зрения интересно признание Р. Файна, ведущего американского шахматиста: «Очень многие полагают, что шахматные мастера предусматривают все или почти все, что, играя
на тринадцатом ходу, они предвидят, что этот ход будет им полезен, чтобы сохранить отход королю через двадцать ходов.
Рис. 5.
Некоторые думают, что когда они играют
то делают это для того, чтобы предотвратить ход
при двенадцатом ходе черных, или что все вычислено до того момента, когда ладейная пешка ферзевого фланга станет ферзем на один ход раньше, чем коневая пешка королевского фланга противника. Все это, конечно, чистая фантазия. Лучше всего разобрать основные варианты на пару ходов, но попытаться рассчитать форсированные варианты до конца».
Количество вариантов, отбираемых шахматными мастерами для исследования в различных позициях, было изучено экспериментально де Гроотом. Он показывал различные типовые позиции шахматистам и просил их выбрать лучший ход, проделывая вслух анализ позиции, который они проводят про себя.
Таким способом может быть установлено число и глубина исследуемых вариантов. Рис. 5 показывает результаты одного из таких экспериментов. В этом случае шахматист проверил 16 вариантов, а глубина анализа колебалась от
(один ход черных) до
(пять ходов черных и четыре белых). Всего рассматривалось 44 позиции.
Из этих замечаний следует, что для увеличения скорости и силы игры машина должна:
1) возможно глубже проверять форсированные варианты и оценивать только такие позиции, где установлена некоторая квазистабильность;
2) выбирать варианты для исследования согласно некоторому алгоритму, который позволит машине не расходовать напрасно время на исследование бесперспективных возможностей.
Стратегию с этими двумя усовершенствованиями будем называть стратегией типа В. Нетрудно составить программу, реализующую стратегию такого типа. Сначала определим функцию
которая определяет, стабильна ли в какой-то мере данная позиция (нет фигур под ударом и т. д.).
Грубым приближением такой функции может служить функция
1, если какая-либо фигура атакована фигурой противника меньшей цены, или большее количество фигур атакует
какую-либо фигуру, чем защищает, или король под шахом.
О в противном случае.
Используя эту функцию, можно исследовать варианты до тех пор, пока
не станет равной нулю, продвигаясь, однако, не меньше чем на два хода, и не больше, скажем, чем на 10.
Следующее усовершенствование требует введения функции
чтобы решить, нужно ли в позиции Р исследовать ход М. Важно, чтобы при оценке не выбрасывались ходы, которые выглядят плохими только на первый взгляд, например ход, подставляющий под удар фигуру; часто такие ходы бывают в действительности очень сильными, так как подставленная фигура не может быть взята безнаказанно.
«Всегда давайте шах, возможно это мат» — вот иронический совет, даваемый начинающим, использующий их предрасположение к бесполезным шахам. «Всегда исследуйте шах, он может привести к мату» — разумный совет для любого игрока. Шах придает течению партии форсированный характер. Ответы противника крайне ограничены, например, он никогда не может ответить контратакой. Это означает, что вариант, начинающийся с шаха, легче рассчитать, чем другие. Аналогично взятия фигур и атаки на фигуру, имеющую большую цену, угрозы мата и т. д. ограничивают ответы противника и должны быть исследованы независимо от того, выглядит ход хорошим или нет. Следовательно, функция
должна
давать большую величину для всех форсированных ходов (шахи, взятия и атакующие ходы), для развивающих ходов, среднюю величину для защитных ходов и низкую для других. При исследовании вариантов машина должна подсчитывать функцию
и использовать ее для выбора тех вариантов, которые надо проверить. При продвижении в глубь варианта требования к функции
увеличиваются, что приводит к тому, что исследуется все меньшее число вариантов. Таким образом, машина, начиная с рассмотрения каждого своего хода, рассматривает только форсированные ответы противника и т. д. Такой процесс сильно увеличит эффективность вычислений.
Можно считать, что универсальная вычислительная машина с учетом этих двух дополнений к программе будет играть довольно сильно и со скоростью, сравнимой с человеческой. Нужно отметить, что машина при этом будет иметь следующие преимущества по сравнению с человеком.
1. Огромная скорость выполнения отдельных вычислений.
2. Свобода от ошибок. Единственными ошибками являются те, которые были допущены в программах, тогда как шахматисты постоянно допускают простые и очевидные просмотры.
3. Отсутствие лени. Шахматисту очень легко сделать инстинктивно ход без надлежащего анализа позиции.
4. Отсутствие «нервов». Шахматисты склонны переоценивать свои шансы в «выигрышной» позиции или теряться в «проигрышной».
Эти качества должны в какой-то мере компенсировать отсутствие у машины той гибкости, воображения, логического мышления и возможности обучения, которые присущи человеку. Вообще говоря, человек, составивший программу, может вычислить ход, который машина должна сделать в любой позиции, и, следовательно, в некотором смысле он может играть так же хорошо. В действительности, однако, вычисления могут оказаться практически невыполнимыми, так как потребуют много времени. При правильном способе сравнения, когда машине и автору программы дается равное время на выбор хода, она может сыграть гораздо лучше.