Я хочу, чтобы получить псевдокод MinMax алгоритма. Я должен сделать 2 функции, DEF maxAgent (GameState, глубина) и minAgent. Есть ли какой-либо орган, который имеет право и легко псевдокод для него.
pseudcode для MinMax алгоритма
MINMAX алгоритм пытается максимизировать счет для игрока A и свести к минимуму счета для игрока B. Учитывая узел, вы можете найти конечный результат от оптимальной игры, взяв максимум (для A) или мин (для B) партитур для последующие узлы.
Предполагая, что листовые узлы имеют назначенную победителя (1 для A, -1 для B), а все остальные узлы имеют оценку 0. Затем можно вычислить конечный результат выигрыша для А с чем-то вроде
getMaxScore(node) {
score = node.score;
for each child node
score = max(score, getMaxScore(node))
next
return score;
}
Это основной алгоритм. Вы можете укоротить оценка как только счет становится 1, то у вас есть известный выигрыш для А.
Алгоритм является одинаковым для B, getMinScore, только вы используете функцию мин, и если короткое замыкание, обратите внимание на -1.
Два игрока, А и В, по очереди, чтобы играть.
Нам дана функция подсчета очков п, которая оценивает данную позицию платы, P. Большие значения F (P) лучше для А и хуже B (т.е. F (P) является оценка того, как «хорошо» P для A не делая дальнейший предпросмотр).
Рассмотрим положение доски P.
Если P является узлом листа (т.е. P является выигрышной позицией или мы рассмотрели, как далеко вперед, как мы хотим), то мы возвращаем F (P) как оценка для этого узла.
В противном случае P не является листовым узлом и имеет детей C1, ..., Cn. Мы рекурсивно вычислить оценки для детей, давая S1, ..., Sn.
Если А играет на Р, то оценка для Р макс {S1, ..., Sn}, поскольку A будет всегда играть, чтобы максимизировать свое преимущество.
Если B играет на P, то оценка для Р мин {S1, ..., Sn}, так как B будет всегда играть, чтобы минимизировать преимущество в.
Этого должно быть достаточно, чтобы превратить в код.
После того, как вы сделали это, взгляните на альфа-бета обрезку, которая должна (резко) уменьшить объем поиска, что вам нужно сделать. Альфа-бета отсечение основана на идее о том, что если вывод, что B может играть, чтобы заставить максимальное преимущество A, чтобы быть М, то нет никакого смысла в рассмотрении любого поддерева которого оценка больше М, так как B никогда не допустит такой вариант!













