|
||
Методы реализованные в программе Ifrit_b Здесь я изложу свое понимание эвристик и то как я реализовал это понимание в программе. 01)Bitmap Move Generation(Битбоард генератор ходов). 02)Check(Детектор шахов). Полный перебор и его оптимизация Альфа-бета. 1)MiniMax(Полный перебор). 2)AlphaBeta(Альфа-бета оптимизация полного перебора). 3)NegaScout(НегаСкаут). Сортировки для ускорения Альфа Бета. Альфа Бета при наилучшем порядке ходов исследует sqrt(N) позиций, где N - количество позиций, исследуемых при полном переборе. Это эквивалентно перебору на глубину в 2 раза больше, за тоже время. 4)Transposition table(Сортировка по хешу). 5)Sorting captures(Сортировка взятий). 6)Killer heuristic(Сортировка по киллерам). 7)History heuristic(Сортировка по истории). Расширения поиска. 8)Quiescence search(Быстрый поиск). 9)Extensions(Расширения). Оценка позиции и вывод варианта 10)Estimation(Оценка). 11)Save variant(Сохранение варианта). Другие методы 12)Null move pruning(Нулевой ход). 13)Futility pruning. 14)Late Move Reductions. 15)Internal Iterative Deepening. |