Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В компьютерных шахматах , А шахматный движок представляет собой компьютерную программу , которая анализирует шахматы или вариант шахмат позиции, и генерирует движение или список шагов , которые он рассматривает как сильнейший. [1] Шахматный движок обычно представляет собой серверную часть с интерфейсом командной строки без графики или окон . Движки обычно используются с внешним интерфейсом , оконным графическим пользовательским интерфейсом, таким как Chessbase или WinBoard.с которым пользователь может взаимодействовать с помощью клавиатуры, мыши или сенсорного экрана. Это позволяет пользователю играть против нескольких движков, не изучая новый пользовательский интерфейс для каждого, и позволяет разным движкам играть друг против друга. В последние годы появились шахматные движки для мобильных телефонов и планшетов, что упрощает их использование. В список входят шахматные движки, такие как Stockfish, Komodo, Texel, Bagatur и многие другие.

История [ править ]

Значение словосочетания «шахматный двигатель» со временем изменилось. В 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 . Ответ Тима лег в основу того, что стало известно как протокол обмена данными с шахматным движком или движок Winboard, первоначально являвшийся подмножеством интерфейса командной строки GNU Chess . [7]

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

Протокол интерфейса [ править ]

Обычные движки 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 начал включатьДвижки универсального шахматного интерфейса (UCI) в своих игровых программах, таких как Komodo , Houdini , Fritz 15–16 и Rybka, вместо того, чтобы преобразовывать их в движки Chessbase.

В 2000 году Стефан Мейер-Кален и Франц Хубер выпустили Универсальный шахматный интерфейс , более подробный протокол, который представил более широкий набор функций. Вскоре после этого 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 или более ходов в глубоко проанализированных линиях. [ необходима цитата ]

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

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

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

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

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

К концу 1990-х годов топ-движки стали настолько сильными, что у немногих игроков был шанс выиграть с ними игру. Чтобы дать игрокам больше шансов, движки начали включать настройки, позволяющие регулировать или ограничивать их силу. В 2000 году, когда Стефан Мейер-Кален и Франц Хубер выпустили протокол универсального шахматного интерфейса , они включили параметры uci_limitstrength и uci_elo, позволяющие авторам движков предлагать различные уровни, оцениваемые в соответствии с рейтингом Elo , калиброванным одним из рейтинговых списков. Большинство графических интерфейсов для движков UCI позволяют пользователям устанавливать этот рейтинг Elo в меню. Даже двигатели, которые не приняли этот параметр, иногда будут иметь регулируемый параметр силы (например, Stockfish 11). Двигатели, у которых есть параметр uci_elo, включаютГудини , Фриц 15–16, Рыбка , Шреддер , Хиаркс , Джуниор , Заппа и Сьенг . Графические интерфейсы пользователя, такие как Shredder , Chess Assistant , Convekta Aquarium, [17] Hiarcs Chess Explorer или Martin Blume's Arena [18], имеют раскрывающиеся меню для установки параметра uci_elo движка. Графический интерфейс семейства Fritz, Chess Assistant и Aquarium также имеют независимые средства ограничения мощности движка, очевидно, на основе способности движка генерировать ранжированные списки ходов (называемые multipv для «принципиальной вариации»).

Сравнения [ править ]

Турниры [ править ]

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

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

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

  • Чемпионат Top Chess Engine Championship (TCEC)
  • Чемпионат мира по компьютерным шахматам (WCCC)
    • Чемпионат мира по компьютерным скоростным шахматам
  • Chess.com Чемпионат по компьютерным шахматам (СССС)

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

  • Открытый чемпионат Нидерландов по компьютерным шахматам
  • Интернет-турнир по компьютерным шахматам (CCT)
  • Международный чемпионат по компьютерным шахматам в Падерборне
  • Чемпионат Северной Америки по компьютерным шахматам

