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

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Шахматная программа «glChess» (основана на GNU Chess) из набора игр GNOME Games

Шахматный движок (англ. Chess engine) — компьютерная программа, предназначенная для просчитывания вариантов шахматных ходов.

Интерфейс

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

Протоколы

Интерфейс командной строки GNU Chess стал фактически начальным стандартом, названным Chess Engine Communication Protocol, и он впервые был поддержан в XBoard. Когда XBoard был портирован под операционную систему Windows под названием WinBoard, этот протокол был переименован в «Протокол WinBoard». Протокол WinBoard был самостоятельно модернизирован, и две версии протоколов упоминаются как «Протокол 1 WinBoard» (исходная версия) и «Протокол 2 WinBoard» (более новая версия). Есть другой протокол — универсальный шахматный интерфейс (Universal Chess Interface, UCI). Некоторые программы поддерживают оба протокола, но у каждого из них есть свои сторонники. Протокол Winboard в прошлом был популярен, но в настоящее время стандартом де-факто является UCI, множество разработчиков шахматных программ полагают, что универсальный шахматный интерфейс легче использовать. Некоторые интерфейсные программы (например, Arena) поддерживают оба протокола, тогда как другие поддерживают только один и зависят от дополнений, например, такого, как Polyglot[1].

Турниры

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

Исторически, наиболее сильными стали коммерческие шахматные движки. В 2007, 2008 и 2009 годах чемпионат мира по шахматам среди компьютерных программ выиграла Rybka, что было в некоторой степени сбывшимся прогнозом. Если любительская программа выигрывает турнир или выступает хорошо, как, например, Zappa в 2005 году, то позже программа может стать коммерческой. Титулы, полученные на турнирах после победы, дают престиж и используются для последующего маркетинга.

Рейтинг-листы шахматных движков

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

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

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

Различия в этих факторах влияют на результат и усложняют прямое сравнение оценок рейтинг-листов.

Рейтинг лучших шахматных движков в различных листах (показаны только лучшие версии для каждой программы):

Рейтинг-лист Контроль
времени

(ходы/минуты)
Год
начала
Последнее
обновление
Кол-во
движков-
платформ
Сыграно
игр
Лучшие три движка
(только лучшие версии)
Рейтинг
CCRL[3] 40/15[4] 2005 9 ноября 2020 2732 1 189 229 Stockfish 12 64-bit 4CPU
Komodo 14 64-bit 4CPU
Houdini 6 64-bit 4CPU
3516
3419
3400
CEGT[5] 40/20[6] 2006 9 ноября 2020 1875 1 401 865 Stockfish 12.0 x64 4CPU
LCZero 0.26.3 Cuda
Fat Fritz 1.1 Cuda
3587
3539
3450
SSDF[7] 40/120 1984 9 ноября 2020 391 153 481 Stockfish 11 x64
Komodo 13.1 x64
Deep Shredder 13 x64
3558
3471
3357

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

Практически во всех рейтинг-листах отсутствуют данные по программе IPPOLIT и её производных (к примеру, Fire). Хоть это и очень сильные шахматные программы с открытым исходным кодом, их всё же избегают по причине того, что они были созданы с применением обратной разработки программы Rybka[8]. Из-за возникших противоречий все эти движки угодили в черные списки на турнирах и рейтинговых списках. В свою очередь, программе Rybka были выдвинуты обвинения в том, что она нелегально содержала части программы Fruit[9], и в июне 2011 ICGA официально утверждала, что Rybka содержала в себе части программ Fruit и Crafty, за что получила запрет на участие в чемпионате мира по шахматам среди компьютерных программ, а также лишена всех титулов победителя (2007, 2008, 2009, и 2010)[10]. ICGA за такое решение подверглась критике от Dr. Søren Riis, который являлся давним сторонником программы Rybka[11]. Rybka по-прежнему включают во множество ранговых списков.

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

Движки можно проверять при помощи специально подобранных шахматных позиций. Обычно в таких тестах используются позиции, где существует только один лучший ход. Эти позиции могут быть подобраны с упором на позиционность, тактику или эндшпиль. Тестовый набор Nolot подобран с фокусом на глубокие жертвы[12]. Также есть наборы BT2450 и BT2630, созданные Хубертом Беднорцем (Hubert Bednorz) и Фредом Тонниссеном (Fred Toennissen). Эти наборы призваны прощупать тактические возможности шахматных движков и были использованы, по крайней мере в шахматной программе REBEL. Существует также общий набор тестов, называемый «блеск» (Brilliancy), созданный Даной Турнмир (Dana Turnmire). Этот набор был составлен на основе книги How to Reassess Your Chess Workbook[13].

Тест стратегии (STS) от Шваминатана и Дэна Корбит (Swaminathan and Dann Corbit) проверял силу стратегического мышления движков[14].

Самым трудным современным набором тестов является Nightmare II, подобранный Вальтером Эйгенманном (Walter Eigenmann). В этом наборе содержится 30 чрезвычайно сложных заданий, подобранных специальным образом для шахматных движков[15].

См. также

Примечания

  1. PolyGlot. Дата обращения: 29 июня 2009. Архивировано 2 августа 2008 года.
  2. Lo Zibaldone di Nicola: How to test a chess engine?. Дата обращения: 1 июля 2009. Архивировано 2 мая 2008 года.
  3. CCRL 40/40 — Complete list. Дата обращения: 29 июня 2009. Архивировано 14 июля 2009 года.
  4. Также доступно: 40 ходов за 4 минуты.
  5. CEGT 40/20 (недоступная ссылка). Chess Engines Grand Tournament. Дата обращения: 29 июня 2009. Архивировано 20 апреля 2009 года.
  6. Также доступно: 40 ходов за 4 минуты, 40 ходов за 120 минут.
  7. The SSDF Rating List. Swedish Chess Computer Association. Дата обращения: 29 июня 2009. Архивировано 3 марта 2012 года.
  8. Chess engine controversy | ChessVibes (недоступная ссылка). www.chessvibes.com. Дата обращения: 15 января 2017. Архивировано 16 января 2017 года.
  9. chessprogramming - Rybka. chessprogramming.wikispaces.com. Дата обращения: 15 января 2017. Архивировано 3 ноября 2012 года.
  10. Rybka disqualified and banned from World Computer Chess Championships | ChessVibes (недоступная ссылка). www.chessvibes.com. Дата обращения: 15 января 2017. Архивировано 21 апреля 2017 года.
  11. A Gross Miscarriage of Justice in Computer Chess (part one) (англ.), Chess News (2 January 2012). Архивировано 31 октября 2016 года. Дата обращения 15 января 2017.
  12. chessprogramming - The Nolot Suite. chessprogramming.wikispaces.com. Дата обращения: 15 января 2017. Архивировано 18 ноября 2016 года.
  13. TalkChess.com :: View topic - BRILLIANCY TEST SUITE (2 min/move). www.talkchess.com. Дата обращения: 15 января 2017. Архивировано 27 сентября 2016 года.
  14. Strategic Test Suite. sites.google.com. Дата обращения: 15 января 2017. Архивировано 18 января 2017 года.
  15. Walter Eigenmann. Computer-Schach: Die neue Engine-Test-Suite «Nightmare II». Glarean Magazin (25 августа 2016). Дата обращения: 15 января 2017. Архивировано 9 января 2017 года.

Литература

  • Корнилов Е. Н. Программирование шахмат и других логических игр. — СПб.: БХВ-Петербург, 2005. — ISBN 5-94157-497-5.