Сайт про гаджеты, ПК, ОС. Понятные инструкции для всех

Как выглядят фигуры в шахматах. Шахматы и шахматные фигуры: история происхождения названий

Следующей по силе шахматной фигурой после ферзя на шахматной доске по праву считается шахматная ладья. Выглядит шахматная ладья и на демонстрационной и на шахматной досках одинаково – это фигура похожа на крепостную башню. Иногда у нее на голове есть небольшие зубцы, которые выглядят как небольшие кирпичики.

Шахматная ладья - ее названия - Тура, Крепость, Башня

Во многих странах Востока Шахматную Ладью очень любили, так как считали ее самой сильной фигурой, даже намного сильнее Ферзя. Она не всегда стояла, как крепость, на месте. Была и боевой колесницей – Ратхи – самым грозным оружием того времени, носилась по полям и по доске.

А в Иране шахматную ладью даже называли Судьбой – Рухом. Птица Рух – покровительница войска, появлялась на самых важных участках сражения и могла в любой момент решить Судьбу шахматной битвы.

Повоевав, войско всегда возвращалось в город и зиму проводило за высокими крепостными башнями. Иногда башни брали с собой, ставили на колеса и получался настоящий Гуляй-город. Ехала такая крепостная башня на колесах по полям и дорогам.

Под особо большие башни подкладывали толстые бревна и катили. Сотня солдат из пушек поливала огнем врага. Сзади за крепостными стенами пряталось остальной войско, готовое наскочить и атаковать врага в любой момент. Появление таких гуляющих крепостей в армии Шаха было совершенно неожиданным для врага.

Во всех странах эта шахматная фигура так и называется: Крепость, Башня, Тура (многие дедушки эту фигуру как раз так и называют), привыкли и отвыкнуть не могут.

История шахматной ладьи и ее названия в России

В России так много крепостей, а все же эту шахматную фигуру почему-то называют шахматной ладьей. Откуда взялось это название?
Давным-давно не было больших кораблей, и люди плавали на лодках под парусами, если дул попутный ветер, или даже просто на веслах. Эти большие лодки в старину называли Ладьями.
Как-то раз купцы-моряки приплыли на своих ладьях в Индию. Между Индией и Россией расстояние довольно большое, к тому же это огромные непреодолимые горы Гималаи – все в снегах и высотой по 8 километров, а за ними жаркая пустыня Кара-Кум. И сейчас такое путешествие через горы практически невозможно. Поэтому путь у купцов был только через моря и океаны. Путь трудный, опасный, но единственный. Привозили торговцы в Индию меха, мед, зерно и другие товары, а в Россию везли разные пряности и драгоценные камни.

Однажды привезли русские купцы разные игрушки для детей, а их никто покупать не хочет. Удивились они, конечно, - неужели не играют индийские детишки в игрушки?! А те отвечают: «Играем, но только в самую интересную игру – Чатурангу». Так в Индии Шахматы назывались раньше. Подивились русские на эту игру, и так она им понравилась, что решили ее с собой взять в Россию и научить своих детей играть в шахматы . Поплыли Ладьи обратно в Россию и повезли шахматное поле для сражения и боевые шахматные фигуры.

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

Беда только в том, что они не смогли вспомнить, как выглядели некоторые фигуры. Ведь в России Слоны не водятся, а до крепостных башен славного индийского гуляй-города купцы просто не дошли. Поэтому вместо слонов и шахматных ладей моряки вырезали свои фигуры, которые им больше нравились: боевых офицеров, адъютантов и помощников Их Величество вместо слонов, а вместо крепостных башен по шахматной доске поплыли шахматные ладьи.

Ведь Ладьи были у купцов-моряков, как любимые дети. Их любили, лелеяли, с ними разговаривали. Поэтому и неудивительно, что поплыли по русским шахматным доскам корабли под парусами.

В некоторых халах Эрмитажа выставлены старинные шахматы , где в качестве фигур по краям шахматной доски стоят элегантные парусники.

А на одной доске служащие музея перепутали расстановку шахматных фигур, решив, что тумбообразные слоны – это крепости, и поместили их на боковые вертикали. Получилось, что Король сразу может садиться на Шахматную ладью и отправляться в свое шахматное путешествие.

Долго ли, коротко ли плавали корабли в русских шахматах, но вот из других европейских стран к нам начали приезжать знаменитые шахматисты . Им, конечно, было непривычно видеть вместо крепостной башни другую фигуру.

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

Сказочные шахматные истории о шахматных ладьях и крепостях

Какие известные крепости Вы знаете? Вспомним, какую крепость брал Александр Суворов со своими солдатами-героями?
Обязательно стоит посетить музей Суворова в Санкт-Петербурге, где можно узнать, как пала неприступная турецкая крепость Измаил. Турецкий генерал долго кричал со стен города, что «скорее Дунай потечет вспять, чем падет его Крепость». Не помогло! После того, как русские солдаты, руководимые Суворовым, пошли на штурм, крепость не продержалась и дня.

А какая крепость-герой долго удерживала фашистов в первые месяцы войны 1941-1945 годов? Немцы уже в самые первые дни войны объявили, что Брестская крепость окружена, и их войска ушли далеко вперед. Но крепость жила, сражалась, наносила огромный урон врагу и долгое время приковывал к себе несколько вражеских дивизий.

