Почему мы храним только два или три убийственных хода на глубину? - PullRequest
0 голосов
/ 07 января 2020

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

  1. Использование pvmove

  2. Использование самой ценной жертвы наименее ценной атакующий

  3. Использование эвристики убийцы

Хотя я не понимаю, почему мне следует хранить только 2 или 3 хода на глубину, когда я могу сохранить весь список?

1 Ответ

2 голосов
/ 07 января 2020

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

1 Moves: 128                 Possibilities
2 Moves: 16384               Possibilities
3 Moves: 2097152             Possibilities
4 Moves: 268435456           Possibilities
5 Moves: 34359738368         Possibilities
6 Moves: 4398046511104       Possibilities
7 Moves: 562949953421312     Possibilities
8 Moves: 72057594037927936   Possibilities
9 Moves: 9223372036854775808 Possibilities

Это просто простое предположение о количестве фигур и возможных ходов, но вы видите, что даже на 3 хода вперед вам нужно сэкономить около 2 миллионов возможностей, что очень много, если у вас есть ограниченное время для каждого хода.

Конечно, вы можете делать оптимизации и все такое, но ответьте на свой вопрос: потому что у вас нет скорость процессора или пространство на жестком диске для сохранения a whole list возможных ходов.

...