Многое зависит от оценочной функции. Если бы мы
располагали абсолютно точной оценочной
функцией, мы могли бы ограничить поиск
рассмотрением только непосредственных
преемников текущей позиции, фактически исключив
перебор. Но для таких игр, как шахматы, любая
оценочная функция, имеющая практически
приемлемую вычислительную сложность, по
необходимости будет всего лишь эвристической
оценкой. Такая оценка базируется на
"статических" свойствах позиции (например,
на количестве фигур) и в одних позициях работает
надежнее, чем в других. Допустим, например, что мы
имеем именно такую оценочную функцию, основанную
на соотношении материала, и представим себе
позицию, в которой у белых лишний конь. Ясно, что
оценка будет в пользу белых. Здесь все в порядке,
если позиция "спокойная" и черные не
располагают какой-либо сильной угрозой. Но, с
другой стороны, если на следующем ходу черные
могут взять белого ферзя, то такая оценка может
привести к фатальному просмотру из-за своей
неспособности к
.
Еще одно усовершенствование -
.
Существует еще один прием, называемый
он облегчает контроль времени: в момент, когда время истекает, всегда имеется некоторый ход - лучший из всех, найденных к настоящему моменту;
минимаксные оценки, вычисленные во время предыдущей итерации, можно использовать для предварительного упорядочивания позиций в следующей итерации, что помогает альфа-бета алгоритму следовать стратегии "самые сильные ходы - первыми".
Метод последовательного углубления влечет за собой некоторые накладные расходы (из-за повторного поиска в верхней части игрового дерева), но они незначительны по сравнению c суммарными затратами.
Для наших программ, основанных на описанной
выше схеме, существует проблема, известная как
"эффект горизонта"
. Представьте себе шахматную позицию, в которой программе грозит неминуемая потеря коня, однако эту потерю можно отложить, пожертвовав какую-либо менее ценную фигуру, скажем пешку. Эта немедленная жертва сможет отодвинуть потерю коня за пределы доступной глубины поиска (за "горизонт" программы). Не видя грозящей опасности, программа отдаст предпочтение продолжению с жертвой пешки, чтобы избежать быстрой гибели своего коня. В действительности программа потеряет
фигуры - и пешку (без необходимости), и коня. Эффект горизонта можно несколько смягчить за счет углубления поиска вплоть до спокойных позиций.
Существует, однако, более фундаментальное ограничение на возможности минимаксных игровых программ, проистекающее из той ограниченной формы представления знаний, которая в них используется. Это становится особенно заметным при сравнении лучших шахматных программ с шахматными мастерами (людьми). Хорошая программа просматривает миллионы (и даже больше) позиций, прежде чем принимает решение об очередном ходе. Психологические опыты показали, что шахматные мастера, как правило, просматривают десятки (максимум, несколько сотен) позиций. Несмотря на эту явно меньшую производительность, мастера-шахматисты обыгрывают программы без особых усилий. Преимущество их состоит в их знаниях, значительно превосходящих знания шахматных программ. Игры между машинами и сильными шахматистами показали, что огромное превосходство в вычислительной мощности не способно скомпенсировать недостаток знаний.
Знания в минимаксных игровых программах имеют следующие три основные формы:
оценочная функция
эвристики для отсечения ветвей
эвристики для распознавания спокойных позиций