Какие замечательные крепости есть в нашем городе Санкт-Петербурге, в нашей области? Если гулять по Неве, то не заметить Петропавловскую крепость с ее золотым шпилем просто невозможно. Обязательно стоит ее посетить и поразиться толщине и высоте крепостных стен. Кстати, когда наши северные враги – шведы, с которыми так долго воевал Петр I, впервые увидели Петропавловскую крепость, то желание нападать на Россию у них навсегда пропало.
А недалеко от нашего города целое созвездие знаменитых крепостей: морская крепость Кронштадт со своими фортами, надежно прикрывавшая Санкт-Петербург с моря. Петрокрепость – Шлиссельбург – знаменитая крепость Орешек на Ладоге, у истока Невы, защищала всю Ладогу и город с востока. Копорье, Ямбург, Ивангород стали прямо напротив Нарвской крепости.

В свое время они удерживали рыцарей Тевтонского ордена, желающих с недобрыми целями посетить Россию. Города-крепости Выборг и Корелу – Приозерск наши славные воины в свое время присоединили к России и, таким образом, обеспечили безопасность наших северных границ; а с юга город защищают Тихвин и Старая Ладога.

Всеволод Викторович Костров

Задайте вопрос или Оставьте свой комментарий

Шахматы - игра очень старинная и придумана не у нас. Родилась она в далекой Индии давным-давно, в 6 веке н.э. Древний вариант шахмат назывался "чатуранга", что в переводе с санскрита (языка древних индийцев) обозначает "четыре подразделения войска". Она была уже очень похожа на наши шахматы. Игра велась на доске 8х8 клеточек (только они были одноцветными, деление на черные и белые появилось гораздо позже в Европе).

В это время сложились уже все знакомые нам фигуры и лишь ферзь появился позднее. Главное отличие было в том, что в игре участвовало не два игрока, а четыре, каждый из которых выстраивал свои "войска" в углу доски: пехоту (пешки), конницу (конь), боевых слонов (слон) и колесницы (ладья). Войско возглавлял раджа - индийский король. Фигуры были четырех цветов: чёрные, зелёные, жёлтые и красные. Какой фигурой ходить, определялось с помощью игрального кубика (пешка - 1, конь -2, ладья - 3, слон - 4, король - 5 и 6). Игра велась до тех пор, пока все фигуры противников не были уничтожены.

Правила ходов чатуранги:

Пешка ходит так же как и сейчас, только нет возможности на первом ходе перепрыгивать через третью линию. Дойдя до последней линии она может превратиться только в ту фигуру, которая уже есть среди "убитых" противником.

Конь ходит так же как и сейчас.

Слон ходит по диагонали или вперед, но всего лишь на одну клеточку.

Ладья ходит по вертикалям и горизонталям на одну клеточку.

Ферзь отсутствует.

Король ходит как и сейчас.

Как расставлять фигуры, приведено на рисунке (мы играли вдвоем, поэтому фигуры расставили в соседних углах).

В том же трактате Бируни приводится легенда о возникновении шахмат. Якобы их придумал некий брамин и предложил сыграть в них царю. Царь был в восторге от новой игры и захотел наградить брамина. "Проси все, что хочешь!" - сказал он. И брамин попросил выдать ему зерна: на первую клетку шахматной доски положить 1 зернышко, а на каждую последующую класть зерен в два раза больше, чем на предыдущую. Т.е. на вторую - 2, на третью - 4 и т.д. В математике это называется "геометрическая прогрессия"). Царь сначала согласился на это условие. Но вскоре оказалось, что всего зерна в его стране не хватит, чтобы заполнить всю доску. Более того, если посчитать количество зерен по формуле, то окажется, что всего мирового урожая зерна, собранного за всю историю человечества для этого не хватит!

Задача о зернах на шахматной доске

Из Индии шахматы были завезены в соседние страны: в Китае эта игра стала называться сянци, в Японии - сёги, в Таиланде - макрук. А персы и, вслед за ними, арабы называли эту игру шатрандж. Персы несколько изменили правила, и шахматы уже стали больше похожи на шахматы. От игральных кубиков отказались. Вместо четырех игроков стало играть двое, используя двойной комплект фигур. Так как из-за этого получилось два раджи (в Персии его стали называть "шах", как своего правителя), то одного из них несколько "понизили в звании" и второй ражда стал ферзем. Ферзь был очень слабой фигурой. Он мог ходить только по диагоналям и только на одну клетку. Персы же ввели правило, что игра длиться до тех пор, пока не поставят мат королю. Если слово "шахматы" перевести с языка персов, то получится "шах умер".

Из Персии эта игра в 9 веке пришла в Европу, где ее правила потихоньку менялись, пока не стали такими, как мы привыкли сейчас. Но в Россию первоначальный вариант игры попал не из Европы, а через Среднюю Азию. Поэтому в названии русских шахматных фигур сохранился дословный перевод с арабского или персидского языка. А лишь потом, в 11 веке, европейские шахматные правила дошли до Руси. Именно из-за этого многие фигуры получили двойное название - одно из старых русских шахмат, второе - из европейских.

Давайте разберем значение названий шахматных фигур подробнее.

Пешка

Слово "пешка" однокоренное с "пеший", "пехота". Это название означает "пеший солдат".

В других европейских. языках перевод названия этой фигуры тот же самый. А вот в Германии название пешки "вauer" значит не солдат, а "крестьянин".

Конь

В древних шахматах эта фигура изображала собою "кавалерию" - всадника на коне. Со временем ее изображение упростили, оставив только коня. Но во многих европейских языках шахматного коня продолжают называть наездником. Во Франции шахматный конь - это сavalier (кавалер), в Англии - knight (рыцарь).

А вот в других языках "человеческая составляющая" из этой фигуры пропала. У нас она называется просто "конь". А, например, в Германии (springer), Польше (skoczek), Хорватии (skakač) название его переводится как "прыгун", "скакун".

Слон

В древних шахматах это была фигура, изображающая боевого слона с наездником. Ее название на Руси перевели дословно, получилось "слон".

Но в Европе название никому неведомого животного "слона" (по персидски "фил") превратилось в "шута" ("фул"). В древних европейских шахматных книгах можно увидеть, что эту фигуру изображали как человечка в шляпе с бубенчиками. До сих пор во Франции "слон" называется fou (фу), т.е. шут.

Позже в разных странах эта особа, приближенная к королю, получила более почетные звания: епископ (bishop) - в Англии, бегун (Läufer) - в Германии, гонец (goniec) - в Польше, стрелок (střelec) - в Чехии, охотник (lovec)- в Словении и Хорватии, офицер - в Болгарии и Греции. И у нас до революции эту фигуру тоже принято было называть "офицер ". Только потом за ней официально закрепили древнее русское название "слон". А вид фигурки оставили прежний, европейский. Поэтому шахматный слон похож не на слона (зверя с хоботом), а на человека в высокой шляпе (епископа, офицера).

Ладья

В индийской игре ладья - это боевая колесница (ратхи). Изображалась вместе с упряжкой коней и правящей ею возницей. Видимо, отсюда произошло персидское название колесницы - рух. Та самая Птица Рух из сказок "Тысячи и одной ночи". И изображать фигуру тоже стали в виде птицы. А на Руси эту птицу приняли за стилизованное носовое украшение древнерусского судна - ладьи. Отсюда фигура получила свое имя.

А внешний вид и другое название этой фигуры - тура , - пришло к нам из Европы. По французски оно означает "башня" (tour). Так же французы называют и шахматную фигуру. Практически во всех европейских языках ее название имеет смысл "осадная башня", "укрепление": скала (rook) - на английском; башня (Turm) - на немецком; вежа, башня (wieża) - на польском.

Читаемого Andrew Ng на Курсере. После знакомства с методами, о которых рассказывалось на лекциях, захотелось применить их к какой-нибудь реальной задаче. Долго искать тему не пришлось - в качестве предметной области просто напрашивалась оптимизация собственного шахматного движка.

Вступление: о шахматных программах

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

Поиск представляет собой перебор вариантов, то есть итеративное углубление по дереву игры. Оценочная функция отображает набор позиционных признаков на числовую шкалу и служит целевой функцией для поиска наилучшего хода. Она применяется к листьям дерева, и постепенно «возвращается» к исходной позиции (корню) с помощью альфа-бета процедуры или её вариаций.

Строго говоря, настоящая оценка может принимать только три значения: выигрыш, проигрыш или ничья - 1, 0 или ½. По теореме Цермело для любой заданной позиции она определяется однозначно. На практике же из-за комбинаторного взрыва ни один компьютер не в состоянии просчитать варианты до листьев полного дерева игры (исчерпывающий анализ в эндшпильных базах данных - это отдельный случай; 32-фигурных таблиц в обозримом будущем не появится… и в необозримом, скорее всего, тоже). Поэтому программы работают в так называемой модели Шеннона - пользуются усечённым деревом игры и приближённой оценкой, основанной на различных эвристиках.

Поиск и оценка не существуют независимо друг от друга, они должны быть хорошо сбалансированы. Современные переборные алгоритмы давно уже не являются «тупым» перебором вариантов, они включают в себя многочисленные специальные правила, связанные в том числе и с оценкой позиции.

Первые такие усовершенствования поиска появились ещё на заре шахматного программирования, в 60-х годах XX в. Можно упомянуть, например, технику форсированного варианта (ФВ) - продление отдельных ветвей поиска до тех пор, пока позиция не «успокоится» (закончатся шахи и взаимные взятия фигур). Продления существенно увеличивают тактическую зоркость компьютера, а также приводят к тому, что дерево поиска становится очень неоднородным - длина отдельных ветвей может в несколько раз превышать длину соседних, менее перпективных. Другие улучшения поиска, наоборот, представляют собой отсечения или сокращения поиска - и здесь критерием отбрасывания плохих вариантов может, в числе прочего, служить всё та же статическая оценка.

Параметризация и улучшение поиска методами машинного обучения - отдельная интересная тема, но сейчас мы оставим её в стороне. Займёмся пока только оценочной функцией.

Как компьютер оценивает позицию


Статическая оценка представляет собой линейную комбинацию различных признаков позиции, взятых с некоторыми весовыми коэффициентами. Какие это признаки? В первую очередь, количество фигур и пешек у той и другой стороны. Следующий важный признак - положение этих фигур, централизация, занятие дальнобойными фигурами открытых линий и диагоналей. Опыт показывает, что учёт только этих двух факторов - суммы материала и относительной ценности полей (зафиксированной в виде таблиц для каждого типа фигур) - при наличии качественного поиска уже может обеспечивать силу игры в диапазоне до 2000-2200 пунктов Эло. Это уровень хорошего первого разряда или кандидата в мастера.

Дальнейшее уточнение оценки может включать всё более и более тонкие признаки шахматной позиции: наличие и продвинутость проходных пешек, близость фигур к позиции неприятельского короля, его пешечное прикрытие и т. д. Легендарная «Каисса», первая чемпионка мира среди программ (1974) имела оценочную функцию из нескольких десятков признаков . Все они подробно описаны в книге «Машина играет в шахматы», библиографическая ссылка на которую приводится в конце статьи.


Одна из самых «навороченных» оценочных функций была у машины Deep Blue, прославившейся своими матчами с Каспаровым в 1996-97 гг. (подробную историю этих матчей можно прочитать в недавней серии статей на Geektimes .)

Широко распространено мнение, что сила Deep Blue основывалась исключительно на колоссальной скорости перебора вариантов. 200 миллионов позиций в секунду, полный (без отсечений) перебор на 12 полуходов - к таким параметрам шахматные программы на современном железе только-только приближаются. Однако, дело было не только в быстродействии. По объёму «шахматных знаний» в оценочной функции эта машина также намного превосходила всех. Оценка Deep Blue была реализована аппаратно и включала до 8000 различных признаков. Для настройки её коэффициентов привлекались сильные гроссмейстеры (достоверно известно о работе с Джоэлем Бенджамином, тестовые партии с разными версиями машины играл Давид Бронштейн).

Не располагая такими ресурсами, как создатели Deep Blue, ограничим задачу. Из всех признаков позиции, учитываемых для подсчёта оценки, возьмём самый значимый - соотношение материала на доске.

Стоимость фигур: простейшие модели

Если взять любую шахматную книгу для начинающих, сразу за главой с объяснением шахматных ходов обычно приводится табличка сравнительной ценности фигур, примерно такая:
Королю иногда приписывается конечная стоимость, заведомо бóльшая, чем сумма всего материала на доске - например, 200 единиц. В данном исследовании мы оставим Его Величество в покое, и рассматривать королей не будем вообще. Почему? Ответ простой: они всегда присутствуют на доске, поэтому их материальная оценки взаимно вычитаются, и на общий баланс сил не влияют.

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

Вот как оценивал различные сочетания материала в своём классическом «Учебнике шахматной игры» третий чемпион мира :


С точки зрения общей теории слона и коня следует считать одинаково ценными, хотя, по моему убеждению, слон в большинстве случаев оказывается более сильной фигурой. Между тем считается вполне установленным, что два слона почти всегда сильнее двух коней.

Слон в игре против пешек сильнее коня, а вместе с пешками также оказывается более сильным против ладьи, нежели конь. Слон и ладья тоже сильнее коня и ладьи, но ферзь и конь могут оказаться сильнее, чем ферзь и слон. Слон часто стоит больше трех пешек, о коне же это редко можно сказать; он даже может оказаться слабее трех пешек.

Ладья по силе равна коню и двум пешкам или же слону и двум пешкам, но, как сказано выше, слон в борьбе против ладьи сильнее коня. Две ладьи несколько сильнее ферзя. Они немного слабее двух коней и слона и еще слабее двух слонов и коня. Сила коней падает по мере размена фигур на доске, сила же ладьи, напротив, возрастает.

Наконец, как правило, три легкие фигуры сильнее ферзя.

Оказывается, большей части подобных правил можно удовлетворить, оставаясь в рамках линейной модели, и просто слегка сместив стоимости фигур от их «школьных» значений. Например, в одной из статей приводятся следующие граничные условия:

B > N > 3P B + N = R + 1.5P Q + P = 2R
И значения, им удовлетворяющие:

P = 100 N = 320 B = 330 R = 500 Q = 900 K = 20000


Имена переменных соответствуют обозначениям фигур в английской нотации: P - пешка, N - конь, B - слон, R - ладья, Q - ферзь, K - король. Стоимости здесь и далее указаны в сотых долях пешки.

На самом деле, приведённый набор значений не является единственным решением. Более того, даже несоблюдение каких-то из «неравенств им. Капабланки» не приведёт к резкому падению силы игры программы, а только повлияет на её стилевые особенности.

В качестве эксперимента я провёл небольшой матч-турнир четырёх версий своего движка GreKo с разными весами фигур против трёх других программ - каждая из версий сыграла 3 матча по 200 партий со сверхмалым контролем времени (1 секунда + 0.1 сек. на ход). Результаты приведены в таблице:

Версия Пешка Конь Слон Ладья Ферзь vs. Fruit 2.1 vs. Crafty 23.4 vs. Delfi 5.4 Рейтинг
GreKo 12.5 100 400 400 600 1200 61.0 76.0 71.0 2567
GreKo A 100 300 300 500 900 55.0 69.0 73.0 2552
GreKo B 100 320 330 500 900 57.0 71.0 64.0 2548
GreKo C 100 325 325 550 1100 72.5 74.5 69.0 2575
Мы видим, что некоторые вариации в весах фигур приводят к колебаниям силы игры в диапазоне 20-30 пунктов Эло. Более того, одна из тестовых версий показала даже лучший результат, чем основная версия программы. Впрочем, однозначно утверждать об усилении игры на таком малом количестве партий преждевременно - доверительный интервал вычисления рейтинга составляет сравнимую величину в несколько десятков пунктов Эло.

«Классические» стоимости шахматного материала были получены интуитивно, путём осмысления шахматистами своего практического опыта. Предпринимались также попытки подвести под эти значения какую-то математическую базу - например, на основе мобильности фигур, числа полей, которые они могут держать под контролем. Мы же попробуем подойти к вопросу экспериментально - на базе анализа большого количества шахматных партий. Для вычисления стоимостей фигур нам не понадобится приближённая оценка позиций из этих партий - только их результаты, как самая объективная мера успеха в шахматах.

Материальный перевес и логистическая кривая

Для статистического анализа был взят PGN-файл, содержащий почти 3000 шахматных партий в блиц между 32 разными шахматными движками, в диапазоне от 1800 до 3000 пунктов Эло. С помощью специально написанной утилиты для каждой партии был составлен список материальных соотношений, возникших на доске. Каждое соотношение материала попадало в статистику не сразу после взятия фигуры или превращения пешки - сначала должны были произойти ответные взятия или несколько «тихих» ходов. Таким образом отфильтровывались краткосрочные «скачки материала» на 1-2 хода при разменах.

Затем по уже известной нам шкале «1-3-3-5-9» рассчитывался материальный баланс позиции, и для каждого его значения (от -24 до 24) накапливалось количество очков, набранных белыми. Полученная статистика представлена на следующем графике:

По оси x - материальный баланс позиции ΔM с точки зрения белых, в пешках. Он вычисляется как разность суммарной стоимости всех белых фигур и пешек и такой же величины для чёрных. По оси y - выборочное математическое ожидание результата партии (0 - победа чёрных, 0.5 - ничья, 1 - победа белых). Мы видим, что экспериментальные данные очень хорошо описываются логистической кривой :

Простой визуальный подбор позволяет определить параметр кривой: α=0.7 , размерность его - обратные пешки.
Для сравнения на графике приведены ещё две логистические кривые с другими значениями параметра α .

Что это означает на практике? Пусть мы видим случайно выбранную позицию, в которой у белых перевес в 2 пешки (ΔM = 2 ). С вероятностью, близкой к 80%, мы можем утверждать: партия закончится победой белых. Аналогично, если у белых не хватает слона или коня (ΔM = -3 ), их шансы не проиграть всего лишь около 12%. Позиции с материальным равенством (ΔM = 0 ), как и можно было ожидать, чаще всего заканчиваются вничью.

Постановка задачи

Теперь мы готовы сформулировать задачу оптимизации оценочной функции в терминах логистической регрессии.
Пусть нам дан набор векторов следующего вида:

Где Δ i , i = P...Q - разность количества белых и чёрных фигур типа i (от пешки до ферзя, короля не считаем). Эти вектора представляют собой материальные соотношения, встретившиеся в партиях (одной партии обычно соответствует несколько векторов).

Пусть дан также вектор y j , компоненты которого принимают значения 0, 1 и 2. Эти значения соответствуют исходам партий: 0 - победа чёрных, 1 - ничья, 2 - победа белых.

Требуется найти вектор θ стоимостей фигур:

Минимизирующий функцию стоимости для логистической регрессии:

,
где
- логистическая функция для векторного аргумента.

Для предотвращения «переобучения» и эффектов неустойчивости в найденном решении в функцию стоимости можно добавить параметр регуляризации, не дающий коэффициентам в векторе принимать слишком большие значения:

Величина коэффициента при параметре регуляризации выбирается небольшая, в данном случае использовалось значение λ=10 -6 .

Для решения задачи минимизации применим простейший метод градиентного спуска с постоянным шагом:

Где компоненты градиента функции J reg имеют вид:

Так как мы ищем симметричное решение, при материальном равенстве дающее вероятность исхода партии ½, нулевой коэффициент вектора θ полагаем всегда равным нулю, и нам для градиента нужно только второе из данных выражений.

Вывод приведённых формул мы здесь рассматривать не будем. Всем интересующимся их обоснованием настоятельно рекомендую уже упоминавшийся курс по машинному обучению на Coursera.

Программа и результаты

Так как первая часть задачи - разбор PGN-файлов и выделение для каждой позиции набора признаков - уже была практически реализована в коде шахматного движка, оставшуюся часть было решено также написать на C++. Исходный код программы и тестовые наборы партий в PGN-файлах доступны на github . Программа может быть собрана и запущена под Windows (MSVC) или Linux (gcc).

Возможность использовать в дальнейшем специализированные средства вроде Octave, MATLAB, R и т.п. также предусмотрена - в процессе работы программа генерирует промежуточный текстовый файл с наборами признаков и исходами партий, который легко может быть импортирован в эти среды.

Файл содержит текстовое представление набора векторов x j - матрицы размерности m x (n + 1) , в первых 5 столбцах которой содержатся компоненты материального баланса (от пешки до ферзя), а в 6-м - результат партии.

Рассмотрим простой пример. Ниже приводится PGN-запись одной из тестовых партий.

1. d4 d5 2. c4 e6 3. e3 c6 4. Nf3 Nd7 5. Nbd2 Nh6 6. e4 Bb4 7. a3 Ba5 8. cxd5 exd5 9. exd5 cxd5 10. Qe2+ Kf8 11. Qb5 Nf6 12. Bd3 Qe7+ 13. Kd1 Bb6 14. Re1 Bd7 15. Qb3 Be6 16. Re2 Qc7 17. Qb4+ Kg8 18. Nb3 Bf5 19. Bb1 Bxb1 20. Rxb1 Nf5 21. Bd2 a5 22. Qa4 h6 23. Rc1 Qb8 24. Bxa5 Qf4 25. Qb4 Bxa5 26. Nxa5 Kh7 27. Nxb7 Rab8 28. a4 Ne4 29. h3 Rhc8 30. Ra1 Rc7 31. Qa3 Rcxb7 32. g3 Qc7 33. Rc1 Qa5 34. Rxe4 dxe4 35. Rc5 Qa6 36. Nd2 Nxd4 37. Rc4 Nb3 38. Nxb3 Qxc4 39. Nd2 Rd8 40. Qc3 Qf1+ 41. Kc2 Qe2 42. f4 e3 43. b4 Rc7 44. Kb3 Qd1+ 45. Ka2 Rxc3 46. Nb1 Qxa4+ 47. Na3 Rc2+ 48. Ka1 Rd1# 0-1
Соответствующий фрагмент промежуточного файла имеет вид:

0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 0 2 -1 0 0 0 0 2 0 0 -1 0 0 1 0 0 -1 0 0 1 1 0 -2 0 0
В 6-м столбце везде 0 - это результат партии, победа чёрных. В остальных столбцах - баланс числа фигур на доске. В первой строке полное материальное равенство, все компоненты равны 0. Вторая строка - лишняя пешка у белых, это позиция после 24-го хода. Обратим внимание, что предшествующие размены никак не отражены, они происходили слишком быстро. После 27-го хода у белых уже 2 лишних пешки - это строка 3. И т.д. Перед заключительной атакой чёрных у белых пешка и конь за две ладьи:

Как и размены в дебюте, финальные ходы в партии на содержимое файла не повлияли. Они были отсеяны «фильтром тактики», потому что представляли собой серию взятий, шахов и уходов от них.

Такие же записи создаются для всех анализируемых партий, в среднем получается по 5-10 строк на игру. После разбора PGN-базы с партиями этот файл поступает на вход второй части программы, занимающейся собственно решением задачи минимизации.

В качестве начальной точки для градиентного спуска можно, например, взять вектор со значениями весов фигур из учебника. Но интереснее не давать алгоритму никаких подсказок, и стартовать из нуля. Оказывается, наша функция стоимости достаточно «хорошая» - траектория быстро, за несколько тысяч шагов, выходит на глобальный минимум. Как изменяются при этом стоимости фигур, показано на следующем графике (на каждом шаге выполнялась нормировка на вес пешки = 100):

График сходимости функции стоимости


Текстовый вывод программы

C:\CHESS>pgnlearn.exe OpenRating.pgn Reading file: OpenRating.pgn Games: 2997 Created file: OpenRating.mat Loading dataset... [ 20196 x 5 ] Solving (gradient method)... Iter 0: [ 0 0 0 0 0 ] -> 0.693147 Iter 1000: [ 0.703733 1.89849 2.31532 3.16993 6.9148 ] -> 0.470379 Iter 2000: [ 0.735853 2.08733 2.51039 3.47418 7.7387 ] -> 0.469398 Iter 3000: [ 0.74429 2.13676 2.56152 3.55386 7.95879 ] -> 0.46933 Iter 4000: [ 0.746738 2.15108 2.57635 3.57697 8.02296 ] -> 0.469324 Iter 5000: [ 0.747467 2.15535 2.58077 3.58385 8.0421 ] -> 0.469324 Iter 6000: [ 0.747685 2.15663 2.58209 3.58591 8.04785 ] -> 0.469324 Iter 7000: [ 0.747751 2.15702 2.58249 3.58653 8.04958 ] -> 0.469324 Iter 8000: [ 0.747771 2.15713 2.58261 3.58672 8.0501 ] -> 0.469324 Iter 9000: [ 0.747777 2.15717 2.58265 3.58678 8.05026 ] -> 0.469324 Iter 10000: [ 0.747779 2.15718 2.58266 3.58679 8.0503 ] -> 0.469324 PIECE VALUES: Pawn: 100 Knight: 288.478 Bishop: 345.377 Rook: 479.66 Queen: 1076.56 Press ENTER to finish


После нормировки и округления получаем следующий набор величин:
Проверим, выполняются ли «правила Капабланки»?
Соотношение Численные значения Выполняется?
B > N 345 > 288 да
B > 3P 345 > 3 * 100 да
N > 3P 288 < 3 * 100 нет
B + N = R + 1.5P 345 + 288 ~= 480 + 1.5 * 100 да (с погрешностью < 0.5%)
Q + P = 2R 1077 + 100 > 2 * 480 нет
Результат вполне обнадёживающий. Не зная ничего о реально происходящих на доске событиях, рассматривая только исходы партий и снятый с доски материал наш алгоритм сумел вывести стоимости фигур, достаточно близкие к их традиционным значениям.

Можно ли полученные значения использовать для усиления игры программы? Увы, на данном этапе ответ отрицательный. Тестовые блиц-матчи показывают, что сила игры GreKo от использования найденных параметров практически не изменилась, а в ряде случаев даже снизилась. Почему так произошло? Одна из очевидных причин - уже упоминавшаяся тесная связь поиска и оценки позиции. В поиске движка заложен целый ряд эвристик для отсечения неперспективных ветвей, и критерии этих отсечений (пороговые значения) тесно завязаны на статическую оценку. Меняя стоимости фигур, мы резко сдвигаем масштаб величин - форма дерева поиска меняется, требуется новая балансировка констант для всех эвристик. Это достаточно трудоёмкая задача.

Эксперимент с партиями людей

Попробуем расширить наш эксперимент, рассмотрев игры не только компьютеров, но и людей. В качестве массива данных для обучения возьмём партии двух выдающихся современных гроссмейстеров - чемпиона мира Магнуса Карлсена и экс-чемпиона Ананда Вишванатана , а также представителя романтических шахмат XIX столетия Адольфа Андерсена .


Ананд и Карлсен соперничают за мировую корону

В таблице ниже представлены результаты решения регрессионной задачи для партий этих шахматистов.
Легко заметить, что «человеческие» значения стоимости фигур оказались вовсе не такими, каким учат начинающих в учебниках. В случае Карлсена и Ананда бросается в глаза меньший масштаб шкалы - ферзь стоит чуть больше 7.5 пешек, соответственно сжался весь диапазон для других фигур. Слон по-прежнему чуть дороже коня, но и тот, и другой не дотягивают до традиционных трёх пешек. Две ладьи оказываются слабее ферзя, и т.д.

Надо сказать, что похожая картина наблюдается не только у Виши и Магнуса, но и для большинства гроссмейстеров, партии которых удалось протестировать. Причём какой-то зависимости от стиля не выяснилось. Значения смещены от классических в одну и ту же сторону и у позиционных мастеров вроде Михаила Ботвинника и Анатолия Карпова, и у атакующих шахматистов - Михаила Таля, Юдит Полгар…

Одним из немногих исключений стал Адольф Андерсен - лучший европейский игрок середины XIX века, автор знаменитой «вечнозелёной партии» . Вот для него значения стоимости фигур оказались очень близки к тем, которые используют компьютерные программы. Напрашиваются самые разнообразные фантастические гипотезы, вроде тайного читерства немецкого маэстро через портал во времени… (Шутка, конечно. Адольф Андерсен был крайне порядочным человеком, и никогда бы себе такого не позволил.)


Адольф Андерсен (1818-1879),
человек-компьютер

Почему наблюдается такой эффект со сжатием диапазона стоимости фигур? Конечно, не стоит забывать о крайней ограниченности нашей модели - учёт дополнительных позиционных факторов мог бы внести существенные коррективы. Но, возможно, дело в слабой технике реализации человеком материального перевеса - относительно современных шахматных программ, конечно. Проще говоря, человеку тяжело безошибочно играть ферзём, потому что у того слишком много возможностей. Вспоминается хрестоматийный анекдот о Ласкере (в других вариантах - Капабланке / Алехине / Тале), якобы игравшем с форой со случайным попутчиком в поезде. Кульминационной фразой было: «Ферзь только мешает!»

Заключение

Мы рассмотрели один из аспектов оценочной функции шахматных программ - стоимость материала. Убедились, что эта часть статической оценки в модели Шеннона имеет вполне «физический» смысл - она гладким образом (через логистическую функцию) связана с вероятностью исхода партии. Затем рассмотрели несколько распространённых комбинаций весов фигур, и оценили порядок их влияния на силу игры программы.

С помощью аппарата регрессии на партиях различных шахматистов, как живых так и компьютерных, мы определили оптимальные стоимости фигур в предположении чисто материальной оценочной функции. Обнаружили интересный эффект меньшей стоимости материала для людей по сравнению с машинами, и «заподозрили в читерстве» одного из шахматных классиков. Попробовали применить найденные значения в реальном движке и… не добились особого успеха.

Куда двигаться дальше? Для более точной оценки позиции можно добавлять в модель новые шахматные знания - то есть увеличивать размерность векторов x и θ . Даже оставаясь в области только материальных критериев (без учёта полей, занимаемых фигурами на доске), можно добавить целый ряд релевантных признаков: два слона, пара из ферзя и коня, пара из ладьи и слона, разноцвет, последняя пешка в эндшпиле… Шахматистам хорошо известно, как ценность фигур может зависеть от их сочетания или стадии партии. В шахматных программах соответствующие веса (бонусы или штрафы) могут достигать десятых долей пешки и более.

Один из возможных путей (наряду с увеличением размера выборки) - использовать для обучения партии, сыгранные предыдущей версией той же самой программы. В таком случае есть надежда на бóльшую согласованность одних признаков оценки с другими. Можно также в качестве функции стоимости использовать не успех предсказания исхода партии (которая может закончиться через несколько десятков ходов после рассматриваемой позиции), а корреляцию статической оценки с динамической - т.е. с результатом альфа-бета поиска на определённую глубину.

Однако, как уже было отмечено выше, для непосредственного усиления игры программы полученные результаты могут оказаться непригодными. Часто случается так: после обучения на сериях тестов программа начинает лучше решать тесты (в нашем случае - предсказывать результаты партий), но не лучше играть ! В настоящее время в шахматном программировании мейнстримом стало интенсивное тестирование исключительно в практической игре. Новые версии топ-движков перед выпуском тестируются на десятках и сотнях тысяч партий со сверхкороткими контролями времени…

В любом случае, я планирую провести ещё ряд экспериментов по статистическому анализу шахматных партий. Если данная тема представляет интерес для аудитории Хабра, при получении каких-либо нетривиальных результатов статья может получить продолжение.

В ходе исследований ни одна шахматная фигура не пострадала.

Библиография

Адельсон-Вельский, Г.М.; Арлазаров, В.Л.; Битман, А.Р. и др. - Машина играет в шахматы. М.: Наука, 1983
Книга авторов советской программы «Каисса», подробно описывающая как общие алгоритмические основы шахматных программ, так и конкретные детали реализации оценочной функции и поиска «Каиссы».

Корнилов Е. - Программирование шахмат и других логических игр. СПб.: БХВ-Петербург, 2005
Более современная и «практическая» книга, содержит большое количество примеров кода.

Feng-hsiung Hsu - Behind Deep Blue. Princeton University Press, 2002
Книга одного из создателей шахматной машины Deep Blue, в подробностях рассказывающая об истории её создания и внутреннем устройстве. В приложении приведены тексты всех шахматных партий, сыгранных Deep Blue в официальных соревнованиях.

Ссылки

Chessprogramming Wiki - обширная коллекция материалов по всем теоретическим и практическим аспектам шахматного программирования.

Machine Learning in Games - сайт, посвящённый машинному обучению в играх. Содержит большое количество научных статей по исследованиям в области шахмат, шашек, го, реверси, нардов и т.д.

Kaissa - страница, посвящённая «Каиссе». Детально представлены коэффициенты её оценочной функции.

Stockfish - сильнейшая на сегодня программа, с открытым исходным кодом.

A comparison of Rybka 1.0 beta and Fruit 2.1
Детальное сравнение внутреннего устройства двух популярных шахматных программ.

GreKo - шахматная программа автора статьи.
Была использована в качестве одного из источников тестовых компьютерных партий. Также на основе её генератора ходов и парсера PGN-нотации была изготовлена утилита для анализа экспериментальных данных.

pgnlearn - код утилиты и примеры файлов с партиями на github.

Теги:

  • шахматы
  • регрессионный анализ
  • машинное обучение
Добавить метки

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

Возможности короля

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

В начальной расстановке король располагается в центре на горизонтали 1, если это белые шахматы, или на полосе 8 у черных фигур. Он стоит на клетке другого цвета. То есть, черный король находится на белом поле, белый на черном. Ограничений в направлении движения у фигуры нет. Она может во время игры перемещаться:

  • вперед или назад,
  • влево или вправо,
  • по всем диагоналям.

Но длина хода короля невелика, составляет всего клетку. У короля есть возможность «убить» противника при условии, что он находится на соседнем поле. Он не должен находиться в зоне действия чужой фигуры. Если у короля нет возможности уйти, укрыться, положение называется «мат», засчитывается поражение.

