Главная > Интеллектуальные системы > Системы искусственного интеллекта
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

6.2. Оценивание позиций

Теперь речь пойдет о том, чтобы каждой позиции поставить в соответствие числовую величину которая принимала бы тем большие по абсолютной величине отрицательные

значения, чем большим является преимущество противника. Конечно, не существует никакой теории, с помощью которой можно было бы получить для шахмат точный вид функции но можно получить лишь знак оценки для некоторых известных дебютов. В отдельных случаях результаты могут быть еще хуже, например при позиционном преимуществе можно получить даже отрицательную оценку. Именно в этом состоит основная причина несовершенной игры программ такого типа. И если все-таки используется такой подход, то нужно при каждом плохом ходе программы попытаться внести изменения в вид функции которые привели бы к устранению ошибки.

Наиболее важной частью оценки всегда является материальная сторона: первый член функции пропорционален алгебраической сумме стоимостей фигур с той и другой стороны и называется балансом Стоимости шахматных фигур подсчитываются обычным образом: пешка стоит 1, конь и слон — 3, ладья — 5 и ферзь — 10. Полный вид функции имеет полиномиальную форму, где к уже рассмотренному материальному балансу добавляются члены, оценивающие другие аспекты игровой позиции:

Если одной из сторон удалось выиграть слона но при этом проиграть пешку то первый член функции будет равен 2а, где величина коэффициента а, как и зависит от “коварства” программиста. Следующие члены идут в порядке убывания их важности. Величина учитывает относительную безопасность обоих, королей и является тем большей, чем лучше защита короля после рокировки. Коэффициент должен изменяться в течение партии, а по мере исчезновения с доски главных фигур может стать нулевым. При этом короли начинают поддерживать свои пешки и даже помогать в атаке, защищая свои собственные фигуры.

Член М характеризует подвижность фигур. Он зависит от числа клеток, на которые могут сделать ход фигуры. Для каждой фигуры вводится весовой коэффициент, зависящий от ее игровых возможностей. Член С зависит от степени контроля за центром доски, т. е. за полями Связанный с ним коэффициент имеет большие значения только в начале и середине партии. Член Р служит для учета структуры пешечного строя. Он тем больше по величине, чем лучше пешки защищены и внедрены в лагерь противника, а также чем больше у противника сдвоенных, изолированных и незащищенных пешек.

Наконец, последний член А учитывает атакующие возможности позиции и зависит от наличия защищенных фигур за четвертой горизонталью, ладей на открытых вертикалях, сдвоенных ладей, атакованных полей вблизи короля противника, а также от возможности разменять опасные фигуры противника, объявить королю противника или блокировать его фигуры. В некоторых программах оценочная функция учитывает и другие аспекты и содержит большее число членов.

Вычисление весовых коэффициентов зависит от терпения программиста, и ничто не мешает изменять их величины во время партии в зависимости от полного числа сделанных ходов и/или от числа фигур, оставшихся на доске. Очевидно, что оценочная функция такого вида допускает жертвы фигур. При этом член В становится отрицательным (у противника появляется преимущество по крайней мере на одну фигуру), но взвешенная сумма всех остальных членов компенсирует с ощутимым перевесом эту материальную потерю.

В гл. 9 показано, как коэффициенты могут изменяться в программе в зависимости от обстоятельств.

Если бы можно было построить функцию абсолютно точно оценивающую позицию, то в программе достаточно было бы найти все допустимые ходы, оценить позиции, к которым они приводят, и сделать ход, приводящий к наилучшей из них. В действительности как нельзя построить дерево, достаточное для достижения позиции, в которой можно было бы отдать явное предпочтение одному из противников, так и нельзя построить совершенную оценочную функцию. Необходим компромисс между средней глубиной анализа и качеством оценочной функции, а стремление улучшить и то и другое приведет к возрастанию времени вычислений.

В следующем разделе рассмотрена еще одна проблема: как связать конечную позицию, которая достигается при максимальной глубине анализа, с эффективным поиском хода на первом уровне. Для ее решения разработан метод, получивший название метода минимакса, который послужил отправной точкой для машинных игровых программ.

<< Предыдущий параграф Следующий параграф >>
Оглавление