В компьютерных шахматах , А шахматный движок представляет собой компьютерную программу , которая анализирует шахматы или вариант шахмат позиции, и генерирует движение или список шагов , которые он рассматривает как сильнейший. [1] Шахматный движок обычно представляет собой серверную часть с интерфейсом командной строки без графики или окон . Движки обычно используются с внешним интерфейсом , оконным графическим пользовательским интерфейсом, таким как Chessbase или WinBoard.с которым пользователь может взаимодействовать с помощью клавиатуры, мыши или сенсорного экрана. Это позволяет пользователю играть против нескольких движков, не изучая новый пользовательский интерфейс для каждого, и позволяет различным движкам играть друг против друга. Многие шахматные движки теперь доступны для мобильных телефонов и планшетов, что делает их еще более доступными.
История
Значение термина «шахматный двигатель» со временем изменилось. В 1986 году Линда и Тони Шерцеры представили свою программу Bebe на 4-м чемпионате мира по компьютерным шахматам, запустив ее на Chess Engine, своей торговой марке компьютерного оборудования для шахмат [2], производимого и продаваемого их компанией Sys-10, Inc. . [3] к 1990 году разработчики Deep Blue , Фэн-сюн Сюй и Мюррей Кэмпбелл , сочиняли дать их запрограммировать «Поисковик» , по- видимому , ссылаясь на программное обеспечение , а не аппаратное обеспечение. [4] В декабре 1991, Computer-Schach & Spiele называют Chessbase «ы недавно выпустил Фриц как„Schach-мотор,“немецкого перевод на» шахматный движок. [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]
К середине 2000-х двигатели стали настолько мощными, что могли побеждать даже лучших игроков-людей. В 2005 году Майкл Адамс , в то время входивший в десятку лучших игроков мира, был полностью побежден « Гидрой» со счетом 5½ - ½ , сделав ничью лишь в одной из шести игр. [9] Сопоставления между человеком и движком сейчас редки, и движки все чаще рассматриваются как инструменты для анализа, а не как противники.
Протокол интерфейса
Обычные движки 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 года прекратила выпуск нового программного обеспечения. [10] Более давний протокол движка использовался голландской компанией Lokasoft [11], которая в конечном итоге взяла на себя маркетинг Rebel Эда Шредера .
Увеличение силы
Шахматные двигатели постоянно увеличивают игровую силу. Частично это связано с увеличением вычислительной мощности, которая позволяет производить вычисления на все большую глубину за заданное время. Кроме того, были усовершенствованы методы программирования, позволяющие движкам быть более избирательными в строках, которые они анализируют, и лучше понимать позицию. Шахматный движок часто использует обширную ранее вычисленную дебютную «книгу», чтобы увеличить свою игровую силу в течение первых нескольких ходов, возможно, до 20 или более в глубоко проанализированных линиях. [ необходима цитата ]
Некоторые шахматные движки поддерживают базу данных шахматных позиций вместе с ранее вычисленными оценками и лучшими ходами, по сути, своего рода «словарь» повторяющихся шахматных позиций. Поскольку эти позиции вычисляются заранее, движок просто выполняет одно из указанных движений в базе данных, тем самым экономя время вычислений, что приводит к более сильному и быстрому воспроизведению.
Некоторые шахматные движки используют эндшпильные настольные базы, чтобы увеличить свою игровую силу во время эндшпиля . База эндшпиля включает все возможные эндшпильные позиции с небольшим количеством материала. Каждая позиция окончательно определяется как победа, поражение или ничья для игрока, чья очередь делать ход, и количество ходов до конца с лучшей игрой обеих сторон. Tablebase определяет для каждой позиции ход, который быстрее всех выиграет против оптимальной защиты, или ход, который проиграет быстрее всего против оптимального нападения. Такие столовые базы доступны для всех шахматных эндшпилей с семью или менее фигурами (исключаются тривиальные позиции в эндшпиле, например, шесть белых фигур против одинокого черного короля ). [12] [13]
Когда маневрирование в концовке для достижения необратимого улучшения требует больше ходов, чем горизонт вычислений шахматного движка, движок не гарантирует, что найдет лучший ход без использования таблицы эндшпиля, и во многих случаях может потерпеть неудачу. правило пятьдесят-движения в результате. Многие двигатели используют постоянный мозг (продолжающий считать во время хода противника) как метод увеличения своей силы.
Распределенные вычисления также используются для улучшения программного кода шахматных движков. В 2013 году разработчики шахматной программы Stockfish начали использовать распределенные вычисления для улучшения программного кода. [14] [15] [16] По состоянию на июнь 2017 г.[Обновить], в общей сложности более 745 лет процессорного времени было использовано для проведения более 485 миллионов шахматных партий, а результаты используются для небольших и постепенных улучшений программного обеспечения для игры в шахматы. [17]
Ограничение мощности двигателя
К концу 1990-х топ-движки стали настолько сильными, что у немногих игроков был шанс выиграть с ними игру. Чтобы дать игрокам больше шансов, движки начали включать настройки, позволяющие регулировать или ограничивать их силу. В 2000 году, когда Стефан Мейер-Кален и Франц Хубер выпустили протокол универсального шахматного интерфейса , они включили параметры uci_limitstrength и uci_elo, позволяющие авторам движков предлагать различные уровни, оцененные в соответствии с рейтингом Elo , который откалиброван одним из рейтинговых списков. Большинство графических интерфейсов для движков UCI позволяют пользователям устанавливать этот рейтинг Elo в меню. Даже двигатели, которые не приняли этот параметр, иногда будут иметь регулируемый параметр силы (например, Stockfish 11). Двигатели с параметром uci_elo включают Houdini , Fritz 15–16, Rybka , Shredder , Hiarcs , Junior , Zappa и Sjeng . Графические интерфейсы пользователя, такие как Shredder , Chess Assistant , Convekta Aquarium, [18] Hiarcs Chess Explorer или Martin Blume's Arena [19], имеют раскрывающиеся меню для установки параметра uci_elo движка. Графический интерфейс семейства Fritz, Chess Assistant и Aquarium также имеют независимые средства ограничения мощности движка, очевидно, на основе его способности генерировать ранжированные списки ходов (называемые multipv для «принципиальной вариации»).
Сравнения
Турниры
Результаты компьютерных турниров дают представление об относительной силе шахматных движков. Однако в турнирах не проводится статистически значимое количество игр для точного определения силы. Фактически, количество игр, которые необходимо сыграть между довольно равномерно подобранными движками, чтобы достичь значимости, исчисляется тысячами и, следовательно, нецелесообразно в рамках турнира. [20] Большинство турниров также допускают любые типы оборудования, поэтому сравниваются только комбинации движка / оборудования.
Исторически сложилось так, что коммерческие программы были самыми сильными двигателями. Если любительский движок выигрывает турнир или иным образом показывает хорошие результаты (например, Zappa в 2005 году), он быстро коммерциализируется. Звания, полученные в этих турнирах, имеют большой престиж для выигрышных программ и, таким образом, используются в маркетинговых целях.
Текущие турниры включают:
- Чемпионат Top Chess Engine Championship (TCEC)
- Чемпионат мира по компьютерным шахматам (WCCC)
- Чемпионат мира по компьютерным скоростным шахматам
- Chess.com Чемпионат по компьютерным шахматам (СССС)
Исторические турниры включают:
- Открытый чемпионат Нидерландов по компьютерным шахматам
- Интернет-турнир по компьютерным шахматам (CCT)
- Международный чемпионат по компьютерным шахматам в Падерборне
- Чемпионат Северной Америки по компьютерным шахматам
Рейтинги
Списки рейтингов шахматных двигателей предназначены для получения статистически значимых показателей относительной мощности двигателей. Эти списки позволяют играть в несколько игр между движками на стандартных аппаратных платформах, так что различия процессоров не учитываются. Некоторые также стандартизируют вводные книги, пытаясь измерить только разницу в силе двигателей. Эти списки предоставляют не только рейтинг, но и пределы погрешности для данных рейтингов. Кроме того, рейтинговые списки обычно играют в игры непрерывно, публикуя много обновлений в год, по сравнению с турнирами, которые проводятся только ежегодно. [ необходима цитата ]
Существует ряд факторов, которые меняются в зависимости от рейтинговых списков шахматных движков:
- Контроль времени. Более длительный контроль времени, например 40 ходов за 120 минут, лучше подходит для определения силы игры в турнире, но также делает тестирование более трудоемким.
- Используемое оборудование. Более быстрое оборудование с большим объемом памяти приводит к более сильной игре.
- 64-битное (а не 32-битное) оборудование и операционные системы отдают предпочтение программам на битовой плате.
- Многопроцессорное и однопроцессорное оборудование.
- Параметры обдумывания (спекулятивный анализ, пока оппонент думает), также известный как постоянный мозг.
- Размеры таблицы транспонирования.
- Открытие настроек книги.
Эти различия влияют на результаты и затрудняют прямое сравнение рейтинговых списков.
Список рейтингов | Контроль времени (ходов / минут) | Год начался | Последнее обновление | Записи двигателя / платформы | Игры играли | Тройка лучших двигателей | Рейтинг |
---|---|---|---|---|---|---|---|
CCRL [21] | 40/40 [a] Обдумывать ВЫКЛ. | 2005 г. | 7 ноября 2020 г. | 2 732 | 1,189,229 |
|
|
CEGT [22] | 40/20 [b] Обдумывать ВЫКЛ. | 2006 г. | 8 ноября 2020 г. | 1875 г. | 1,401,865 |
|
|
IPON [23] | 5 м. + 3 с. ~ 16 мин. / Игра. Обдумывание ВКЛ. | 2006 г. | 15 июля 2018 г. | 208 | 546 430 |
|
|
SSDF [24] | Турнир 40/120 (+20 ходов / час) Подумать НА? | 1984 | 11 июля 2020 | 391 | 153 481 |
|
|
- Обратите внимание, что во всех списках в приведенной выше таблице учитываются только лучшие записи для данного семейства двигателей. Это сделано для обеспечения максимального разнообразия.
Эти рейтинги, хотя и рассчитываются с использованием системы Эло (или аналогичных методов оценки), не имеют прямого отношения к рейтингам Эло ФИДЕ или другим рейтингам шахматных федераций игроков-людей. За исключением некоторых игр «человек против машин», которые SSDF организовал много лет назад (когда движки были далеки от сегодняшней силы), нет никакой калибровки между этими рейтинговыми списками и пулами игроков. Следовательно, важными результатами являются ранги и различия между рейтингами, а не абсолютные значения. Кроме того, каждый список калибрует свой Эло другим методом. Следовательно, нельзя проводить сравнения Эло между списками.
Во многих рейтинговых списках отсутствует IPPOLIT и его производные. Хотя это очень сильный и открытый исходный код , есть утверждения от интересов коммерческого программного обеспечения, что они были получены из дизассемблированного двоичного кода Рыбки . [25] Из-за разногласий все эти движки были занесены в черный список из многих турниров и рейтинговых списков. Рыбку, в свою очередь, обвинили в том, что она основана на Fruit , [26], а в июне 2011 года ICGA официально заявила, что Рыбка произошла от Fruit and Crafty, и запретила Рыбке участвовать в чемпионате мира по компьютерным шахматам Международной ассоциации компьютерных игр и отменила ее предыдущие победы ( 2007, 2008, 2009 и 2010). [27] ICGA получила некоторую критику за это решение. [28] Рыбка до сих пор входит в несколько рейтинговых списков общества. [ какой? ]
Рейтинги лучших шахматных движков улучшаются примерно на 20 ELO в год с момента появления рейтингового списка CCRL в 2005 году, и ежегодный прирост, похоже, не уменьшается. [ необходима цитата ] С дебютом в декабре 2017 года шахматного движка AlphaZero , основанного на его впечатляющем успехе против Stockfish 8, который дал ему спекулятивный рейтинг примерно на 150 пунктов выше или 3575, был поднят вопрос о том, какой будет рейтинг ELO двигатель, который отлично играет в шахматы. Статистик и шахматный мастер Кен Риган оценивает, что для общего количества игроков международного уровня (ФИДЕ) это число может составлять 3600 ELO, хотя это число напрямую не сопоставимо с рейтингом движка. [ необходима цитата ] Тем не менее, несколько человеко-машинных матчей, сыгранных с 1997 года, привели теоретиков [ какие? ], чтобы признать, что, по-видимому, произошло некоторое снижение рейтингов двигателей по сравнению с человеческими шкалами ELO, составившее около 100 баллов ELO. Это означает, например, что для достижения сопоставимой игры человек должен иметь рейтинг на 100 очков ELO сильнее, чем двигатель. [ необходима цитата ]
Наборы тестов
Двигатели можно проверить, измерив их производительность на определенных позициях. Типичным является использование наборов тестов, где для каждой данной позиции нужно найти один лучший ход. Эти позиции могут быть ориентированы на позиционную, тактическую или эндшпильную игру. Nolot набор тестов, например, сосредотачивается на глубоких жертвоприношений. [29] Тестовые наборы BT2450 и BT2630 измеряют тактические возможности шахматного движка и использовались REBEL . [30] [31] Существует также общий набор тестов под названием Brilliancy, составленный в основном из книги «Как переоценить свою шахматную книгу» . [32] Набор стратегических тестов (STS) проверяет стратегическую силу двигателя. [33] Другой современный набор тестов - Nightmare II, который содержит 30 шахматных головоломок. [34] [ нерелевантная цитата ]
Каспаров против мира (игра в шахматы с помощью компьютера)
В 1999 году Гарри Каспаров играл в шахматы « Каспаров против мира » по Интернету , устроенный в MSN Gaming Zone . Обе стороны использовали компьютерную (шахматную) помощь. В «Мировой команде» приняли участие более 50 000 человек из более чем 75 стран, которые приняли решение о своих действиях большинством голосов . Игра длилась четыре месяца и закончилась после 62-го хода Каспарова, который объявил о принудительном мате в 28 ходах, найденных компьютерной программой Deep Junior . Избиратели сборной мира подали в отставку 22 октября. После игры Каспаров сказал: «Это величайшая игра в истории шахмат. Огромное количество идей, сложность и вклад, который она внесла в шахматы, делают ее самой важной. игра, в которую когда-либо играли ". [35]
Двигатели для шахматных вариантов
Некоторые шахматные движки были разработаны для игры в шахматные варианты с добавлением необходимого кода для моделирования нестандартных шахматных фигур или для анализа игры на нестандартных досках. 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 [36], еще один бесплатный графический интерфейс для Linux и Windows. Лукас Монж вышел на поле с бесплатным графическим интерфейсом Lucas Chess. [37] Все три могут работать как с двигателями UCI, так и с Winboard.
На Android Аарт Бик выпустил Chess для Android [38], еще один бесплатный графический интерфейс, а Chess PGN Master [39] Герхарда Калаба и Droidfish Питера Остерлунда [40] также могут служить графическими интерфейсами для движков.
В Computer Chess Wiki перечислены многие шахматные графические интерфейсы. [41]
Смотрите также
- Варианты шахмат
- Компьютерные шахматы
- Заочные шахматы
- Интернет-шахматный сервер
- Список шахматного софта
Заметки
- ^ Также доступно: 40 ходов за 4 минуты.
- ^ Также доступно: 40 ходов за 4 минуты, 40 ходов за 120 минут.
Рекомендации
- ^ blog.chess.com Создание шахматного движка с нуля (Часть 1: Основы) , дата ссылки 28 июня 2012 г.
- ^ https://www.game-ai-forum.org/icga-tournaments/tournament.php?id=65
- ^ http://www.sys-10.com/
- ^ Фэн-сюн Hsu, Томас Анантараман, Мюррей Кэмпбелл и Андреас Nowatzyk. «Шахматная машина гроссмейстера». Scientific American. Октябрь 1990 г.
- ^ Computer-schach & Spiele позже начали использовать английское слово «двигатель», например. 1997 # 6 при описании Фрица или Хиарка .
- ^ «Истинная ценность шахматного программного обеспечения». Компьютерные шахматные отчеты. 1992-3. т. 3 шт. 2 стр.22
- ^ http://tim-mann.org/history.html
- ^ http://www.thechessdrum.net/PGN_Reference.txt
- ^ «Адамс 0,5 - Гидра 5,5» . Chessbase.com . Проверено 17 декабря 2011 .
- ^ Computer-schach & Spiele.
- ^ http://www.lokasoft.nl/
- ^ http://tb7.chessok.com Сайт Ломоносова, позволяющий зарегистрированным пользователям получить доступ к базе таблиц из 7 частей, и форум с найденными позициями.
- ^ «Кто от этого выиграет? (Шахматная головоломка)» Пример шахматной позиции, найденной из базы шахматных таблиц Ломоносова.
- ^ «Система тестирования Stockfish» . tests.stockfishchess.org . Проверено 7 марта 2014 года .
- ^ «Примите участие» . stockfishchess.org . Проверено 8 марта 2014 .
- ^ Костальба, Марко (1 мая 2013 г.). «Фреймворк распределенного тестирования Fishtest» . talkchess.com . Проверено 18 апреля 2014 года .
- ^ «Система тестирования Stockfish - Пользователи» . test.stockfishchess.org . Проверено 17 июня 2017 года .
- ^ https://shop.chessok.com/
- ^ «Архивная копия» . Архивировано из оригинала на 2007-03-14 . Проверено 29 ноября 2018 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ "mizarchessengine.com" . Проверено 25 сентября 2016 года .
- ^ «CCRL 40/40 - Указатель» . 5 ноября 2016 . Проверено 11 ноября 2020 года .
- ^ «CEGT 40/20» . Большой турнир "Шахматные паровозы" . 7 февраля 2016 . Проверено 11 ноября 2020 года .
- ^ «IPON» . Инго Бауэр. 16 ноября 2016 года Архивировано из оригинального 25 -го января 2019 года . Проверено 3 февраля 2016 года .
- ^ «Рейтинговый список SSDF» . ssdf.bosjo.net . Проверено 11 ноября 2020 года .
- ^ «Споры о шахматных двигателях на сайте chessvibes.com, получено 28 мая 2010 г.» . Архивировано из оригинала на 2010-05-28 . Проверено 28 мая 2010 .
- ^ «Оценка» . Архивировано из оригинала на 2011-08-11 . Проверено 18 декабря 2010 .
- ^ «Рыбка дисквалифицирована и исключена из чемпионата мира по компьютерным шахматам | ChessVibes» . Архивировано из оригинала на 2012-03-03 . Проверено 30 июня 2011 .
- ^ Риис, доктор Сорен (2 января 2012 г.). «Грубая ошибка правосудия в компьютерных шахматах (часть первая)» . Новости Chessbase . Проверено 19 февраля 2012 года .
- ^ «Набор тестов Нолот» . Архивировано из оригинала на 2007-08-17 . Проверено 4 августа 2007 .
- ^ «Набор тестов BT2450» . Архивировано из оригинала на 2007-09-07 . Проверено 10 октября 2007 .
- ^ Розенбум, Манфред. "Rebel Century FAQ: 3. Использование Rebel" . Проверено 25 сентября 2016 года .
- ^ Brilliancy Suite Форум TalkChess
- ^ [1] Набор стратегических тестов
- ^ [2] Кошмар II
- Перейти ↑ Harding, T. (2002). 64 Великие шахматные игры , Дублин: Chess Mail. ISBN 0-9538536-4-0 .
- ^ «Архивная копия» . Архивировано из оригинала на 2007-03-14 . Проверено 29 ноября 2018 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ https://lucaschess.pythonanywhere.com/
- ^ http://www.aartbik.com/android.php
- ^ http://pgnmaster.kalab.com/
- ^ http://hem.bredband.net/petero2b/droidfish/index.html
- ^ http://computer-chess.org/doku.php?id=computer_chess:wiki:lists:gui_protocol_support_list
Внешние ссылки
- Вводная книга полиглотов Chess Engine для графического интерфейса WinBoard - универсальная (обучающая) книга открытия полиглотов Chess Engine для графического интерфейса WinBoard.
- Вики по программированию шахмат