Рейтинги [ править ]

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

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

  • Контроль времени. Более длительный контроль времени, например, 40 ходов за 120 минут, лучше подходит для определения силы игры в турнире, но также делает тестирование более трудоемким.
  • Используемое оборудование. Более быстрое оборудование с большим объемом памяти приводит к более сильной игре.
  • 64-битное (а не 32-битное) оборудование и операционные системы отдают предпочтение программам на битовой плате
  • Многопроцессорное и однопроцессорное оборудование.
  • Параметры обдумывания (спекулятивный анализ, пока оппонент думает), также известный как постоянный мозг.
  • Размеры таблиц транспозиции.
  • Открытие настроек книги.

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

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

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

Во многих рейтинговых списках отсутствует IPPOLIT и его производные. Хотя это очень сильный и открытый исходный код , есть утверждения от интересов коммерческого программного обеспечения, что они были получены из дизассемблированного двоичного кода Рыбки . [24] Из-за разногласий все эти движки были занесены в черный список из многих турниров и рейтинговых списков. Рыбка в свою очередь, обвиняют в том , на основе фруктов , [25] , а в июне 2011 года ICGA официально утверждал Rybka был получен из фруктов и Crafty и запретил Рыбка с чемпионата Международной ассоциации компьютерных игр World Computer Chess, и отзывается на свои предыдущие победы ( 2007, 2008, 2009 и 2010). [26]ICGA подверглась критике за это решение. [27] Рыбка до сих пор входит в несколько рейтинговых списков общества. [ какой? ]

Рейтинги лучших шахматных движков улучшаются примерно на 20 ELO в год с момента появления рейтингового списка CCRL в 2005 году, и ежегодный прирост, похоже, не уменьшается. [ необходима цитата ] С дебютом в декабре 2017 года шахматного движка AlphaZero , основанного на его впечатляющем успехе против Stockfish 8, который дал ему спекулятивный рейтинг примерно на 150 пунктов выше или 3575, был поднят вопрос о том, какой будет рейтинг ELO двигатель, который отлично играет в шахматы. Статистик и шахматный мастер Кен Риган подсчитал, что среди всех игроков международного сообщества (ФИДЕ) это число может составлять 3600 ELO, хотя это число напрямую не сопоставимо с рейтингом движков. [ необходима цитата ]Однако несколько матчей человек-машина, сыгранных с 1997 года, привели теоретиков [ какие? ], чтобы признать, что некоторое снижение рейтингов двигателей, по-видимому, произошло по сравнению с человеческими шкалами ELO, составив около 100 баллов ELO. Это означает, например, что для достижения сопоставимой игры человек должен иметь рейтинг на 100 очков ELO сильнее, чем двигатель. [ необходима цитата ]

Наборы тестов [ править ]

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

Каспаров против мира (игра в шахматы с помощью компьютера) [ править ]

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

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

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

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

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

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 [35], еще один бесплатный графический интерфейс для Linux и Windows. Лукас Монж вышел на поле с бесплатным графическим интерфейсом Lucas Chess. [36] Все три могут работать как с двигателями UCI, так и с Winboard.

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

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

См. Также [ править ]

  • Варианты шахмат
  • Компьютерные шахматы
  • Заочные шахматы
  • Интернет-шахматный сервер
  • Список шахматного софта

Примечания [ править ]

  1. ^ Также доступно: 40 ходов за 4 минуты
  2. ^ Также доступно: 40 ходов за 4 минуты, 40 ходов за 120 минут.

