Я провел целый день, пытаясь реализовать минимакс, не понимая его. Теперь, я думаю, я понимаю, как работает минимакс, но не обрезание альфа-бета.
Это мое понимание минимакса:
-
Создайте список всех возможных движений, вплоть до предела глубины.
-
Оцените, насколько выгодно игровое поле для каждого node внизу.
-
Для каждого node (начиная со дна) оценка этого node является наивысшей оценкой его детей, если уровень макс. Если слой является минимальным, оценка этого node является наименьшей оценкой его детей.
-
Выполните шаг, который имеет наивысший балл, если вы пытаетесь его максимизировать, или самый низкий, если вам нужен счет мин.
Мое понимание обрезки альфа-бета заключается в том, что если родительский слой равен min, а ваш node имеет более высокий балл, чем минимальный балл, то вы можете обрезать его, так как он не повлияет на результат.
Однако, что я не понимаю, если вы можете выработать оценку node, вам нужно знать оценку всех узлов на уровне ниже node (в моем понимании минимаксное). Это означает, что вы будете использовать ту же мощность процессора.
Может ли кто-нибудь указать, что я ошибаюсь? Этот ответ (Minimax объяснил для идиота) помог мне понять минимакс, но я не понимаю, как поможет альфа-бета-обрезка.
Спасибо.