stringtranslate.com

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

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

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

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

История

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

В 1994 году Шей Бушинский работал над ранней версией своей программы для юниоров . Он хотел сосредоточиться на игровой части шахмат, а не на графике, и поэтому спросил Тима Манна, как ему заставить Джуниора общаться с Winboard . Ответ Тима лег в основу того, что стало известно как протокол связи Chess Engine или механизмы 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 в графический интерфейс своего движка и программы 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 году, когда Стефан Мейер-Кален и Франц Хубер выпустили протокол универсального шахматного интерфейса, они включили параметры uci_limitstrength и uci_elo, позволяющие авторам движка предлагать различные уровни, оцененные в соответствии с рейтингом Эло , откалиброванным одним из рейтинговых списков. Большинство графических интерфейсов для двигателей UCI позволяют пользователям устанавливать этот рейтинг Elo в меню. Даже двигатели, которые не приняли этот параметр, иногда имеют регулируемый параметр мощности (например, 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 для «принципиальной вариации»).

Сравнения

Турниры

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

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

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

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

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

Рейтинги

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

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

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

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

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

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

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

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

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

Наборы тестов

Двигатели можно тестировать, измеряя их производительность в определенных положениях. Типичным является использование наборов тестов, в которых для каждой заданной позиции нужно найти один лучший ход. Эти позиции могут быть ориентированы на позиционную, тактическую или эндшпильную игру. Например, набор тестов Nolot фокусируется на серьезных жертвах . [30] Наборы тестов BT2450 и BT2630 измеряют тактические возможности шахматного движка и используются компанией REBEL . [31] [32] Существует также общий набор тестов под названием Brilliancy, который в основном был составлен из книги «Как переоценить свою шахматную тетрадь» . [33] Пакет стратегических тестов (STS) проверяет стратегическую мощь двигателя. [34] Еще один современный набор тестов — Nightmare II, который содержит 30 шахматных головоломок. [35] [ неуместная цитата ]

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

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

Двигатели для шахматных вариантов

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

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

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

