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

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Шахматные программы»)
Перейти к навигации Перейти к поиску
Шахматная программа «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/40[4] 2005 2 декабря 2017 1978 762 940 asmFish 051117 64-bit 4CPU
Houdini 6 64-bit 4CPU
Komodo 11.2 64-bit 4CPU
3425
3412
3398
CEGT[5] 40/20[6] 2006 26 июня 2016 1404 940 626 Komodo 10 x64 4CPU
Stockfish 7.0 x64 4CPU
Houdini 4.0 x64 4CPU
3348
3346
3206
SSDF[7] 40/120 1984 27 июля 2017 360 142 106 Komodo 11.01 MP x64
Deep Shredder 13 x64
Stockfish 6 MP x64
3406
3385
3331

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

Литература[править | править код]

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