Ссылки [ править ]

  1. ^ blog.chess.com Создание шахматного движка с нуля (Часть 1: Основы) , дата ссылки 28 июня 2012 г.
  2. ^ https://www.game-ai-forum.org/icga-tournaments/tournament.php?id=65
  3. ^ http://www.sys-10.com/
  4. ^ Фэн-сюн Hsu, Томас Анантараман, Мюррей Кэмпбелл и Андреас Nowatzyk. «Шахматная машина гроссмейстера». Scientific American. Октябрь 1990 г.
  5. ^ Computer-schach & Spiele позже начали использовать английское слово «двигатель», например. 1997 # 6 при описании Фрица или Хиаркса .
  6. ^ «Истинная ценность шахматного программного обеспечения». Компьютерные шахматные отчеты. 1992-3. т. 3 шт. 2 стр.22
  7. ^ http://tim-mann.org/history.html
  8. ^ http://www.thechessdrum.net/PGN_Reference.txt
  9. ^ Computer-schach & Spiele.
  10. ^ http://www.lokasoft.nl/
  11. ^ http://tb7.chessok.com Веб-сайт Ломоносова, позволяющий зарегистрированным пользователям получить доступ к базе таблиц из 7 частей, и форум с найденными позициями.
  12. ^ «Кто от этого выиграет? (Шахматная головоломка)» Пример шахматной позиции, найденной из базы шахматных таблиц Ломоносова.
  13. ^ "Структура тестирования Stockfish" . tests.stockfishchess.org . Проверено 7 марта 2014 .
  14. ^ «Примите участие» . stockfishchess.org . Проверено 8 марта 2014 года .
  15. ^ Costalba, Marco (1 мая 2013). «Фреймворк распределенного тестирования Fishtest» . talkchess.com . Проверено 18 апреля 2014 года .
  16. ^ «Stockfish Testing Framework - Пользователи» . test.stockfishchess.org . Дата обращения 17 июня 2017 .
  17. ^ https://shop.chessok.com/
  18. ^ "Архивная копия" . Архивировано из оригинала на 2007-03-14 . Проверено 29 ноября 2018 .CS1 maint: archived copy as title (link)
  19. ^ "mizarchessengine.com" . Проверено 25 сентября 2016 года .
  20. ^ "CCRL 40/40 - Указатель" . 5 ноября 2016 . Проверено 11 ноября 2020 года .
  21. ^ "CEGT 40/20" . Большой турнир по шахматам . 7 февраля 2016 . Проверено 11 ноября 2020 года .
  22. ^ "IPON" . Инго Бауэр. 16 ноября 2016 года Архивировано из оригинального 25 -го января 2019 года . Проверено 3 февраля, 2016 .
  23. ^ «Рейтинг SSDF» . ssdf.bosjo.net . Проверено 11 ноября 2020 года .
  24. ^ "Споры о шахматном движке на сайте chessvibes.com, получено 28 мая 2010 г." . Архивировано из оригинала на 2010-05-28 . Проверено 28 мая 2010 .
  25. ^ «Оценка» . Архивировано из оригинала на 2011-08-11 . Проверено 18 декабря 2010 .
  26. ^ "Рыбка дисквалифицирована и исключена из чемпионата мира по компьютерным шахматам | ChessVibes" . Архивировано из оригинала на 2012-03-03 . Проверено 30 июня 2011 .
  27. Риис, доктор Сорен (2 января 2012 г.). «Грубая ошибка правосудия в компьютерных шахматах (часть первая)» . Новости Chessbase . Проверено 19 февраля 2012 года .
  28. ^ "Набор тестов Нолот" . Архивировано из оригинала на 2007-08-17 . Проверено 4 августа 2007 .
  29. ^ "Набор тестов BT2450" . Архивировано из оригинала на 2007-09-07 . Проверено 10 октября 2007 .
  30. ^ Розенбум, Манфред. "Rebel Century FAQ: 3. Использование Rebel" . Проверено 25 сентября 2016 года .
  31. ^ Brilliancy Suite Форум TalkChess
  32. ^ [1] Набор стратегических тестов
  33. ^ [2] Кошмар II
  34. Перейти ↑ Harding, T. (2002). 64 Великие шахматные игры , Дублин: Chess Mail. ISBN 0-9538536-4-0 . 
  35. ^ "Архивная копия" . Архивировано из оригинала на 2007-03-14 . Проверено 29 ноября 2018 .CS1 maint: archived copy as title (link)
  36. ^ https://lucaschess.pythonanywhere.com/
  37. ^ http://www.aartbik.com/android.php
  38. ^ http://pgnmaster.kalab.com/
  39. ^ http://hem.bredband.net/petero2b/droidfish/index.html
  40. ^ http://computer-chess.org/doku.php?id=computer_chess:wiki:lists:gui_protocol_support_list

Внешние ссылки [ править ]

  • Вводная книга полиглотов Chess Engine для графического интерфейса WinBoard - универсальная (обучающая) книга открытия полиглотов Chess Engine для графического интерфейса WinBoard.
  • Вики по программированию шахмат