Минимакс / альфа бета обрезка Move Order? - PullRequest
3 голосов
/ 18 января 2012

Я прочитал (например, http://radagast.se/othello/Help/order.html), что поиск лучших ходов на каждом уровне первым (что можно найти с помощью итеративного углубления) делает поиск более быстрым).Можно ли искать лучшие ходы, не используя слишком много дополнительной памяти и процессорного времени?

Ответы [ 2 ]

2 голосов
/ 29 декабря 2012

Существует в основном две стратегии:

  1. Статический порядок ходов
  2. Динамический порядок ходов

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

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

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

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

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

Комбинируя статическое и динамическое упорядочение ходов, шахматные движки часто могут угадать лучший ход в позиции с вероятностью попадания более 90%.

0 голосов
/ 18 января 2012

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

...