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

Материал из Википедии — свободной энциклопедии
(перенаправлено с «Шахматная программа»)
Перейти к: навигация, поиск
Шахматная программа «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-битные аппаратные средства, мультипроцессорные или однопроцессорные системы, быстродействие процессоров и объём памяти. Более быстрые аппаратные средства с большей памятью позволяют сильнее играть.
  • Настройки параметра расчётов (возможность анализа во время хода соперника).
  • Размеры таблиц перестановок (повторяющихся шахматных позиций).
  • Настройки дебютных книг (начал шахматных партий).

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

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

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

(ходы/минуты)
Год
начала
Последнее
обновление
Движок/
кол-во платформ
Сыграно
игр
Лучшие три движка Рейтинг
CCRL[3] 40/40[4] 2005 14 июня 2014 1490 520 025 Stockfish 5 64-bit 4CPU
Houdini 4 64-bit 4CPU
Komodo 7a 64-bit 4CPU
3307
3274
3247
CEGT[5] 40/20[6] 2006 15 июня 2014 1227 747 835 Stockfish 5 x64 4CPU
Komodo 7a x64 4CPU
Houdini 4.0 x64 4CPU
3185
3174
3154
SSDF[7] 40/120 1984 11 ноября 2013 337 132 746 Komodo 5.1 MP x64
Stockfish 3 MP x64
Deep Rybka 4 x64
3241
3211
3208

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. PolyGlot
  2. Lo Zibaldone di Nicola: How to test a chess engine?
  3. CCRL 40/40 — Complete list.  ??? (3 апреля 2009). Проверено 20 апреля 2009. Архивировано из первоисточника 3 апреля 2012.
  4. Также доступно: 40 ходов за 4 минуты.
  5. CEGT 40/20. Chess Engines Grand Tournament (12 апреля 2009). Проверено 20 апреля 2009. Архивировано из первоисточника 3 марта 2012.
  6. Также доступно: 40 ходов за 4 минуты, 40 ходов за 120 минут.
  7. The SSDF Rating List. Swedish Chess Computer Association (10 апреля 2009). Проверено 20 апреля 2009. Архивировано из первоисточника 3 марта 2012.

Литература[править | править вики-текст]

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