Я делаю простую игру Реверси / Отелло в C, где игрок играет против компьютера. При создании своего ИИ я счел необходимым создать оценочную функцию для оценки конкретной игровой позиции:
Поэтому я придумал простую функцию:
оценка = а * (переворачивает) + b * (углы) + c * (MovesEliminated)
Где переворачивание подсчитывает количество противоположных плиток, которые ИИ может перевернуть, когда он размещает свою плитку в месте.
Углы высоко ценятся, так как они создают «стабильные» плитки в Отелло.
MovesEliminated также высоко приветствуется, так как дает противнику меньше противодействующих ходов, тем лучше.
Проблема в том, что Веса, b и c являются гиперпараметрами, и я понятия не имею, какие значения для них задать. Есть ли какие-нибудь экспериментальные значения (или диапазон), с которых я мог бы начать?
Для меня углы должны иметь наибольший «приоритет», за которыми следуют исключенные ходы, а затем переворачивание. Помощь будет принята с благодарностью!