Главная arrow книги arrow Копия Глава 6. Поиск в условиях противодействия arrow Альфа-бета-отсечение
Альфа-бета-отсечение

Если принять допущение, что это может быть сделано2, то окажется, что в алгоритме альфа-бета-отсечения для определения наилучшего хода достаточно исследовать только узлов, а не узлов, как при использовании минимаксного алгоритма. Это означает, что эффективный коэффициент ветвления становится равным, а не Ь; например, для шахмат он равен 6, а не 35. Иными словами, за такое же время альфа-бета-поиск позволяет заглянуть в дерево игры примерно в два раза дальше по сравнению с минимаксным поиском. А если исследование преемников происходит в случайном порядке, а не по принципу первоочередного выбора наилучших вариантов, то при умеренных значениях Ь общее количество исследованных узлов будет составлять примерно. В случае шахмат применение довольно простой функции упорядочения (например, такой, в которой в первую очередь рассматриваются взятия фигур, затем угрозы, затем ходы вперед, а после этого ходы назад) позволяет оставаться в пределах, не превышающих удвоенное значение результата, который может быть получен в наилучшем случае. Добавление динамических схем упорядочения ходов, в частности, таких, в которых в первую очередь проверяются ходы, обозначенные как наилучшие на предыдущем этапе, позволяют подойти совсем близко к этому теоретическому пределу.

Как было отмечено в главе 3, наличие повторяющихся состояний в дереве поиска может вызвать экспоненциальное увеличение стоимости поиска. В играх повторяющиеся состояния встречаются часто из-за возникновения транспозиций — различных перестановок последовательностей ходов, которые оканчиваются в одной и той же позиции. Например, если белые имеют в своем распоряжении ход а1? на который черные могут ответить ходом b1 а также еще один не связанный с ним ход а2 на другой стороне доски, на который может быть дан ответ b2, то обе последовательности,, оканчиваются в одной и той же позиции (как и перестановки, начинающиеся с а2). Поэтому целесообразно сохранять оценку каждой конкретной позиции в хэш-таблице при первом ее возникновении, чтобы не приходилось вычислять ее повторно при последующих возникновениях. По традиции хэш-таблица с ранее встретившимися позициями называется таблицей транспозиций; она по сути идентична списку closed в алгоритме Graph-Search (см. с. 139). Использование таблицы транспозиций может оказать чрезвычайно эффективное воздействие, которое иногда выражается в удваивании достижимой глубины поиска в шахматах. С другой стороны, если существует возможность вычислять оценки со скоростью в несколько миллионов узлов в секунду, то практически нет смысла хранить данные обо всех этих узлах в таблице транспозиций. Для выбора наиболее ценных из этих узлов были опробованы различные стратегии.