Введение

Негамакс-поиск — это вариант алгоритма поиска минимакса, основанный на свойстве нулевой суммы в играх для двух игроков. Этот алгоритм использует тот факт, что 1 = min(a, b) = max(b, a) для упрощения реализации алгоритма минимакса. Более точно, значение позиции для игрока А в такой игре является отрицанием значения для игрока Б. Таким образом, игрок, делающий ход, ищет ход, который максимизирует отрицание значения, полученного в результате этого хода: эта дочерняя позиция по определению должна быть оценена противником. Логика, представленная в предыдущем предложении, работает независимо от того, кто из игроков – А или Б – делает ход. Это означает, что для оценки обеих позиций можно использовать одну и ту же процедуру. Это упрощает кодирование по сравнению с минимаксом, который требует, чтобы игрок А выбирал ход с дочерней позицией с максимальным значением, а игрок Б – ход с дочерней позицией с минимальным значением. Не следует путать его с алгоритмом negascout, который позволяет быстро вычислять значения минимакса или негамакса с помощью эффективного использования альфа-бета отсечения, разработанного в 1980-х годах. Следует отметить, что альфа-бета отсечение само по себе является способом быстрого вычисления значения минимакса или негамакса позиции, избегая поиска определенных неинтересных позиций. Большинство игровых движков, использующих поиск с противником, кодируются с применением той или иной формы негамакс-поиска.

Негамакс с альфа-бета-орезкой

Оптимизации алгоритма для минимакса также в равной степени применимы и к негамаксу. Альфа-бета-отсечение может уменьшить количество узлов, которые алгоритм негамакс оценивает в дереве поиска, подобно тому, как это делается с алгоритмом минимакса. Далее представлен псевдокод поиска негамаксом в глубину с альфа-бета-отсечением: оптимизация для альфа-бета-отсечения, которая пытается предсказать наиболее вероятные дочерние узлы, определяющие оценку узла. Алгоритм сначала просматривает эти дочерние узлы. Благодаря удачным предсказаниям альфа/бета-отсечения происходят раньше и чаще, что позволяет отсечь дополнительные ветви игрового дерева и оставшиеся дочерние узлы из дерева поиска.