Введение

В компьютерных шахматных программах, эвристика нулевого хода — это эвристический прием, используемый для увеличения скорости алгоритма альфа-бета отсечения.

Обоснование

Альфа-бета-отсечение ускоряет алгоритм минимакса, определяя точки отсечения в дереве игры – позиции, в которых текущая позиция настолько выгодна для стороны, имеющей ход, что оптимальная игра противника позволила бы избежать её. Поскольку такие позиции не могли возникнуть в результате оптимальной игры, они и все ветви игрового дерева, исходящие из них, могут быть проигнорированы. Чем быстрее программа находит точки отсечения, тем быстрее выполняется поиск. Эвристика нулевого хода предназначена для определения точек отсечения с меньшими затратами, чем обычно, сохраняя при этом приемлемый уровень точности. Эвристика нулевого хода основана на том, что большинство разумных шахматных ходов улучшают позицию стороны, сделавшей этот ход. Таким образом, если игрок, которому сейчас ходить, может отказаться от хода (или сделать нулевой ход – недействительное действие в шахматах) и при этом сохранить достаточно сильную позицию для достижения точки отсечения, то текущая позиция почти наверняка приведет к отсечению, если бы текущий игрок действительно сделал ход.

Реализация

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

Проверенная обрезка с нулевым перемещением

Еще одна эвристика для решения проблемы цугцванга — это проверенное отсечение нулевым ходом, разработанное Омидом Давидом и Натаном Нетаньяху. При проверенном отсечении нулевым ходом, если поверхностный поиск нулевым ходом указывает на неудачу с высоким приоритетом, вместо прекращения поиска из текущего узла, поиск продолжается с уменьшенной глубиной.