Шахматный движок обычно анализирует тысячи исходов, прежде чем сделать эффективный ход. Поскольку аппаратные средства и методы программирования год от года совершенствуются, шахматные движки становятся все более интеллектуальными. Современные движки более избирательны и имеют лучшее позиционное понимание.
Если вы построите полное дерево всех возможных ходов на шахматной доске, вы получите в общей сложности 10120 ходов. Это очень большое число.
Чтобы представить это в перспективе, с момента Большого Взрыва прошло всего 1026 наносекунд, а во всей вселенной насчитывается примерно 1075 атомов. Эти числа ничтожно малы по сравнению с количеством возможных ходов в шахматах, что делает их одной из самых сложных настольных игр.
Существуют буквально сотни “рейтинговых списков”, которые измеряют относительную силу шахматных движков, основываясь на том, сколько ходов они делают в минуту. В дополнение к ранжированию шахматных движков от лучших к худшим, эти списки также обеспечивают допустимость ошибок в заданных рейтингах.
Среди этих рейтинговых списков наиболее известными являются CCRL (Computer Chess Rating Lists) и CEGT (Chess Engines Grand Tournament). Имея в виду оба этих рейтинга, мы представляем самые передовые шахматные движки, которые демонстрируют господство машины над человечеством.
1. Stockfish
Рейтинг CCRL: 3564
Рейтинг CEGT: 3512
Stockfish – это движок UCI с открытым исходным кодом, доступный для различных настольных и мобильных платформ. Он основан на другом шахматном движке с открытым исходным кодом под названием Glaurung.
Написанный на языке C++, движок может использовать до 512 ядер процессора. Максимальный размер его таблицы транспозиции составляет 1 терабайт. Помимо реализации альфа-бета-поиска, движок имеет агрессивную обрезку и сокращение поздних перемещений.
Примечание: поскольку рейтинговые списки CCRL и CEGT постоянно меняются, рейтинг может время от времени меняться.
2. Leela Chess Zero
Рейтинг CCRL: 3463
Рейтинг CEGT: 3467
Вдохновленная исследованиями Deepmind об AlphaZero и AlphaGo Zero, Leela Chess Zero полагается на самоучку нейронной сети, чтобы делать умные ходы. Сеть учится с помощью методов глубокого обучения, играя против себя миллионы раз.
Вместо использования обычного алфавитного поиска с ручной функцией оценки он использует тип поиска по дереву Монте-Карло (MCTS), известный как puct. Чтобы полностью реализовать свой потенциал, вам нужно запустить шахматный движок на графическом процессоре с поддержкой CUDA.
3. Houdini
Рейтинг CCRL: 3529
Рейтинг CEGT: 3444
Гудини известен своим позиционным стилем двигателя, способностью сильно защищаться, упорством в трудных позициях и уходом с ничьей.
До сих пор он выиграл 3 сезона чемпионата Top Chess Engine Championship.
Новая версия Houdini поставляется в 2-х вариациях – Standard и Pro. В то время как предыдущая версия поддерживала только до 8 процессорных ядер, Pro-версия поддерживает до 128 ядер и 128 ГБ оперативной памяти. Он осведомлен о NUMA и может использовать Эндшпильную базу таблиц Налимова.
4. Komodo
Рейтинг CCRL: 3508
Рейтинг CEGT: 3424
Komodo был получен из более старой поисковой системы doch в качестве основного рерайта и порта Komodo на C++11. Поскольку он опирается на оценку (а не на глубину), у него совершенно другой позиционный стиль.
Движок поддерживает до 64 ядер, табличную базу Syzygy endgame и случайные шахматы Фишера. Kodomo позволяет сохранить анализ позиции движка, чтобы вы могли проверить его позже и возобновить анализ. Вы также можете контролировать, как движок делает долгосрочные жертвы пешечной структуры для динамической игры.
Комодо трижды выигрывал чемпионат лучших шахматных движков.
5. Fire
Рейтинг CCRL: 3430
Рейтинг CEGT: 3319
Fire – это бесплатный шахматный движок, который раньше был открытым исходным кодом, но позже стал закрытым исполняемым файлом Windows, доступным для новых процессоров Intel. Первоначально он был известен как Firebird, а позже переименован в Fire из-за конфликта имен товарных знаков.
Имеет волшебные битборды, сизигийные табличные базы, настраиваемый хэш и мультипв. Вы можете настроить его с помощью более чем 70 универсальных параметров шахматного интерфейса и применить параллельный поиск SMP.
6. Ethereal
Рейтинг CCRL: 3386
Рейтинг CEGT: 3290
Ethereal-это движок с открытым исходным кодом, разработанный Эндрю Грантом. Это UCI-совместимый шахматный движок, впервые выпущенный в 2016 году под лицензией GNU GPL.
Ethereal в дополнение к обычной альфа-бета-структуре, он использует различные улучшения, начиная от сокращения и обрезки до расширения.
7. Fizbo
Рейтинг CCRL: 3347
Рейтинг CEGT: 3211
Fizbo – шахматный движок связи протокола, впервые выпущенное в 2014 году. Он основан на bitboard и использует инструкцию подсчета населения. На данный момент движок совместим с Windows и требует процессора с инструкцией pop-count.
Кроме того, итеративного углубления, Физбо выполняет параллельный поиск на основе расширенного алгоритма трассировки РУ. Кроме того, в поиске покоя используется таблица транспозиции с 8-байтовыми записями.
8. Andscacs
Рейтинг CCRL: 3337
Рейтинг CEGT: 3209
Впервые опубликованный в 2014 году, Andscacs вскоре превратился в один из лучших шахматных движков в мире. Он использует магическую битборд для ускорения вычислений атаки. Он применяет поиск основных вариаций с таблицей транспозиции внутри итерационной структуры.
Andscacs имеет статическую оценку обмена и потоковый параллельный поиск. И он пробует хэш-ход в поиске покоя.
Чтобы сделать двигатель более мощным и эффективным (или свести к минимуму стандартное отклонение статической оценки), исследователи оптимизировали 200 оценочных функций с 750 000 позиций.
9. Booot
Конгрессов wccc 2011, Booot и Алексей Морозов
Рейтинг CCRL: 3326
Рейтинг CEGT: 3234
Booot – это шахматный движок с открытым исходным кодом, написанный на Delphi 6. Он определяет скользящие атаки кусков с повернутыми битбордами. Он упакован с ленивым SMP и полностью переработанной функцией оценки.
Движок применяет PVS со всеми основными улучшениями поиска, такими как сокращение поздних перемещений, обрезка нулевых перемещений и внутреннее итеративное углубление. Последняя версия поддерживает многопроцессорную архитектуру и имеет несколько вариантов сборки для 32 и 64 бит.
10. Deep Shredder
Рейтинг CCRL: 3324
Рейтинг CEGT: 3153
Shredder – это коммерческий шахматный движок, разработанный в 1993 году. Он выиграл более 20 титулов, в том числе чемпионат мира по микрокомпьютерным шахматам (1996, 2000), Чемпионат мира по компьютерным шахматам (1999, 2003), Чемпионат мира по программному обеспечению для шахмат (2010) и чемпионат мира по скоростным шахматам (5 раз).
Deep Shredder-это многопроцессорная версия Шредера. Он поставляется с графическим пользовательским интерфейсом, разработанным компанией Millennium Chess System, который поддерживает универсальный шахматный интерфейс и совместим с другими движками UCI, доступными для Mac OS, Windows и Linux.
11. Xiphos
Рейтинг CCRL: 3324
Рейтинг CEGT: 3193
Xiphos – это шахматный движок с открытым исходным кодом, написанный на языке Си и распространяемый под лицензией GNU General Public License. Это совместимый с UCI движок, который использует битовые платы с отображением ERLEF.
Xiphos использует откатная цельная атак, которые оцениваются либо PEXT bitboards (для BMI2) или Magic bitboards. Если вы хотите попробовать, вы можете запустить этот движок на Windows, macOS и Linux.
12. Schooner
Рейтинг CCRL: 3284
Schooner использует альфа-бета-поиска, сокращения в конце перемещения (ЛМР), принцип окне поиска (ПВС), и один вход хэш. Он поддерживает подмножество универсального шахматного интерфейса, чтобы автоматически играть в игры, не занимая много ресурсов.
Его производительность была значительно улучшена в последние годы: более простая оценка, вдохновленная Xiphos, поэтапная генерация перемещений и тонны тестирования и настройки отвечают за эти улучшения.
13. GullChess
Рейтинг CCRL: 3261
Рейтинг CEGT: 3183
GullChess – это шахматный движок с открытым исходным кодом, который применяет магические битовые доски для определения скользящих атак фигур. Он в основном написан на языке программирования C++ и содержит только один исходный файл.
Движок Gull Engine содержит общие шаблоны функций в процедурах рекурсивного поиска, а также несколько других функций для генерации перемещений (исключая “хэш-перемещение” и “боковое перемещение”).
14. Equinox
Рейтинг CCRL: 3253
Рейтинг CEGT: 3122
Equinox – это симметричный многопроцессорный шахматный движок, разработанный главным образом Джанкарло Делли колли. Он вдохновлен популярными движками с открытым исходным кодом, такими как Stockfish, Crafty и Ippolit.
Equinox активно участвует в нескольких частных турнирах по движкам, включая Italian Open Chess Software Cups и Thoresen Chess Engine Competition.
15. Chiron
Рейтинг CCRL: 3241
Рейтинг CEGT: 3123
Chiron – это коммерческий шахматный движок, который поддерживает как универсальный шахматный интерфейс, так и коммуникационный протокол шахматного движка, а также несколько форматов endgame tablebase и bitbase.
Он применяет параллельный поиск на многопроцессорных архитектурах и реализует обнаружение блокировки пешек, которое не только обнаруживает блокировки в пешечном эндшпиле, но и идентифицирует другие фигуры на доске.
Последняя версия была глубоко настроена, особенно в контексте прохождения пешек и мобильности. Также было введено несколько усовершенствований расширенного поиска, таких как ленивая симметричная многопроцессорная обработка, прямая обрезка и осведомленность NUMA.
16. AsmFish
Рейтинг CCRL: 3506
AsmFish – это порт движка Stockfish, написанный на ассемблере x86. Он опционально использует инструкции BMI2 и AVX2. Он собран с помощью FASM для платформ Linux и Windows.
AsmFish строится с использованием некоторых методов структурной оптимизации, таких как исключение штучных списков. Критические функции не соответствуют x86 ABI, что касается использования регистра и соглашения о вызовах. Однако менее важные по времени функции были перенесены через выходные данные сборки GCC.
Тем не менее, движок поддерживает NUMA (неравномерный доступ к памяти) и поддерживает параллельный поиск и большие страницы.
17. Suger XPro
Рейтинг CCRL: 3533
SugaR engine является производным от Stockfish и поддерживает до 128 ядер. Как и другие популярные движки, такие как Stockfish, SugaR не является полной шахматной программой. Требует совместимого графического интерфейса, такие как XBoard с арены, Полиглот, Шредер, Сигма шахматы, и шахматы.
Поскольку движок распространяется под общей публичной лицензией, вы можете модифицировать и продавать его.
18. Critter
Рейтинг CCRL: 3232
Рейтинг CEGT: 3098
Critter – это шахматный движок UCI, доступный для Windows, Mac, Android и Linux. Вы можете использовать его только в личных целях. Первоначально он был написан на Delphi, но позже преобразован в C++ с использованием технологии Bitboard. Это было сделано для повышения его производительности на 64-битных процессорах.
Этот шахматный движок включает в себя обрезку нулевого хода, прямую обрезку, поиск основных вариаций, параллельный поиск с количеством потоков до 8 и обнаружение блокировок в эндшпиле.
19. Hannibal
Рейтинг CCRL: 3229
Рейтинг CEGT: 3094
Hannibal – это универсальный шахматный интерфейс (UCI), который включает в себя идеи из более ранних движков, витую логику и LearningLemming. Он использует метод альфа-бета со многими другими специфическими шахматными эвристиками и опирается на метод выборочного поиска.
Помимо невероятного знания эндшпиля, движок обладает хорошим пониманием материальных дисбалансов. Он также понимает крепости и захваченные части и может пожертвовать материалом для инициативы в атаках короля.
Кроме того, управление временем Hannibal настроено на контроль времени Фишера.