Сколько шахматных фигур на доске. Название фигур в шахматах
Начинать изучение шахмат можно разными способами. Вы можете осваивать игру с помощью наставника (родного человека, друга или знакомого), по самоучителю, в шахматной школе либо посредством специальных курсов, которых в интернете сегодня хватает. Какой бы вариант обучения вы ни выбрали, начинать нужно с основ - знать, сколько фигур в шахматах (а их 32 шт.) , как делаются ходы и прочее. Только после этого можно переходить к изучению игровых стратегий.
Сколько клеток в шахматах
Самое увлекательное в шахматной партии - это, конечно, сам процесс. Но для того чтобы разыгрывать те или иные комбинации, нужно, по крайней мере, ориентироваться в том, что вы видите перед собой. Вопросов, которые задают начинающие игроки, достаточно много - что такое шахматы, сколько клеток на игровой доске и прочее. Начальные позиции выучить не так уж сложно.
Доска имеет квадратную форму и состоит из 64 чередующихся черных и белых клеток. На этом игровом поле располагаются фигуры. В начале партии они занимают по два нижних горизонтальных ряда со стороны каждого из соперников. Играют в шахматы, как правило, два человека, хотя гроссмейстеры могут вести одновременно несколько партий. Всего в игре принимают участие 32 фигуры, по 16 у каждого игрока. Впереди выстраивается пехота - пешки. Сзади ставят фигуры рангом выше, от короля до ладьи.
Поскольку некогда пришли в мир из Индии, назначение и названия фигурок достаточно колоритны. Здесь есть не только король-князь и военачальник-ферзь, но также по два коня, слона и ладьи.
Сколько ходов шахматах
Не только простые игроки, но и исследователи интересуются вопросом, сколько ходов в шахматах может быть сделано на протяжении партии. Существует даже такой термин, как «число Шеннона». В середине ХХ века математик из США Клод Шеннон смог вычислить приблизительное наименьшее число ходов, которые не будут повторяться. Ученый предположил, что в среднем каждый игрок перед очередным ходом просчитывает около 30 вариантов. В результате число Шеннона оказалось невероятно огромным - 10 в 120 степени.
Любые передвижения фигур должны подчиняться общей цели. Постарайтесь продумывать свою игровую концепцию и делать правильные ходы в шахматах. В противном случае вы будете без толку терять позиции, да и фигуры тоже. Например, не стоит без нужды передвигать пешки, прикрывающие короля. Причем мастера советуют во время дебюта стараться продвинуться ближе к центру поля. Это поможет вам держать ситуацию под контролем.
Шахматы – интеллектуальный вид спорта, который развивает логику, умение быстро думать и принимать решения. В эту игру еще очень давно играли короли и аристократы. Данная статья будет посвящена теме шахмат, ее фигурам и ходах на шахматном поле битвы.
Шахматная доска
Шахматная доска состоит из 64 полей. При этом, первые два ряда заполнены вашими фигурами, а последние два ряда – фигурами противника. Цель шахмат – поставить мат противнику. Мат – это ситуация, когда передвижение вражеского короля заблокировано вашими фигурами. Прежде чем понять, как ходят разные фигуры в шахматах, нужно выучить их названия. В шахматах всего 6 фигур. Рассмотрим каждую по отдельности.
Пешка
Пешка считается наименее значимой фигурой в шахматах. Несмотря на это, в определенных ситуациях она решает намного больше, чем все другие фигуры. Все зависит от расположения фигур на шахматной доске. У каждого игрока всего по 8 пешек. Они располагаются во втором ряду, со стороны каждого противника, впереди остальных фигур.
- Пешка ходит на одно или два поля вперед. Причем пойти пешкой сразу на два поля вперед можно только в том случае, если это ваш первый ход этой конкретной пешкой. Дальнейшее передвижение возможно только на одно поле.
- Ходить назад – нельзя.
- Убить вражескую фигуру пешкой можно одним полем по диагонали.
Любая фигура которой вы убили вражескую фигуру становится на то место, где стояла последняя.
Конь
Именно это фигурой начинают свой первый ход в партии многие любители шахмат. У каждого игрока по два коня. Конь ходит по “г-образному принципу” в любом направлении. Например, на два поля вперед и на одно влево или вправо. Точно таким образом конь может ходить в любом направлении и перепрыгивать через другие фигуры. Соответственно, убийство вражеской фигуры происходит там, куда пошел конь.
Слон
Слон ходит по диагонали. Причем его ходы ограничены тем цветом поля, на котором он стоит. Так как у каждого противника по два слона (один стоит на белом поле, второй – на черном), существует возможность ходить по диагонали как черного, так и белого цвета. Если путь свободен и на пути у фигуры нет вражеской, можно сделать ход через столько полей, сколько понадобится. Таким образом, если расстановка фигур во время игры позволяет, можно пойти слоном из одной части доски в другую, строго по диагонали.
Ладья
- Опять-таки, у каждого игрока по две ладьи.
- Ладья ходит по прямым линиям, как в горизонтальном, так и в вертикальном направлении.
- Как и в случае слона, если ситуация позволяет, можно ходить из одной стороны доски в другую.
- В отличие от коня, ладья не может перепрыгивать через фигуры.
Ферзь
Ферзь считается самой сильной фигурой в шахматах. Очень часто потеря ферзя приводит к поражению.
- У каждого игрока по одному ферзю.
- Направление ходов этой фигуры совмещает в себе направления ходов ладьи и слона, что дает ему огромное преимущество по сравнению с другими фигурами.
- Ферзя неофициально называют королевой. Так оно и есть, ферзь – королева шахматного поля.
Король
Вся суть игры сводится именно к этой фигуре. Цель каждого игрока – заблокировать передвижение вражескому королю и защитить своего. Именно для балансировки игры ранние создатели шахмат решили ограничить передвижение короля. Он может ходить всего-лишь на одно поле, в любом направлении.
Дополнительные возможности шахмат
Шахматы интересны еще и тем, что имеют невероятно огромный спектр действий и комбинаций, которые можно использовать для своего приближения к победе. Ниже приведен список этих дополнительных действий:
Рокировка
Суть рокировки в изменении расположения ладьи и короля. Существует два вида рокировки – длинная и короткая. Длинная рокировка возможна если между ладьей и королем три свободных поля. Чтобы сделать длинную рокировку необходимо ладью перенести на три поля в направлении короля, а короля на два поля в том направлении, где недавно стояла ладья. Короткая рокировка – почти тоже самое. Ладья перемещается на два поля, в направлении короля, а король на два поля в том направлении, где недавно стояла ладья.
Возможность поменять пешку на любую фигуру
Правила шахмат включают в себя такую полезную вещь, как замена пешки любой другой потерянной фигурой. Это происходит тогда, когда ваша пешка доходит до самого последнего ряда противника, т.е. в противоположный конец доски. Достигнув этой точки, вы можете заменить эту пешку на коня, слона, ладью или ферзя (если, конечно, вы их потеряли во время игры). Если есть выбор между этими фигурами, в основном выбирают ферзя. И это понятно.
Шахматы – очень развивающая игра. Она помогает поддерживать интеллектуальную форму. Для ребенка этот вид спорта особенно полезен. Если же у вас не получилось нормально сыграть в шахматы – не отчаивайтесь. Каспаров не всегда так играл.
Многие ученые предполагают, что игра в шахматы вызывает положительное движения в головном мозге, способствует выделению гормона радости и балансируют психологическое состояние. Можно сделать вывод – у шахмат нет отрицательных сторон. Как в других видах спорта, получить перелом просто невозможно. Подумайте, может быть в свободное время стоит занять его именно шахматами? Тем более, найти противника не проблема – интернет дает такую возможность.
Читаемого 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 |
«Классические» стоимости шахматного материала были получены интуитивно, путём осмысления шахматистами своего практического опыта. Предпринимались также попытки подвести под эти значения какую-то математическую базу - например, на основе мобильности фигур, числа полей, которые они могут держать под контролем. Мы же попробуем подойти к вопросу экспериментально - на базе анализа большого количества шахматных партий. Для вычисления стоимостей фигур нам не понадобится приближённая оценка позиций из этих партий - только их результаты, как самая объективная мера успеха в шахматах.
Материальный перевес и логистическая кривая
Для статистического анализа был взят 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.
Теги:
- шахматы
- регрессионный анализ
- машинное обучение
Шахматная фигура это специальная игровая единица, которая обладает определенными свойствами, заданными правилами игры. К этим свойствам относяться правила передвижения на шахматной доске, начальная позиция, название и силу.
Шахматные фигуры – это несколько шахматных фигур, образующих определенный комплект для каждого игрока. Как правило их 32 шкуки по 16 для каждого игрока. Один комплект имеет цвет "Черный", а другой "Белый".
К внешним свойствам шахматных фигур относится материал, размер и дизайн. Основным материалом, из которого изготавливают шахматы - это дерево и пластик. На рисунке показан пример профессиональных турнирных фигур:
Расстановка шахматных фигур
В начале игры Белые фигуры ставятся на 1-й и 2-й горизонталях, Черные фигуры – на 8-й и 7-й горизонталях, в строгом порядке, согласно правилу игры. На одном поле может размещена только одна фигура.
Ладьи ставят по углам доски, на вертикалях "a" и "h". Кони ставятся рядом с ладьями. После коней ставим слонов, а в середине ставятся ферзь и король. Как правило, проблем с запоминанием расстановки шахматных фигур на доске не возникает пробелм, но иногда начинающие шахматисты путают местами ферзя и короля. Чтобы всегда правильно ставить ферзь, нужно запомнить такую поговорку: "Ферзь любит свой цвет". Она говорит о том, что Белый ферзь ставиться на белое поле (d1), а Черный ферзь на черное (d8). Ниже показана расстановка начальных фигур:
Игровые особенности
У нас есть шесть уникальных шахматных фигур, каждая из которых имеет свое название: король, ферзь, ладья, слон, конь, пешка. У каждой фигуры есть свои определенные возможности. Некоторые малоподвижны с маленькой ударной силой, некоторые более подвижны, с большей силой. Одни ходят по белым, другие только по черным полям, есть которые ходят по всем полям доски. Даже есть фигуры, которые нужно защищать, под угрозой проигрыша. Поэтому, в шахматах не все фигуры равных.
Когда мы играем партию, то должны аккуратно разменивать фигуры, пытаясь разменять более слабую фигуру на более сильную фигуру оппонента. Иначе наш соперник получить большое материальное преимущество и с легкостью выиграет партию.
В этой таблице, мы приводим описание фигур, их ценность и на какие фигуры их можно менять:
Если против ферзя стоит три легкие фигуры, то это означает, что ферзя можно менять на три фигуры. Если Вы поменяете ферзя на одну легкую фигуры, то произойдет невыгодный размен и вы понесете материальные потери, а ваш противник получит шансы выиграть партию.
Если разменять ладью на слона с двумя пешками, то произойдет равноценный размен, но если ладь поменять на коня или слона, то здесь уже идет потеря качества (ладья более качественная, чем слон или конь). Обычно говорят, что игрок проиграл качество. Если вы меняете ладью на одну или две пекшу, то это уже материальные потери.
Во время партии, бывает возникают такие позиции, в которые слабые фигуры ведут успешную больбу против сильных шахматных фигур. Например: Слон сильнее ладьи, или ладья сильнее ферзя и т.д. Таким образом есть абсолютная и относительная сила фигур. Абсолютная сила указана в таблице, приведенной выше, а вот относительную силу измерить нельзя. Она зависит от игровой ситуации и в каждой позиции она может менять.
Высшее мастерство в шахматном искусстве это умения создавать такие позиции, когда слабые фигуры оказываются сильнее сильны.
В следующих уроках, мы подробно рассмотрим особенности каждой шахматной фигуры.
Игра в шахматы неисчерпаема, количество ходов за одну партию может быть достаточно большим, но как ходят фигуры в шахматах - знает далеко не каждый. По этой причине множество игроков на уровне любителей ежедневно играют в шахматы по собственным правилам, даже не осознавая, что они делают это неверно.
В таком случае следует разобраться с тем, откуда появились шахматы, название фигур, и как ходят они в том или ином случае. Огромное количество ходов, как правило, отпугивает новичков, хотя на самом деле бояться тут абсолютно нечего. Вникнув в игру, все сложности моментально исчезнут, ведь все многообразие позиций и всевозможных шахматных комбинаций основывается на элементарных передвижениях фигур.
Краткая история шахмат
На сегодняшний день все еще неизвестно точное происхождение шахмат, хотя существует несколько неплохих версий. Одна из них утверждает, что игра зародилась в Индии более двух тысячелетия назад. Историки, придерживающиеся этой версии, говорят, что шахматы являются результатом развития иных игр, имеющих с ними схожесть. Та игра, которой пользуются сейчас многие люди, стала известна только с XV века, а также она завоевала популярность в Европе.
Даже несмотря на то, что никто не знает, откуда эта игра пришла к нам, правила шахмат, как ходят фигуры и как можно одержать победу обманом, нам известно.
Цель игры
Наверняка многие люди знают, что для игры потребуется доска, где отмечены ровно 64 клетки (чередуются темные и светлые), а игроки должны занять места друг напротив друга. Непонятной, но в то же время предельно простой представляется нам игра в шахматы. Как ходят фигуры - будет рассказано ниже, а пока необходимо ознакомиться с целью игры.
Каждый из игроков имеет ровно 16 фигур:
- король;
- ферзь;
- 2 ладьи;
- 2 слона;
- 2 коня;
- 8 пешек.
Целью шахмат является постановка мата королю противника. Матом называется ситуация, когда одному из королей ставится угроза в виде фигуры соперника, то есть, король уже находится под шахом и никак не сможет избежать этого положения.
Начало
Перед тем как приступить к игре, следует установить доску таким образом, чтобы в нижнем правом углу у обоих соперников была расположена светлая клетка. Далее, расставляются фигуры по рядам:
- Ладьи по углам, рядом кони, затем слоны. В центре находятся ферзь (на клетке такого же цвета, как и сама фигура) и рядом на пустой клетке ставится король.
- Следующий ряд полностью состоит из пешек.
Первым должен ходить игрок, который выбрал фигуры светлого цвета. Если же возникает спор по поводу того, кто какими шахматами будет играть, можно подкинуть монету ("орел или решка") или же вслепую выбрать ту или иную фигуру (какого цвета она окажется, такого и будут все остальные).
Теперь необходимо разобраться с тем, как ходят фигуры в шахматах. Для новичков это сперва может показаться сложным, хотя на самом деле ничего особенного тут нет.
Как ходят фигуры в шахматах
Каждая фигура имеет собственную траекторию движения. Чтобы понять, как ходят фигуры в шахматах, не требуется ломать голову, поскольку эти правила предельно просты и запомнить их можно очень быстро.
Следует только лишь усвоить основные моменты:
- При осуществлении хода одни фигуры не проходят сквозь другие.
- Нельзя ходить на клетку, занятую своей же фигурой.
- Перед осуществлением хода необходимо подумать, как и какую фигуру расположить таким образом, чтобы она защищала свою территорию и могла в этом или следующем ходе брать фигуру соперника.
Король
Теперь следует рассмотреть каждую из фигур в отдельности. Для успешной игры недостаточно лишь знаний об основных моментах, рассказывающих о том, как ходят фигуры в шахматах. Для детей и взрослых наиболее интересной фигурой является король. Он одновременно самый важный, но и самый слабый. У него есть возможность передвижения исключительно на одну клетку, но совершенно в любую сторону, в том числе и по диагонали. Кроме этого, он не может стать на ту клетку, которая уже находится под шахом, то есть, где его сразу же возьмет фигура соперника.
Ферзь
Людей в любом возрасте могут заинтересовать шахматы. Как называются фигуры и как ходят - знают далеко не все. Стоит отметить, что с названием данной фигуры ознакомлены лишь те люди, которые имеют опыт игры в шахматы. Остальные же именуют ферзя королевой.
Ферзь является наиболее сильной и могущественной фигурой. Он, как и король, может передвигаться в любом направлении. В отличие от предыдущей фигуры у него есть возможность двигаться на любое число клеток, но не перескакивая через другие фигуры.
Ладья
Вопрос о том, как ходят фигуры в шахматах, а особенно самые сильные, является достаточно популярным не только среди новичков, но также и у любителей. Ладья - это уникальная фигура, которая совмещает в себе возможности и короля, и ферзя. То есть она может ходить на любое количество клеток, но только по вертикали или горизонтали. Кроме того, ладья легко может принять участие в рокировке вместе с королем.
Слон
Слон относится к разряду легких фигур и может передвигаться на любое количество клеток, но только по диагонали. Стоить отметить, что в самом начале игры один слон занимает темную клетку, а второй - светлую. За всю игру они никоим образом не могут изменить первоначальный цвет, поэтому у каждого игрока имеется две фигуры, которые могут пойти по диагонали и захватить фигуру соперника как на темной, так и на светлой клетке. Оба слона всегда должны работать сообща и прикрывать слабые стороны друг друга.
Конь
Единственная, поэтому и уникальная боевая единица шахмат - это конь. Только у него есть возможность перепрыгивать остальные фигуры. Ходит он исключительно буквой "Г". То есть сначала он передвигается на две клетки по горизонтали или вертикали, а затем на одну клетку, являющуюся перпендикулярной первоначальному направлению. В связи с тем, что у коня есть возможность перескакивать через иные фигуры, он может сделать шах королю, от которого тот не в состоянии закрыться.
Пешка
О том, какие фигуры в шахматах ходят первыми, знают, наверняка, многие люди. А вот как именно они ходят - это уже вопрос посложнее. Довольно необычная фигура - пешка, ходить может исключительно вперед на одну клетку и только по диагонали. В самом первом ходе пешка может пойти на пару клеток вперед. Направляться назад она ни в коем случае не может. Если же какая-либо фигура расположена прямо перед ней, то пешка не имеет возможности ни побить ее, ни сделать ход, пока место впереди не освободится.
Превращение
На первый взгляд пешка кажется ненужной фигурой, так как она слишком слаба. Но у нее есть одна интересная особенность, о которой знают только опытные игроки. Она заключается в том, что если пешка проходит весь путь до противоположной стороны, то становится любой другой фигурой (это явление получило название "превращение пешки"). Так может сделать только эта фигура и, как правило, ее превращают в ферзя. Существует и заблуждение, состоящее в том, что превращаться она может исключительно в одну из ранее взятых фигур, но на самом деле это не так.
Взятие на проходе
Еще одно правило, которое касается только пешек, получило название "взятие на проходе". Оно заключается в том, что если пешка сделала первый ход на две клетки и стала бок о бок с пешкой соперника, то у второй появляется возможность "съесть" первую, то есть взять на проходе, от чего и пошло название. Такой ситуацией разрешается пользоваться только во время следующего хода, то есть сразу же после перехода пешки на две клетки. Если же возможность была упущена, то в последующие ходы взять фигуру уже никак не получится.
Рокировка
Не менее важное правило, получившее именование "рокировка", состоит в осуществлении двух важных действий за один ход. Первое - это обезопасить короля, а вторая - убрать ладью из угла, запустив ее тем самым в игру. При рокировке у игрока появляется возможность переместить собственного короля на пару клеток в правую или левую сторону, а также передвинуть ладью из угла в клетку, находящуюся рядом с королем (с противоположной стороны). Но есть несколько условий, при которых разрешается рокировка:
- до этого король не осуществлял ни одного хода;
- соответствующая ладья также ни разу не ходила;
- между королем и ладьей отсутствуют прочие фигуры;
- король в это время не находится под шахом.
В направлении королевского фланга сам король располагается поближе к краю шахматной доски, что называется "короткой рокировкой", а противоположным ей ("длинной рокировкой") будет то же действие, но через все поле на место, где ранее располагался ферзь. Но при любом из этих вариантов король может передвигаться лишь на пару клеток.
Шах и мат
Как уже было сказано, главной задачей игроков является постановка мата королю соперника. Это будет конец игры, когда главная фигура находится под угрозой шаха и не имеет возможности ее избежать. Но все же есть несколько методов, благодаря которым можно уйти от шаха:
- перейти на другую клетку (за исключением метода рокировки);
- закрыться другой фигурой;
- взять фигуру, поставившую шах.
Если же таких возможностей нет, то королю ставится мат и игра завершается. Как правило, король не убирается с доски, как это делается со взятыми фигурами, а просто игра объявляется оконченной.
Ничья
Очень часто партия заканчивается ничьей. Для этого существует пять причин:
- нехватка на доске фигур для осуществления мата;
- было сделано уже 50 ходов, и за это время ни один из соперников не ходил пешкой и не смог взять ни одной фигуры;
- обычное согласие обоих игроков на ничью;
- возникновение пата, то есть у какого-то игрока нет возможности сделать ход;
- если на доске наблюдается одна и та же позиция в третий раз (не подряд).
В большинстве случаев при объявлении ничьи игроки по общему согласию начинают игру заново.