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

Для преодоления проблем, связанных со "стандартным подходом", кратко описанных в разделе 6.7, было предпринято несколько попыток. По-видимому, первым избирательным алгоритмом поиска, в котором учитывались некоторые теоретические обоснования методов сокращения поиска, был В* [105], в котором предпринята попытка устанавливать интервальные пределы возможных значений узла в дереве игры, а не давать единственную точечную оценку. Листовые узлы выбираются для развертывания в целях уточнения пределов верхнего уровня до тех пор, пока не обнаруживается ход, который "безусловно является наилучшим". Палей [1165] развил идею алгоритма В*, используя распределения вероятностей значений вместо интервалов. В алгоритме поиска конспиративного числа (conspiracy number search) Дэвида Маккаллестера [1004] предусмотрено развертывание листовых узлов, которые, изменяя свои значения, могут вынудить программу предпочесть новый ход от корня. В алгоритме MGSS* [1331] используются описанные в главе 16 методы теории решений для оценки стоимости развертывания каждого листа с точки зрения ожидаемого усовершенствования качества решения, формируемого от корня. Этот алгоритм превзошел альфа-бета-алгоритм, применяемый в игре "Отелло", несмотря на то, что в нем проводился поиск среди узлов, количество которых было на порядок меньше. Вообще говоря, подход, принятый в алгоритме MGSS*, может применяться для управления размышлениями в любой форме.

Альфа-бета-поиск во многих отношениях представляет собой аналог поиска на основе метода ветвей и границ, который был превзойден поиском А* в случае с одним агентом, если не считать того, что альфа-бета-поиск рассчитан на двух игроков. Алгоритм SSS* [1466] может рассматриваться как поиск А* для двух игроков; в нем для достижения того же решения никогда не развертывается больше узлов, чем в алгоритме альфа-бета-поиска. В его первоначальной форме алгоритм SSS* предъявлял чрезмерные требования к памяти и характеризовался значительными вычислительными издержками на сопровождение очереди, поэтому был практически не применимым. Тем не менее на основе алгоритма RBFS была разработана версия SSS* с линейно возрастающими потребностями в пространстве [843]. Плат и др. [1214] разработали новый подход к реализации алгоритма SSS* как комбинации альфа-бета-поиска и таблиц транспозиции, показали, как преодолеть недостатки первоначального алгоритма, и создали новый вариант, называемый MTD(f), который нашел свое применение во многих превосходных программах.