stringtranslate.com

Шахматный движок

В компьютерных шахматах шахматный движок — это компьютерная программа , которая анализирует шахматные или шахматные варианты позиций и генерирует ход или список ходов, которые она считает сильнейшими. [1]

Шахматный движок обычно представляет собой бэкенд с интерфейсом командной строки без графики или окон . Движки обычно используются с фронтендом, оконным графическим пользовательским интерфейсом , таким как Chessbase или WinBoard , с которым пользователь может взаимодействовать с помощью клавиатуры, мыши или сенсорного экрана. Это позволяет пользователю играть против нескольких движков, не изучая новый пользовательский интерфейс для каждого, и позволяет разным движкам играть друг против друга.

Многие шахматные движки теперь доступны для мобильных телефонов и планшетов, что делает их еще более доступными.

История

Значение термина «шахматный движок» со временем изменилось. В 1986 году Линда и Тони Шерцер представили свою программу Bebe на 4-м чемпионате мира по шахматам среди компьютерных программ , запустив ее на «Chess Engine», их торговой марке для аппаратного обеспечения шахматного компьютера [2] , производимого и продаваемого их компанией Sys-10, Inc. [3] К 1990 году разработчики Deep Blue , Фэн-сюн Сю и Мюррей Кэмпбелл , писали о том, чтобы снабдить свою программу «поисковой системой», по-видимому, имея в виду программное обеспечение, а не оборудование. [4] В декабре 1991 года Computer-schach & Spiele назвали недавно выпущенный Fritz от Chessbase «Schach-motor», что в переводе с немецкого означает «шахматный движок». [5] К началу 1993 года Марти Хирш проводил различие между коммерческими шахматными программами, такими как Chessmaster 3000 или Battle Chess, с одной стороны, и «шахматными движками», такими как ChessGenius или его собственный MChess Pro , с другой. По его характеристике, коммерческие шахматные программы были дешевы, имели красивую графику, но не занимали высоких мест в рейтинговых списках SSDF ( Шведская шахматная компьютерная ассоциация ), в то время как движки были более дорогими и имели высокие рейтинги. [6]

В 1994 году Шей Бушински работал над ранней версией своей программы Junior . Он хотел сосредоточиться на шахматной части, а не на графике, и поэтому спросил Тима Манна, как заставить Junior общаться с Winboard . Ответ Тима лег в основу того, что стало известно как Chess Engine Communication Protocol или движки Winboard, изначально являвшиеся подмножеством интерфейса командной строки GNU Chess . [7]

Также в 1994 году Стивен Дж. Эдвардс выпустил спецификацию Portable Game Notation (PGN). В ней упоминаются программы чтения PGN, которым не требуется «полный шахматный движок». Также упоминаются три «графических пользовательских интерфейса» (GUI): XBoard , pgnRead и база данных Slappy. [8]

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

Интерфейсный протокол

Распространенные движки Winboard включают Crafty , ProDeo (на основе Rebel ), Chenard, Zarkov и Phalanx.

В 1995 году Chessbase выпустила версию своей программы базы данных, включающую Fritz  4 в качестве отдельного движка. Это было первое появление протокола Chessbase. Вскоре после этого они добавили движки Junior и Shredder в свою линейку продуктов, включая движки в протоколе CB в качестве отдельных программ, которые можно было установить в программу Chessbase или один из других графических интерфейсов пользователя в стиле Fritz. Fritz 1-14 выпускались только как движки Chessbase, в то время как Hiarcs , Nimzo, Chess Tiger и Crafty были портированы в формат Chessbase, хотя они были движками UCI или Winboard. Недавно Chessbase начала включать движки Universal Chess Interface (UCI) в свои игровые программы, такие как Komodo , Houdini , Fritz 15–16 и Rybka , а не конвертировать их в движки Chessbase.

В 2000 году Стефан Майер-Кален и Франц Хубер выпустили Universal Chess Interface , более подробный протокол, который представил более широкий набор функций. Вскоре после этого Chessbase прекратила поддержку движков Winboard и добавила поддержку UCI в свои GUI движка и программы Chessbase . Большинство ведущих движков в наши дни — это UCI: Stockfish , Komodo , Leela Chess Zero , Houdini , Fritz 15-16, Rybka , Shredder , Fruit , Critter , Ivanhoe и Ruffian.

