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

редактировать

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

Содержание
  • 1 История
  • 2 Протокол интерфейса
  • 3 Увеличение мощности
  • 4 Ограничение мощности двигателя
  • 5 Сравнения
    • 5.1 Турниры
    • 5.2 Рейтинги
    • 5.3 Наборы тестов
  • 6 Каспаров против мира (игра в шахматы с помощью компьютера)
  • 7 Двигатели для вариантов шахмат
  • 8 Графические пользовательские интерфейсы
  • 9 См. Также
  • 10 Примечания
  • 11 Ссылки
  • 12 Внешние ссылки
История

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

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

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

Протокол интерфейса

Обычные движки Winboard будут включать Crafty, ProDeo (на основе Rebel ), Chenard, Zarkov и Фаланга.

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

В 2000 году Стефан Мейер-Кален и Франц Хубер выпустили Универсальный шахматный интерфейс, более подробный протокол, который представил более широкий набор функций. Chessbase вскоре после этого отказалась от поддержки движков Winboard и добавила поддержку UCI в свои графические интерфейсы движка и программы Chessbase. В наши дни большинство лучших движков - это UCI: Stockfish, Komodo, Leela Chess Zero, Houdini, Fritz 15-16, Рыбка, Шреддер, Фрут, Криттер, Айвенго и Руффиан.

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

Эда Шредера.

Повышение силы

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

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

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

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

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

Ограничение мощности движка

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

Сравнения

Турниры

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

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

Рейтинги

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

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

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

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

Список рейтинговКонтроль времени. (ходов / минут)Год. началаПоследнее обновлениеДвигатель / платформа. записейИгры. сыгранныеТри лучших движкаРейтинг
CCRL40/40. Подумайте ВЫКЛ.200524 февраля 2018 г.2050798 040Stockfish 9 x64 . Houdini 6.0 x64. Komodo 11.2 x64.3449 . 3411. 3405.
CEGT 40/20. Ponder OFF200625 февраля 2018 г.15551,107,155Stockfish 9.0 x64 . Houdini 6.0 x64. Komodo 11.2 x64.3504 . 3442. 3422.
IPON5 м + 3 с. ~ 16 мин / игра. Подумайте ON20065 февраля 2018 г.203529 930Stockfish 9 . Houdini 6.02. Komodo 11.2.23380. 3350. 3319.
  • Обратите внимание, что данные в приведенной выше таблице учитываются только лучшая запись для данного двигателя.

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

Во многих списках рейтингов отсутствуют IPPOLIT и его производные. Хотя они очень сильны и имеют открытый исходный код, представители коммерческого программного обеспечения утверждают, что они были получены из дизассемблированного двоичного кода Рыбки. Из-за разногласий по поводу все эти движки были занесены в черный список из многих турниров и рейтинговых списков. Рыбку, в свою очередь, обвинили в том, что она основана на Fruit, и в июне 2011 года ICGA официально заявила, что Рыбка произошла от Fruit and Crafty, и запретила Рыбке участвовать в чемпионате мира по компьютерным шахматам Международной ассоциации компьютерных игр и отозвала его предыдущие победы (2007, 2008, 2009, 2010). ICGA подверглась некоторой критике за это решение. Рыбка по-прежнему входит в несколько рейтинговых списков общества.

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

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

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

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

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

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

Некоторые шахматные движки были разработаны для воспроизведения шахматных вариантов, добавляя необходимый код для имитации нестандартных шахматные фигуры, или для анализа игры на нестандартных досках. ChessV и Fairy-Max, например, оба могут играть на шахматной доске размером до 12 × 8, например, Capablanca Chess (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 GUI собственной разработки, позволяющего импортировать в него движки UCI или Winboard.

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

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

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

См. Также
Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-14 10:19:17
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте