Понимание минимакса с альфа-бета-обрезкой

Извините за изображение, это прямо из моих заметок.

alpha

За последний день я перечитывал минимаксные деревья и обрезку альфа-данных и немного готовился к своему проекту. Который является реализацией для Отелло в с.

Я прочитал об этом кучу ресурсов, и я знаю, что об этом часто спрашивают. Прежде чем я начну свои функции оценки, я хотел бы понять это полностью.

На прикрепленном изображении не могу понять, что за функция Min_Node(pos) а также Max_Node(pos) будет делать точно, любой вклад будет принята с благодарностью.

Если у кого-то есть какие-либо советы или вещи, на которые я должен обратить внимание при реализации этой и моей функции оценки для Othello, я готов воспользоваться любой помощью, которую смогу найти.

2 ответа

Решение

Мне удалось выяснить, что такое узел max и min, в данном случае, Max_Node(pos) проверяет, является ли это игрок, и возвращает true, потому что это должно быть максимизировано и Min_Node(pos) проверяет, является ли его противник, если истина, то это должно быть минимизировано.

Минимаксный алгоритм, который также описан здесь, должен находить ходы оптимального значения, учитывая текущую позицию в дереве игры. Позиция состоит из конфигурации доски и текущего игрока (что для некоторых игр может быть решено только на конфигурации доски). Обычно значение ходов определяется рекурсивно; для доски в конечной позиции (которая является листом дерева игры), значение 1 если игрок один выиграл, -1 если второй игрок выиграл и 0 для ничейной игры. Значение перемещения определяется путем выполнения этого перемещения и рекурсивной оценки значения. Затем выбирается ход с максимумом (для первого игрока) или минимальным (для второго игрока); в рекурсивной оценке значение является максимальным (или минимальным) значением всех листьев корневого поддерева в текущей позиции. Это, очевидно, то, что функции, упомянутые в первоначальном вопросе, должны.

Альфа-бета-обрезка, как описано здесь, является усовершенствованием этого подхода. Как известны оптимальные значения (они 1 или же -1), оценка может быть остановлена, как только будет найдено движение с желаемым значением.

Этот подход не зависит от реальной игры. Тем не менее, я предлагаю первый шаг, где более простая игра (например, Tic-Tac-Toe) используется в качестве игрушечного примера, который может быть легче отладить.

Другие вопросы по тегам