С 1998 года немецкая компания Millenium 2000 ненадолго перешла от специализированных шахматных компьютеров к рынку программного обеспечения, разработав протокол Millennium Chess System (MCS) для серии компакт-дисков, содержащих ChessGenius или Shredder , но после 2001 года прекратила выпуск нового программного обеспечения. [9] Более давний протокол движка использовался голландской компанией Lokasoft, [10] которая в конечном итоге взяла на себя маркетинг игры Эда Шредера Rebel .

Увеличение силы

Шахматные движки постоянно увеличивают свою игровую силу. Это отчасти связано с ростом вычислительной мощности, которая позволяет производить вычисления на все большую глубину за определенное время. Кроме того, усовершенствовались методы программирования, что позволяет движкам быть более избирательными в линиях, которые они анализируют, и приобретать лучшее позиционное понимание. Шахматный движок часто использует обширную ранее вычисленную дебютную «книгу», чтобы увеличить свою игровую силу для первых нескольких ходов, возможно, до 20 ходов или более в глубоко проанализированных линиях. [ необходима цитата ]

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

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

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

Распределенные вычисления также используются для улучшения программного кода шахматных движков. В 2013 году разработчики шахматной программы Stockfish начали использовать распределенные вычисления для улучшения программного кода. [13] [14] [15] По состоянию на июнь 2017 года в общей сложности более 745 лет процессорного времени было использовано для игры в более чем 485 миллионов шахматных партий, а результаты использовались для внесения небольших и постепенных улучшений в программное обеспечение для игры в шахматы. [16] В 2019 году автор Ethereal Эндрю Грант запустил фреймворк тестирования распределенных вычислений OpenBench, основанный на фреймворке тестирования Stockfish, [17] [18], и в настоящее время это наиболее широко используемый фреймворк тестирования для шахматных движков. [ необходима ссылка ]

Ограничение мощности двигателя

К концу 1990-х годов лучшие движки стали настолько сильны, что лишь немногие игроки имели шанс выиграть у них партию. Чтобы дать игрокам больше шансов, движки начали включать настройки для регулировки или ограничения их силы. В 2000 году, когда Стефан Майер-Кален и Франц Хубер выпустили протокол Universal Chess Interface, они включили параметры uci_limitstrength и uci_elo, позволяющие авторам движков предлагать различные уровни, оцененные в соответствии с рейтингом Эло , откалиброванным по одному из рейтинговых списков. Большинство графических интерфейсов для движков UCI позволяют пользователям устанавливать этот рейтинг Эло в меню. Даже движки, которые не приняли этот параметр, иногда будут иметь регулируемый параметр силы (например, Stockfish 11). Движки, которые имеют параметр uci_elo, включают Houdini , Fritz 15–16, Rybka , Shredder , Hiarcs , Junior , Zappa и Sjeng . Такие графические интерфейсы, как Shredder , Chess Assistant , Convekta Aquarium, [19] Hiarcs Chess Explorer и Martin Blume's Arena [20], имеют выпадающие меню для настройки параметра uci_elo движка. Графические интерфейсы семейства Fritz, Chess Assistant и Aquarium также имеют независимые средства ограничения силы движка, очевидно, основанные на способности движка генерировать ранжированные списки ходов (называемые multipv для 'principle variation').

Сравнения

Турниры

Результаты компьютерных турниров дают представление об относительной силе шахматных движков. Однако на турнирах не проводится статистически значимого количества игр для точного определения силы. Фактически, количество игр, которые необходимо сыграть между примерно равными движками, чтобы достичь значимости, достигает тысяч и, следовательно, нецелесообразно в рамках турнира. [21] Большинство турниров также допускают любые типы оборудования, поэтому сравниваются только комбинации движка и оборудования.

Исторически сложилось так, что коммерческие программы были самыми сильными движками. Если любительский движок выигрывает турнир или иным образом хорошо выступает (например, Zappa в 2005 году), то он быстро коммерциализируется. Титулы, полученные в этих турнирах, приносят большой престиж программам-победителям и, таким образом, используются в маркетинговых целях. Однако после роста добровольных проектов распределенных вычислений, таких как Leela Chess Zero и Stockfish , и тестовых фреймворков, таких как FishTest и OpenBench в конце 2010-х годов, бесплатные и открытые программы в значительной степени вытеснили коммерческие программы как самые сильные движки на турнирах.

Список турниров

Текущие турниры включают в себя:

Исторические турниры включают в себя:

Рейтинги

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

