Самый базовый минимакс оценивает только конечные узлы, отмечая выигрыши, проигрыши и ничьи, и копирует эти значения в дерево для определения значений промежуточных узлов. В случае, если игровое дерево трудно поддается обработке, вам необходимо использовать глубину среза в качестве дополнительного параметра для ваших минимаксных функций. Как только глубина достигнута, вам нужно запустить какую-то функцию оценки для неполных состояний.
Большинство функций оценки в минимаксном поиске зависят от домена, поэтому поиск помощи для вашей конкретной игры может быть затруднен. Просто помните, что оценка должна возвращать некоторый процент ожидаемого выигрыша позиции для конкретного игрока (как правило, максимум, но не при использовании реализации Negamax). Любая менее изученная игра будет очень похожа на другую, более исследованную. Этот очень тесно связан с игрой пикап . Используя только минимаксную и альфа-бета, я думаю, игра поддается корректировке.
Если вам необходимо создать функцию оценки для нетерминальных позиций, вот небольшая помощь с анализом игры на стиках, с помощью которой вы можете решить, будет ли она полезна для игры на свиданиях или нет.
Начните искать способ форсировать исход, посмотрев на конечную позицию и все ходы, которые могут привести к этой позиции. В игре на стиках конечная позиция - 3 или менее палок, оставшихся на последнем ходу. Таким образом, позиция, которая немедленно переходит в эту конечную позицию, оставляет противнику 4 стика. Теперь цель состоит в том, чтобы оставить противнику 4 палки, несмотря ни на что, и это можно сделать, если оставить 5, 6 или 7 палочек, и вы хотели бы заставить своего противника оставить вас в одной из этих позиций. Место, в котором должен быть ваш оппонент, чтобы вы были в 5, 6 или 7, - это 8. Продолжайте эту логику и продолжайте, и паттерн становится очень быстро доступным. Всегда оставляйте оппонента с числом, кратным 4, и вы выигрываете, все остальное вы проигрываете.
Это довольно тривиальная игра, но важен метод определения эвристики, поскольку он может быть непосредственно применен к вашему заданию. Поскольку последний ход идет первым, и вы можете изменить только 1 атрибут даты за раз, вы знаете, что для победы нужно ровно 2 хода ... и т. Д.
Удачи, дайте нам знать, что вы в конечном итоге делаете.