Шахматные Оптимизации - PullRequest
20 голосов
/ 10 июля 2009

хорошо, так что я некоторое время работаю над своей шахматной программой, и я начинаю ударяться о стену. я выполнил все стандартные оптимизации (negascout, итеративное углубление, ходы убийцы, эвристический анализ истории, поиск покоя, оценка позиции пешки, некоторые расширения поиска) и у меня нет идей!

В скором времени я хочу сделать его многопоточным, и это должно дать мне хороший прирост производительности, но кроме этого есть еще какие-нибудь изящные трюки, с которыми вы, ребята, сталкивались? Я подумал о переходе на MDF (f), но я слышал, что это хлопотно и не стоит.

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

также, будет ли значительным переход на битовую плату? В настоящее время я использую 0x88.

Ответы [ 12 ]

0 голосов
/ 10 июля 2009

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

Я не уверен, какой тип вещей вы бы хотели изучить, однако ...

0 голосов
/ 10 июля 2009

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

...