XBoard / Winboard был одним из первых графических пользовательских интерфейсов (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 в свои продукты. Шейн Хадсон разработал Информационную базу данных Шейна по шахматам , бесплатный графический интерфейс для Linux, Mac и Windows. Мартин Блюм разработал Arena, [20] еще один бесплатный графический интерфейс для Linux и Windows. Лукас Монж вышел на поле с бесплатным графическим интерфейсом Lucas Chess. [37] Все три могут работать с двигателями UCI и Winboard.

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

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

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

Примечания

Рекомендации

  1. ^ blog.chess.com Создание шахматного движка с нуля (Часть 1: Основы), дата ссылки 28 июня 2012 г.
  2. ^ «4-й чемпионат мира по компьютерным шахматам - Нью-Йорк, 1983 (турниры ICGA)» . Game-ai-forum.org .
  3. ^ «Новый SYS-10». Sys-10.com . Проверено 26 июня 2022 г.
  4. ^ Фэн-сюн Сюй, Томас Анантараман, Мюррей Кэмпбелл и Андреас Новацик. «Гроссмейстерская шахматная машина». Научный американец. Октябрь 1990 года.
  5. ^ Computer-schach & Spiele позже начали использовать английское слово «двигатель», например. 1997 № 6 при описании Фрица или Хиаркса .
  6. ^ «Истинная ценность шахматного программного обеспечения». Компьютерные шахматные отчеты. 1992-3. том. 3 нет. 2 р. 22
  7. ^ «История проекта XBoard» . Тим-манн.org .
  8. ^ «Стандарт: Спецификация и руководство по нотации портативных игр» (TXT) . Thechessdrum.net . Проверено 26 июня 2022 г.
  9. ^ Компьютерное обучение и Шпиле.
  10. ^ "Дом - Lokasoft - Дом ChessPartner" . Lokasoft.nl . Проверено 26 июня 2022 г.
  11. ^ http://tb7.chessok.com Веб-сайт Ломоносова, предоставляющий зарегистрированному пользователю доступ к базе таблиц из 7 частей и форуму с найденными позициями.
  12. ^ «Кто от этого выиграет? (шахматная головоломка)» Пример шахматной позиции, найденный в базе шахматных таблиц Ломоносова.
  13. ^ "Среда тестирования Stockfish" . Tests.stockfishchess.org . Проверено 7 марта 2014 г.
  14. ^ «Принимайте участие». Stockfishchess.org . Проверено 8 марта 2014 г.
  15. Костальба, Марко (1 мая 2013 г.). «Среда распределенного тестирования Fishtest». Talkchess.com . Проверено 18 апреля 2014 г.
  16. ^ «Среда тестирования Stockfish — Пользователи» . Test.stockfishchess.org . Проверено 17 июня 2017 г.
  17. ^ «Github — AndyGrant/OpenBench: OpenBench — это среда распределенного тестирования SPRT для шахматных движков» . Гитхаб.com . Проверено 23 декабря 2021 г.
  18. ^ "ОпенБенч". Chess.grantnet.us . Проверено 16 февраля 2022 г.
  19. ^ "Магазин ChessOK, программное обеспечение, обучение, оборудование, книги" . Магазин.chessok.com . Проверено 26 июня 2022 г.
  20. ^ ab «Бесплатный шахматный графический пользовательский интерфейс (GUI) Arena для шахматных движков» . Архивировано из оригинала 14 марта 2007 г. Проверено 29 ноября 2018 г.
  21. ^ "mizarchessengine.com" . Проверено 25 сентября 2016 г.
  22. ^ "Споры о шахматном движке на Chessvibes.com, получено 28 мая 2010 г." Архивировано из оригинала 28 мая 2010 г. Проверено 28 мая 2010 г.
  23. ^ «Оценка». Архивировано из оригинала 11 августа 2011 г. Проверено 18 декабря 2010 г.
  24. ^ «Рыбка дисквалифицирована и исключена из чемпионата мира по компьютерным шахматам | ChessVibes» . Архивировано из оригинала 2 марта 2012 г. Проверено 30 июня 2011 г.
  25. Риис, доктор Сорен (2 января 2012 г.). «Грубая судебная ошибка в компьютерных шахматах (часть первая)». Новости Chessbase . Проверено 19 февраля 2012 г.
  26. ^ "Свободный Гудини превосходит рекламную Рыбку 23,5-16,5" . Шессвибы. 10 февраля 2010 года. Архивировано из оригинала 10 апреля 2014 года . Проверено 25 октября 2013 г.
  27. ^ Команда Stockfish (21 июля 2021 г.). «Наш иск против ChessBase». Stockfishchess.org . Архивировано из оригинала 21 июля 2021 г. Проверено 18 августа 2021 г.
  28. ^ «Обновлены списки CCRL 40/15, 2m1s и FRC 40/2 (21 октября 2023 г.)» . talkchess.com . Проверено 22 октября 2023 г.
  29. ^ "Тестеры CEGT" . Cegt.net . Проверено 26 июня 2022 г.
  30. ^ "Набор тестов Nolot" . Архивировано из оригинала 17 августа 2007 г. Проверено 4 августа 2007 г.
  31. ^ «Набор тестов BT2450» . Архивировано из оригинала 7 сентября 2007 г. Проверено 10 октября 2007 г.
  32. ^ Розенбум, Манфред. «Часто задаваемые вопросы по Rebel Century: 3. Использование Rebel» . Проверено 25 сентября 2016 г.
  33. ^ «ТЕСТОВЫЙ НАБОР БРИЛЛИАНТИВНОСТИ (2 мин/ход)» . Talkchess.com . Проверено 26 июня 2022 г.
  34. ^ «Набор стратегических тестов». Сайты.google.com . Проверено 26 июня 2022 г.
  35. ^ "Uups - Oops: Link-Fehler und URL-Umleitungen" . Glarean-magazin.ch . 10 октября 2010 г. Проверено 26 июня 2022 г.
  36. ^ Хардинг, Т. (2002). 64 великие шахматные партии , Дублин: Chess Mail. ISBN 0-9538536-4-0
  37. ^ "Лукас Чесс". Lucaschess.pythonanywhere.com . Проверено 26 июня 2022 г.
  38. ^ "Сайт Аарта Бика" . Aartbik.com .
  39. ^ "Шахматный мастер PGN". Pgnmaster.kalab.com . Проверено 26 июня 2022 г.
  40. ^ «Архивная копия». Архивировано из оригинала 10 декабря 2018 г. Проверено 29 ноября 2018 г.{{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  41. ^ "Computer_chess:wiki:lists:gui_protocol_support_list - Компьютерная шахматная вики" . Компьютер-шахматы.org .

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