Шахматный движок
Шахматный движок (англ. 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 году, то позже программа может стать коммерческой. Титулы, полученные на турнирах после победы, дают престиж и используются для последующего маркетинга.
- Чемпионат мира по шахматам среди компьютерных программ (WCCC)
- Открытый чемпионат Нидерландов по шахматам среди компьютерных программ (ODCCC)
- Интернет-чемпионат по шахматам среди компьютерных программ (CCT)
- Международный чемпионат по шахматам в Падерборне среди компьютерных программ (IPCCC)
- Североамериканский чемпионат по шахматам среди компьютерных программ
Рейтинг-листы шахматных движков[править | править код]
Информация в этом разделе устарела. |
Целью рейтинг-листов шахматных движков является сравнение статистически значимой относительной силы программ. В таких листах проводят многократные игры между программами на стандартных аппаратных платформах, чтобы различия в процессорах не учитывались. Некоторые листы стандартизируют дебютные книги в попытке измерить различие силы только программ. В листах также указываются пределы погрешности оценок. Листы, как правило, постоянно обновляются, обновления к ним выпускаются несколько раз в год, независимо от турниров, которые проходят только раз в год.
Существует много факторов, различающих рейтинг-листы шахматных движков:
- Контроль времени. Более долгий контроль времени, такой, как 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].
См. также[править | править код]
Примечания[править | править код]
- ↑ PolyGlot . Дата обращения: 29 июня 2009. Архивировано 2 августа 2008 года.
- ↑ Lo Zibaldone di Nicola: How to test a chess engine? Дата обращения: 1 июля 2009. Архивировано 2 мая 2008 года.
- ↑ CCRL 40/40 — Complete list . Дата обращения: 29 июня 2009. Архивировано 14 июля 2009 года.
- ↑ Также доступно: 40 ходов за 4 минуты.
- ↑ CEGT 40/20 . Chess Engines Grand Tournament. Дата обращения: 29 июня 2009. Архивировано из оригинала 20 апреля 2009 года.
- ↑ Также доступно: 40 ходов за 4 минуты, 40 ходов за 120 минут.
- ↑ The SSDF Rating List . Swedish Chess Computer Association. Дата обращения: 29 июня 2009. Архивировано 3 марта 2012 года.
- ↑ Chess engine controversy | ChessVibes . www.chessvibes.com. Дата обращения: 15 января 2017. Архивировано из оригинала 16 января 2017 года.
- ↑ chessprogramming - Rybka . chessprogramming.wikispaces.com. Дата обращения: 15 января 2017. Архивировано 3 ноября 2012 года.
- ↑ Rybka disqualified and banned from World Computer Chess Championships | ChessVibes . www.chessvibes.com. Дата обращения: 15 января 2017. Архивировано из оригинала 21 апреля 2017 года.
- ↑ "A Gross Miscarriage of Justice in Computer Chess (part one)". Chess News (англ.). 2012-01-02. Архивировано из оригинала 31 октября 2016. Дата обращения: 15 января 2017.
- ↑ chessprogramming - The Nolot Suite . chessprogramming.wikispaces.com. Дата обращения: 15 января 2017. Архивировано 18 ноября 2016 года.
- ↑ TalkChess.com :: View topic - BRILLIANCY TEST SUITE (2 min/move) . www.talkchess.com. Дата обращения: 15 января 2017. Архивировано 27 сентября 2016 года.
- ↑ Strategic Test Suite . sites.google.com. Дата обращения: 15 января 2017. Архивировано 18 января 2017 года.
- ↑ 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.