Учитывает ли функция оценки для игры в шахматы все фигуры на доске?
Я надеюсь, что это легко отвечаемый вопрос, но я немного озадачен тем, как работает функция оценки для шахматной игры. Я использую минимаксный алгоритм, который оценивает доску в конечных узлах, принимая во внимание материал, квадратные таблицы, подвижность и т. Д. Учитывает ли функция оценки для минимаксного алгоритма (не Negamax) каждую деталь на доске, как черный, так и белый, чтобы вычислить значение платы или она просто смотрит на кусочки минимизатора (черный) или максимизатора (белый).
Например, суммирую ли я материал как черно-белого, так и по очереди, когда вызывается метод valu_board()?
Я прошу прощения, если это сбивает с толку, но я новичок в этом. Даже немного разъяснений будет высоко ценится. Спасибо.
1 ответ
Оценка позиции может принимать во внимание все, что угодно. Если вы используете минимакс, вы можете захотеть, чтобы отрицательные оценки были хорошими для белых и положительными для черных - или что-то в этом роде. Поэтому, если вы используете материал только для оценки, вы можете считать каждый белый кусок как -N
и каждый черный кусок как +N
, И начальная позиция 0.
Имейте в виду, что даже при обрезке минимакс может занять много времени, если вы пройдете даже несколько слоев (глубины). Таким образом, чем дешевле или быстрее метод оценки, тем лучше. Простое материальное преимущество ИМХО - единственная оценка, которая вам понадобится.
Конечно, в шахматной вики есть полная статья об оценочной части шахматного движка: https://chessprogramming.wikispaces.com/Evaluation