Рейтинги в рейтинговых списках, хотя и рассчитываются с использованием системы Эло (или аналогичных методов рейтинга), не имеют прямого отношения к рейтингам Эло ФИДЕ или к рейтингам других шахматных федераций игроков-людей. За исключением некоторых игр человек против машины, которые SSDF организовал много лет назад (когда движки были далеки от сегодняшней силы), нет никакой калибровки между любым из этих рейтинговых списков и пулов игроков. Следовательно, результаты, которые имеют значение, это ранги и разница между рейтингами, а не абсолютные значения.

Во многих рейтинговых списках отсутствуют IPPOLIT и его производные. Хотя они очень сильны и имеют открытый исходный код , есть утверждения от коммерческих программных интересов, что они были получены из дизассемблированного двоичного кода Rybka . [22] Из-за разногласий все эти движки были занесены в черный список многих турниров и рейтинговых списков. Rybka, в свою очередь, обвинялась в том, что она основана на Fruit , [23] и в июне 2011 года ICGA официально заявила, что Rybka была получена из Fruit и Crafty, и запретила Rybka участвовать в чемпионате мира по компьютерным шахматам Международной ассоциации компьютерных игр и аннулировала ее предыдущие победы (2007, 2008, 2009 и 2010). [24] ICGA подверглась некоторой критике за это решение. [25] Несмотря на все это, Rybka по-прежнему включена во многие рейтинговые списки, такие как CCRL и CEGT, в дополнение к Houdini , производной от IPPOLIT производной Robbolito, [26] и Fire, производной от Houdini. Кроме того, Fat Fritz 2 , производная от Stockfish, [27] также включена в большинство рейтинговых списков.

Различия между рейтинговыми списками

Существует ряд факторов, которые различаются в рейтингах шахматных движков:

Эти различия влияют на результаты и затрудняют прямое сравнение рейтинговых списков.

Список рейтинговых списков

Текущие рейтинговые списки и рейтинговые организации включают в себя:

Исторические рейтинговые списки и организации рейтинговых списков включают в себя:

Тестовые наборы

Движки можно тестировать, измеряя их производительность на определенных позициях. Типичным является использование тестовых наборов, где для каждой заданной позиции нужно найти один лучший ход. Эти позиции могут быть ориентированы на позиционную, тактическую или эндшпильную игру. Тестовый набор Nolot , например, фокусируется на глубоких жертвах. [32] Тестовые наборы BT2450 и BT2630 измеряют тактические возможности шахматного движка и использовались REBEL . [33] [34] Существует также общий тестовый набор под названием Brilliancy, который был составлен в основном из How to Reassess Your Chess Workbook . [35] Стратегический тестовый набор (STS) тестирует стратегическую силу движка. [36] Другой современный тестовый набор — Nightmare II, который содержит 30 шахматных головоломок. [37] [ нерелевантная цитата ]

Каспаров против всего мира (шахматная партия с участием компьютера)

В 1999 году Гарри Каспаров сыграл в шахматную партию под названием «Каспаров против мира» через Интернет , организованную MSN Gaming Zone . Обе стороны использовали компьютерную (шахматную) помощь. «Мировая команда» включала участие более 50 000 человек из более чем 75 стран, решая свои ходы большинством голосов . Игра длилась четыре месяца, закончившись после 62-го хода Каспарова, когда он объявил вынужденный мат в 28 ходов, найденных с помощью компьютерной программы Deep Junior . Голосование Мировой команды ушло в отставку 22 октября. После игры Каспаров сказал: «Это величайшая игра в истории шахмат. Огромное количество идей, сложность и вклад, который она внесла в шахматы, делают ее самой важной игрой, когда-либо сыгранной». [38]

Движки для вариантов шахмат

Некоторые шахматные движки были разработаны для игры в шахматные варианты , добавляя необходимый код для имитации нестандартных шахматных фигур или для анализа игры на нестандартных досках. ChessV и Fairy-Max , например, оба способны играть в варианты на шахматной доске размером до 12×8, например, в шахматы Капабланки (доска 10×8).

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

Графические пользовательские интерфейсы

XBoard / Winboard был одним из самых ранних графических пользовательских интерфейсов (GUI). Тим Манн создал его, чтобы предоставить GUI для движка GNU Chess , но после этого появились другие движки, такие как Crafty , которые использовали протокол Winboard. В конце концов, программа Chessmaster включила возможность импорта других движков Winboard в дополнение к движку King, который был включен.

В 1995 году Chessbase начала предлагать движок Fritz как отдельную программу в программе базы данных Chessbase и в графическом интерфейсе Fritz. Вскоре после этого они добавили движки Junior и Shredder в свою линейку продуктов, упаковав их в тот же графический интерфейс, который использовался для Fritz. В конце 1990-х годов графический интерфейс Fritz мог запускать движки Winboard через адаптер, но после 2000 года Chessbase просто добавила поддержку движков UCI и больше не вкладывала много усилий в Winboard.

