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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Шахматная программа «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 (англ.). 2012-01-02. Архивировано из оригинала 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.