Перемещение ферзя

Иногда эту фигуру называют королевой, что вполне соответствует ее неограниченным возможностям. Не напрасно по значимости ферзь приравнивается к 9 пешкам, у него есть отличная возможность свободно перемещаться по всей доске, если нет помех. Как и у короля, у королевы есть привилегия, позволяющая двигаться во всех направлениях. Причем фигура способна передвигаться на любое количество полей, независимо от их цвета. Это самый мощный, мобильный участник сражения, жертвовать этой фигурой можно только в самом крайнем случае. Без ферзя выиграть партию очень сложно.

Правила движения слонов

Другое название фигуры «офицер». Эта фигура, действительно, как исполнительный воин может выполнить непростые задачи, сразить противника, находящегося на другой стороне доски. Для слонов существует несколько правил:

  • у каждого игрока в начале игры по 2 слона;
  • фигуры перемещаются только по полям своего цвета, на которых устанавливаются перед игрой;
  • слон ходит в шахматах только по диагоналям на любое количество клеток;
  • он не перескакивает через фигуры.

Если на диагональных направлениях, доступных для данного офицера, находятся фигуры противника, он может их «съесть». Для этого «убитый враг» убирается, на его место устанавливается слон. Согласно шкале ценностей, 1 офицер заменяет три пешки.

Движение коня по доске

У шахматного коня самая сложная траектория, эта фигура ходит по пути в форме буквы «Г». Для того чтобы ее переставить, нужно отсчитать три клетки по горизонтали или вертикали и одну клетку вправо или влево. Цвет полей для коня значения не имеет, всего у фигуры, стоящей в трех клетках от края или далее, имеется восемь вариантов перемещений. Они выбираются в зависимости от ситуации на доске. Преимуществом коня является его способность перескакивать через любую фигуру, их наличие для коня не является препятствием. Если на месте окончания его траектории находится вражеская единица, она убирается, считается «съеденной» (срубленной).

Передвижение ладьи

Некоторые шахматисты любители называют эту фигуру турой. Ее также игроки стараются сохранять, не жертвовать фигурой без особой надобности. Ценность ладьи заключается в ее свободном перемещении. Оно ограничено прямыми линиями. Но:

  • цвет полей не имеет значение;
  • передвигаться можно вперед и назад, влево и вправо;
  • количество клеток одного хода не ограничено;
  • есть возможность использовать рокировку.

Тура не перескакивает через фигуры, если на пути стоит вражеская единица, ее можно «срубить», поставить ладью на эту клетку, сбитую фигуру убрать.

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

Правила ходов пешками

Перед игрой восемь пешек устанавливаются в ряд на второй горизонтали перед крупными фигурами. Для белых шахмат это полоса под номером 2, для черных №7. Эти фигуры считаются незначительными, являются солдатами армии, которые выполняют мелкие задачи, нередко ими жертвуют для более важных целей. Однако умалять их роль не стоит, в некоторых случаях пешки могут переломить ход игры.

Правила перемещения у пешек простые, они ходят только на одну клетку вперед. Рубит противника пешка только по диагонали, фигуру, стоящую впереди, она «съесть» не может. Есть еще одно исключение. При первом ходе из первоначально выстроенного ряда пешку можно передвинуть вперед сразу на две клетки.

Все шахматные фигуры выполняют две важных задачи. Они обеспечивают защиту королю, предотвращая «пат» и «мат», стараются сбить как можно больше противников.

У пешки есть еще одна немаловажная цель - ей нужно дойти до противоположного края доски. Сделать это крайне сложно, так как на пути у нее очень много шансов быть «съеденной». К тому же этой фигурой часто жертвуют для защиты более важных единиц. Однако если такую задачу удастся выполнить, с пешкой происходит чудесное превращение, она может стать любой другой фигурой, нужной игроку в данный момент. В большинстве случаев она благополучно преобразуется в могущественную королеву. Но это необязательно, игрок может сделать выбор в пользу коня, туры или слона, если для победы ему нужны эти фигуры.

Начинать изучение шахмат можно разными способами. Вы можете осваивать игру с помощью наставника (родного человека, друга или знакомого), по самоучителю, в шахматной школе либо посредством специальных курсов, которых в интернете сегодня хватает. Какой бы вариант обучения вы ни выбрали, начинать нужно с основ - знать, сколько фигур в шахматах (а их 32 шт.) , как делаются ходы и прочее. Только после этого можно переходить к изучению игровых стратегий.

Сколько клеток в шахматах

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

Доска имеет квадратную форму и состоит из 64 чередующихся черных и белых клеток. На этом игровом поле располагаются фигуры. В начале партии они занимают по два нижних горизонтальных ряда со стороны каждого из соперников. Играют в шахматы, как правило, два человека, хотя гроссмейстеры могут вести одновременно несколько партий. Всего в игре принимают участие 32 фигуры, по 16 у каждого игрока. Впереди выстраивается пехота - пешки. Сзади ставят фигуры рангом выше, от короля до ладьи.

Поскольку некогда пришли в мир из Индии, назначение и названия фигурок достаточно колоритны. Здесь есть не только король-князь и военачальник-ферзь, но также по два коня, слона и ладьи.

Сколько ходов шахматах

Не только простые игроки, но и исследователи интересуются вопросом, сколько ходов в шахматах может быть сделано на протяжении партии. Существует даже такой термин, как «число Шеннона». В середине ХХ века математик из США Клод Шеннон смог вычислить приблизительное наименьшее число ходов, которые не будут повторяться. Ученый предположил, что в среднем каждый игрок перед очередным ходом просчитывает около 30 вариантов. В результате число Шеннона оказалось невероятно огромным - 10 в 120 степени.

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

Лучшие статьи по теме