В 2000 году Стефан Майер-Кален начал продавать Shredder в отдельном графическом интерфейсе UCI собственной разработки, позволяющем импортировать в него движки UCI или Winboard.

Chess Assistant от Convekta и ChessPartner от Lokasoft также добавили возможность импорта движков Winboard и UCI в свои продукты. Шейн Хадсон разработал Shane's Chess Information Database , бесплатный графический интерфейс для Linux, Mac и Windows. Мартин Блюм разработал Arena, [20] еще один бесплатный графический интерфейс для Linux и Windows. Лукас Монж вышел на поле с бесплатным Lucas Chess GUI. [39] Все три могут работать как с движками UCI, так и с движками Winboard.

Для Android Аарт Бик выпустил Chess for Android [40] , еще один бесплатный графический интерфейс, а Chess PGN Master Герхарда Калаба [41] и Droidfish Питера Остерлунда [42] также могут служить графическими интерфейсами для движков.

В Computer Chess Wiki перечислено множество шахматных графических интерфейсов. [43]

Смотрите также

Примечания

Ссылки

  1. ^ blog.chess.com Создание шахматного движка с нуля (часть 1: основы) Архивировано 2012-03-08 на Wayback Machine , дата ссылки 28 июня 2012 г.
  2. ^ "4-й чемпионат мира по шахматам среди компьютеров - Нью-Йорк 1983 (турниры ICGA)". Game-ai-forum.org . Архивировано из оригинала 2018-12-02 . Получено 2018-12-02 .
  3. ^ "New SYS-10". Sys-10.com . Архивировано из оригинала 1 июля 2022 . Получено 26 июня 2022 .
  4. ^ Фэн-сюн Сю, Томас Анантараман, Мюррей Кэмпбелл и Андреас Новатчик. «Шахматная машина-гроссмейстер». Scientific American. Октябрь 1990 г.
  5. ^ Computer-schach & Spiele позже начали использовать английское слово «engine», например, 1997#6 при описании Fritz или Hiarcs .
  6. ^ "Истинная ценность шахматного программного обеспечения". Computer Chess Reports. 1992-3. том 3, № 2, стр. 22
  7. ^ "История проекта XBoard". Tim-mann.org . Архивировано из оригинала 2018-11-30 . Получено 2018-11-29 .
  8. ^ "Standard: Portable Game Notation Specification and Implementation Guide" (TXT) . Thechessdrum.net . Архивировано из оригинала 2007-08-22 . Получено 2022-06-26 .
  9. ^ Computer-schach & Spiele.
  10. ^ "Home - Lokasoft - Home of ChessPartner". Lokasoft.nl . Архивировано из оригинала 26 июня 2022 . Получено 26 июня 2022 .
  11. ^ http://tb7.chessok.com Архивировано 01.12.2020 на сайте Wayback Machine Lomonosov, позволяющем зарегистрированным пользователям получить доступ к таблице из 7 фигур и форуму с найденными позициями.
  12. ^ «Кто победит в этой ситуации? (шахматная головоломка)» Архивировано 11 ноября 2020 г. на Wayback Machine Пример шахматной позиции, найденной в базе шахматных таблиц Ломоносова.
  13. ^ "Stockfish Testing Framework". Tests.stockfishchess.org . Архивировано из оригинала 22 марта 2014 . Получено 7 марта 2014 .
  14. ^ "Get Involved". Stockfishchess.org . Архивировано из оригинала 16 июня 2013 . Получено 8 марта 2014 .
  15. ^ Костальба, Марко (1 мая 2013 г.). "Fishtest Distributed Testing Framework". Talkchess.com . Архивировано из оригинала 19 апреля 2014 г. . Получено 18 апреля 2014 г. .
  16. ^ "Stockfish Testing Framework - Users". Test.stockfishchess.org . Архивировано из оригинала 25 июня 2018 г. . Получено 17 июня 2017 г. .
  17. ^ "Github - AndyGrant/OpenBench: OpenBench - это распределенная среда тестирования SPRT для шахматных движков". Github.com . Архивировано из оригинала 23 декабря 2021 г. . Получено 23 декабря 2021 г. .
  18. ^ "OpenBench". Chess.grantnet.us . Архивировано из оригинала 2022-02-16 . Получено 2022-02-16 .
  19. ^ "ChessOK Shop, Software, Training, Equipment, Books". Shop.chessok.com . Архивировано из оригинала 26 июня 2022 . Получено 26 июня 2022 .
  20. ^ ab "Бесплатный шахматный графический пользовательский интерфейс (GUI) Arena для шахматных движков". Архивировано из оригинала 2007-03-14 . Получено 2018-11-29 .
  21. ^ "mizarchessengine.com". Архивировано из оригинала 29 января 2013 года . Получено 25 сентября 2016 года .
  22. ^ "Противоречие в шахматном движке на chessvibes.com, получено 28/May/2010". Архивировано из оригинала 2010-05-28 . Получено 2010-05-28 .
  23. ^ "Оценка". Архивировано из оригинала 2011-08-11 . Получено 2010-12-18 .
  24. ^ "Рыбка дисквалифицирована и отстранена от участия в чемпионате мира по шахматам среди компьютерных программ | ChessVibes". Архивировано из оригинала 2012-03-02 . Получено 2011-06-30 .
  25. ^ Риис, д-р Сёрен (2 января 2012 г.). "Грубая ошибка правосудия в компьютерных шахматах (часть первая)". Chessbase News . Архивировано из оригинала 7 января 2012 г. Получено 19 февраля 2012 г.
  26. ^ "Free Houdini бьет коммерческую Rybka 23.5-16.5". Chessvibes. 10 февраля 2010. Архивировано из оригинала 10 апреля 2014. Получено 25 октября 2013 .
  27. ^ Команда Stockfish (21.07.2021). «Наш иск против ChessBase». Stockfishchess.org . Архивировано из оригинала 21.07.2021 . Получено 18.08.2021 .
  28. ^ "CCRL 40/15, 2m1s и FRC 40/2 списки обновлены (21-10-2023)". talkchess.com . Архивировано из оригинала 15 июня 2024 . Получено 22 октября 2023 .
  29. ^ "Экспериментальные тестовые запуски Stockfish / Torch". talkchess.com . Архивировано из оригинала 15 июня 2024 года . Получено 29 мая 2024 года .
  30. ^ "CEGT Testers". Cegt.net . Архивировано из оригинала 24 мая 2022 г. Получено 26 июня 2022 г.
  31. ^ Рэй Бэнкс (Modern Times). "ShashChess". talkchess.com . Архивировано из оригинала 30 апреля 2024 года . Получено 30 апреля 2024 года .
  32. ^ "Nolot test suite". Архивировано из оригинала 2007-08-17 . Получено 2007-08-04 .
  33. ^ "BT2450 test suite". Архивировано из оригинала 2007-09-07 . Получено 2007-10-10 .
  34. ^ Розенбум, Манфред. "Rebel Century FAQ: 3. Использование Rebel". Архивировано из оригинала 3 марта 2016 года . Получено 25 сентября 2016 года .
  35. ^ "БЛЕСТЯЩИЙ ТЕСТ (2 мин/ход)". Talkchess.com . Архивировано из оригинала 26 июня 2022 . Получено 26 июня 2022 .
  36. ^ "Strategic Test Suite". Sites.google.com . Архивировано из оригинала 18 января 2017 г. Получено 26 июня 2022 г.
  37. ^ "Uups - Oops: Link-Fehler und URL-Umleitungen" . Glarean-magazin.ch . 10 октября 2010 г. Архивировано из оригинала 15 июня 2024 г. . Проверено 26 июня 2022 г.
  38. ^ Хардинг, Т. (2002). 64 Великие шахматные партии , Дублин: Chess Mail. ISBN 0-9538536-4-0
  39. ^ "Lucas Chess". Lucaschess.pythonanywhere.com . Архивировано из оригинала 6 июля 2022 г. Получено 26 июня 2022 г.
  40. ^ "Сайт Аарта Бика". Aartbik.com . Архивировано из оригинала 2018-11-20 . Получено 29-11-2018 .
  41. ^ "Chess PGN Master". Pgnmaster.kalab.com . Архивировано из оригинала 21 января 2021 г. . Получено 26 июня 2022 г. .
  42. ^ "Архивная копия". Архивировано из оригинала 2018-12-10 . Получено 2018-11-29 .{{cite web}}: CS1 maint: archived copy as title (link)
  43. ^ "Computer_chess:wiki:lists:gui_protocol_support_list - Computer Chess Wiki". Computer-chess.org . Архивировано из оригинала 2018-11-30 . Получено 2018-11-29 .

Внешние ссылки