Я иногда пишу программы, чтобы играть в настольные игры. Основная стратегия - стандартная альфа-бета-обрезка или аналогичные поиски, иногда дополняемая обычными подходами к эндшпилям или открытиям. В основном я играю в шахматы, поэтому, когда приходит время выбрать мою функцию оценки, я использую базовую функцию оценки шахмат.Как создать хорошую оценочную функцию для игры?
Однако сейчас я пишу программу, чтобы играть совершенно новую настольную игру. Как выбрать хорошую или даже достойную оценочную функцию?
Главные проблемы в том, что одни и те же куски всегда находятся на доске, поэтому обычная материальная функция не будет меняться в зависимости от положения, и игра была сыграна менее тысячи раз или около того, поэтому люди не обязательно сыграйте его достаточно хорошо, чтобы дать представление. (PS. Я считал подход MoGo, но случайные игры вряд ли заканчиваются.)
Информация об игре: Игра проводится на плате 10 на 10 с фиксированными шестью частями на сторону. Части имеют определенные правила движения и взаимодействуют определенным образом, но никакая часть никогда не захватывается. Цель игры состоит в том, чтобы иметь достаточное количество ваших предметов на определенных специальных площадках на доске. Цель компьютерной программы - предоставить игроку, который является конкурентоспособным или лучше, чем нынешние игроки.
Это звучит как хороший подход ко мне. +1 (незарегистрированный :() –
@ThomasVultura Пожалуйста, объясните это: «замените проигравших случайными комбинациями от победителей». Как именно вы разводите? Вы просто усредняете веса? Я разместил здесь следующий вопрос: https://stackoverflow.com/questions/45201979/genetic-algorithm-for-optimization-in-game-playing-agent-heuristic-evaluation-fu –