Приглашаю вас окунуться в удивительный и прекрасный мир шахматного программирования. Сначала, в первой главе, чисто для разогрева, мы, с доброй улыбкой, вспомним не такое уж далёкое прошлое, когда люди пытались имитировать работу шахматных программ. Гримасы истории! Сначала игру людей выдавали за игру шахматных автоматов, сегодня игру компьютерных программ выдают за игру людей. Во второй главе вас ждёт самое начало настоящей истории шахматного программирования, включая эпические битвы советских и американских программ. В третьей главе обзор современного состояния дел на поле шахматного боя. В четвёртой заключительной главе я приглашаю посмотреть мою шахматную партию с одним из лучших на сегодня шахматных ботов. Я вам немного завидую, уважаемый читатель. Вас ждут удивительные и интересные приключения. Добро пожаловать!
В 1777 году в популярной Берлинской газете "Berliner Unsinn und Anderes" было опубликовано необычное объявление.
"Для нового популярного проекта требуется маленький смышлёный мальчик примерно десяти лет. Работа лёгкая, лежачая. Мальчик должен быть спокоен, молчалив и хорошо знать математику. Желательно еврейской национальности. Оплата по договоренности. Бесплатное питание гарантируется в любом случае".
- Марта, дорогая! Мы спасены! - закричал Ганс Липке своей жене, прочитав это объявление, - один из наших десяти детей теперь не будет голодать! Иди сюда!
Жена Ганса Марта немедленно бросила стирку белья, вытерла руки о подол и надела очки.
- Ну и каким жуликам ты поверил на этот раз? - спросила Марта, начиная чтение, - где читать? Вот это что ли, "новый способ быстро разбогатеть?"
- Нет, ниже, там, где про "лежачего мальчика". Наверняка, это какой-то пансионат для особо одарённых детей евреев типа нашего Питера.
- А разве наш Питер еврей? - удивилась Марта.
- Тебе видней, ты ведь его рожала. Да это и неважно! Скажем, что еврей, как они узнают, так это или нет. Не будут же они измерять штангенциркулем его череп. Вообще, Питер по всем параметрам подходит. Маленький, постоянно лежит и молчит.
- А разве он знает математику?
- Сейчас проверим. Эй, Питер! Сколько будет дважды два?
- Четыре, - ответил Питер после минутного размышления.
- Гений! Вставай и собирайся. Пойдём на работу. Какая тебе разница, где лежать и молчать? А там тебя за это будут кормить.
Работодатель, некий Вондерганг фон Шахритер объяснил суть работы.
Имеется ящик из дорогого дерева. На этом ящике расположена шахматная доска с фигурами. Мальчик должен быть размещён лёжа внутрь ящика прямо под шахматную доску. Специальный механизм позволял мальчику чётко видеть движения фигур, а также передвигать их.
- Очень перспективная тема сейчас в Германии, да и вообще в Европе, - с энтузиазмом рассказывал Шахритер, - интерес народа к автоматизации шахматной игры просто зашкаливает. Несколько десятков шахматных автоматов ползают по нашей стране, огромные деньги заколачивают. Да, чуть не забыл. Ты, паренёк, хорошо в шахматы играешь?
Питер впал в глубокое раздумье.
- Задам вопрос попроще, - понимающе кивнул головой Шахритер, - ты в шахматы играть умеешь?
На этот вопрос Питер ответил довольно быстро:
- Не знаю, не пробовал.
- Не слушайте его! - закричал Ганс Липке, - он очень талантливый. Задачки по математике щёлкает как орехи. А любой математик - отличный шахматист, это всем известно.
- Ладно, - махнул рукой Шахритер, - я его научу. Шахматы - это просто. Вот бином Ньютона - это сложно. Питер, ты сам-то хочешь этим заниматься? Будешь работать шахматным автоматом?
- Буду, - ответил Питер неуверенно, но зато быстро.
- Попробовал бы ты только отказаться, - проворчал Ганс Липке, - я бы тебе сделал ход конём по голове, чтобы лучше соображал, чего ты хочешь делать, и чего ты будешь делать.
Так началась карьера Питера, одного из многих шахматных автоматов конца 18-го, начала 19-го веков. Несмотря на то, что "шахматы - это просто" по утверждению Шахритера и упорные тренировки, играл в шахматы Питер плохо. Зато он проявил себя в роли артиста. Когда он проигрывал, он начинал очень правдоподобно рыдать басом. Когда выигрывал (случилось и такое), очень язвительно обращался к сопернику, "вам матец, херр Миттельбрахенветтер, ха-ха-ха".
Народу нравились такие шоу. Нравилась даже относительно слабая игра Питера. Ведь у него мог выиграть даже слабый игрок, а это положительно сказывалось на интересе к автомату Питера. Какой интерес играть с автоматом, который всё время выигрывает?
Шахритер придумал хорошую систему ведения бизнеса. Партия игралась на довольно большую ставку, а также продавались недорогие билеты на просмотр игры. В результате, даже если Питер проигрывал, убыток с лихвой покрывался за счёт зрителей.
К тому же через пару лет, благодаря приобретённому опыту, качество игры Питера заметно улучшилось, что положительно сказывалось на доходах.
Беда подошла с другой стороны. Питер подрос и перестал помещаться в ящик. Можно, конечно, было заменить ящик на другой, больший по размеру.
Но хитрый Шахритер подошёл к решению проблемы с другой стороны. Он просто нашёл другого мальчика, более молодого, подходящего по габаритам. Питер перешёл на должность тренера, консультанта и ответственного за безопасность.
Так дело двигалось и дальше. Постепенно команда Шахритера увеличилась до десяти человек, работа находилась для всех. Для самых способных парней всё-таки делали новые ящики для игры. Другие работали на должностях "подай - поднеси". Ну, чисто как "Ласковый Май"!
Самым крупным успехом корпорации была партия одного из автоматов против самого Наполеона. В шахматы Наполеон играл плохо, но у автомата хватило ума эту партию проиграть. Это было правильное решение. Наполеон очень нервничал, когда проигрывал. В приступе ярости он вполне мог разгромить автомат и поколотить членов команды, тусовавшихся рядом.
Неплохо шли дела у Шахритера и его команды! Но только некоторое время.
Всё хорошее когда-нибудь кончается. Начались разоблачения конкурирующих автоматов, а через это у народа начал пропадать интерес к шахматной игре всех остальных профессионалов рынка. Народ желал играть именно с автоматами, а не с какими-то малогабаритными жуликами спрятанными внутрь.
Доходы сначала упали, а затем и вообще пропали.
Шахритер уехал в Америку в поисках новых идей, а участники его команды разошлись кто куда.
Вот такие гримасы истории! Если сейчас подозреваются люди в том, что они используют подсказки шахматных движков, то тогда подозревались автоматы в том, что за них думают люди.
Прошла эпоха шахматных автоматов со встроенными в них живыми людьми.
Началась эпоха настоящих шахматных автоматов, которые играют вполне самостоятельно.
Чтение советской и американской прессы 70-х годов прошлого XX-го века оставляет приятное послевкусие.
Конечно, нельзя было говорить о дружбе между СССР и США, но отношения явно улучшились по сравнению с послевоенными годами.
В американской прессе мелькают сообщения о смягчении давления американской бюрократии на Коммунистическую партию США. В частности, в 1973 году федеральный окружной суд в Аризоне постановил, что большая часть закона против американских коммунистов неконституционна, и Аризона должна допустить КП США к участию в голосовании на всеобщих выборах ("Блавис против Болина").
В советской прессе насмешки над убогим мещанским западным (в основном американским) образом жизни продолжались (в духе Михаила Задорнова "ну, тупые"). Но при этом явно начала изменяться эмоциональная окраска этих насмешек. Злая язвительная сатира потихоньку менялась на добродушный юмор с весёлыми приколами.
Вот мы читаем сообщение о нищем, который обитает на богатой парижской помойке. Ничего особо интересного в этом факте нет. Не было никакого секрета в том, что на этом Западе нищих огромное количество, как блох на бродячей собаке. Но именно в этом нищем была интересная изюминка. На своём плакате, ниже стандартного объявления "подайте плиз, кто сколько может жертве холокоста, бюрократии и бездушия", нищий сделал странную и наглую приписку "доллары США не принимаю".
Не знаю, придумал журналист эту хохму, или реально зафиксировал нечто подобное, но эта короткая заметка порождает у читателей множество мыслей, начиная от надежд, что долларовая долговая пирамида скоро рухнет до желания дать нищему полезный совет: "бери, дурачок, что дают, потом ненужное выбросишь".
Учёные экономисты по обе стороны океана начинают осторожно высказывать идеи о возможности "конвергенции" капитализма и социализма. При этом, в США должны усилиться социальные гарантии для трудящихся, а в СССР для "деловых людей" должны быть предоставлены возможности для полезных экономических частных инициатив (типа строительства личных дач и не только).
Самое главное, что в такой атмосфере о прямом военном конфликте не могло быть и речи. Решались вопросы о возможностях сотрудничества в разных областях.
В 1972 году в Москве председатель Совета министров СССР Алексей Косыгин и президент США Ричард Никсон подписывают "Соглашение о сотрудничестве в исследовании и использовании космического пространства в мирных целях". В 1975 году в рамках этого соглашения был реализован совместный полёт советского и американского пилотируемых космических кораблей со стыковкой на орбите (знаменитый проект "Союз - Аполлон").
Вот в таких условиях мирной конкуренции и делового сотрудничества СССР и США с явным желанием обеих сторон уйти от прямых военных столкновений в 1974 году состоялось грандиозное событие для всех любителей шахмат и прикладного программирования: первый в мире чемпионат мира среди шахматных программ.
Состоялось это мероприятие в Стокгольме во время конгресса ИФИП (IFIP, International Federation for Information Processing).
Лидерами в области шахматного программирования были американцы. В США было 50 действующих шахматных программ, во всем остальном мире (Европа + СССР) около 20. Также в США уже был богатый опыт проведения внутренних чемпионатов. Последний чемпионат США стал отборочным к первому чемпионату мира. Лучшими оказались программы: "Чесс-4.0", "Теч-2", "Хаос" и "Острич". Они и представляли США на этом турнире.
Что же касается нашей страны, то у нас в боевом режиме была единственная программа "Каисса" и ещё несколько программ в стадиях подготовки и перспективной разработки. Именно "Каисса" и представляла СССР на этом турнире.
По итогам турнира "Каисса" заняла первое место и завоевала золотую медаль весом 110 грамм.
После окончания турнира "Каисса" в виде бонусного трека сыграла дополнительную товарищескую партию с лучшей американской программой "Чесс-4.0". После долгой и упорной борьбы партия завершилась вничью.
Насколько сильно играли лучшие компьютерные программы в 1974 году? Мне представляется, если бы они играли в сегодняшних (2025 год) турнирах для людей, например, на популярном шахматном сайте "ЛиЧесс", то изначально показывали бы рейтинг в диапазоне 1800-2000 в блице с контролем 5+0. Для сравнения сегодняшние лучшие гроссмейстеры показывают здесь рейтинги 3000+ или, как минимум, около того. А если бы обсчитывали рейтинги современных лучших компьютерных программ типа "Стокфиш" и "АльфаЗирро" при их играх с людьми, то мы увидели бы рейтинги 4000+ или даже 5000+. Короче, эти современные роботы били бы всех людей без малейших шансов для последних. Примечание. При условии взаимной честной игры, но это уже совсем другая тема.
После первого чемпионата разработчики упорно работали над усовершенствованием своих программ.
В 1977 году состоялся второй чемпионат мира среди компьютерных программ в канадском городе Торонто.
Наша "Каисса" приняла участие и в этом чемпионате. Уже в первом туре чемпионка преподнесла неожиданный сюрприз для всех, включая зрителей, своих разработчиков и присутствовавших на турнире гроссмейстеров и мастеров.
Позиция из партии: "Duchess" - "Каисса", Торонто, 1977. Тур: 1.
"Каисса" до этого игравшая неплохо в этой чуть лучшей позиции вдруг делает ряд странных ходов, начиная отсюда: 29. … а5?
30. g4 Фe6
31. Лc6 a4?
32. Ф:а4 Лd6
33. Л:d6 Ф:d6
34. Фа8+
Здесь все ожидали естественного хода 34. … Крg7
Здесь все ожидали естественного хода 34. … Крg7
Но "Каисса" вдруг ставит под бой ладью 34. … Лe8 и затем постепенно проигрывает без каких-либо шансов.
После партии, когда Каиссу спросили, в чем дело, она объяснила, что ход 34. ... Крg7 гораздо хуже, чем сделанный ею ход 34. ... Лe8.
В доказательство "Каисса" показала такой вариант:
34. ... Крg7 35.Фf8+! Крxf8 36. Сh6+ Сg7 37. Лc8+
"Каисса" демонстрирует вариант, которые не увидели даже гроссмейстеры
37. … Фd8 38. Л:d8+ Лe8 39. Л:e8X.
Специалисты, среди них были гроссмейстеры Ботвинник, Эдуард Ласкер, Ганс Берлинер, канадский международный мастер Леон Пиасетский эту комбинацию не обнаружили и объясняли народу этот заскок Каиссы "несовершенством шахматных программ".
В конечном результате турнира Каисса разделила 2—3 места с программой Duchess. Победила в чемпионате программа "Чесс-4.0".
До сих пор идут диспуты, а увидела бы программа Duchess во время партии этот выигрывающий ход 35.Фf8+
Далеко не факт, учитывая, ограниченность времени на обдумывание в турнирной партии.
В любом случае, если ход 34. ... Лe8 объективно сильнее (т.к. затягивал поражение на много ходов), то никто не будет спорить, что практических шансов больше у скромного хода 34. ... Крg7
Мне стало любопытно, а как бы в критической позиции пошла бы современная программа: 34. ... Лe8 или 34. ... Крg7 - ?
Я задал этот вопрос "Стокфишу" и получил ответ: 34. ... Лe8
Вот так!
Такие тонкие психологические моменты не понимали шахматные программы в 1977-м году, не понимают их они и сейчас, в 2025-м.
Возьмем этот факт на заметку, он нам пригодится для дальнейших рассуждений.
А как вообще роботы научились играть в шахматы? Точнее говоря, кто был их первым учителем?
Вообще говоря, много умнейших людей брались за эту интереснейшую проблему и решали её с разной степенью успеха.
Традиционно считается, что самым первым шахматным программистом в мире был Алан Тьюринг. В 1951 году он написал алгоритм Turochamp, с помощью которого машина могла бы играть в шахматы. Самое забавное, что это был чисто теоретический труд. У Алана не было компьютера, чтобы проверить свою программу на практике.
Тем не менее, его идеи были использованы другими учёными, а идеи тех, в свою очередь, новыми учёными, и вот, что мы имеем в сухом остатке.
Попробуем набросать примерный алгоритм игры в шахматы.
Что нам нужно сделать? Написать программу, которая умеет находить сильнейший ход в любой позиции.
Немного подумав, почитав разных полезных статей, становится ясно, что тут есть 2 принципиальных краеугольных камня.
Функция, которая оценивает позицию (оценочная функция).
Функция, которая как-то умеет определять максимальную глубину просмотра.
Давайте, попробуем набросать функцию, которая оценивает позицию.
Для простоты пока сделаем глубину просмотра равную одному полуходу и анализировать будем начальную позицию.
Начальная позиция. Оценка компьютера: +0.2 (незначительное преимущество белых)
Опять же для простоты, чтобы не перенапрягать мозг, возьмем для оценки позиции следующие факторы (первые, которые пришли в голову).
Материал.
Количество пробиваемых полей (ударов по свободным полям).
Премия за очередь хода.
Проверка: нет ли кому-то вообще мата (пата) в данной позиции?
Материал Белые = 2Л*4.5+2К*3.0+2С*3.1+1Ф*9.0+8п*1.0=9+6+6.2+9+8=38.2
Материал Черные = 2Л*4.5+2К*3.0+2С*3.1+1Ф*9.0+8п*1.0=9+6+6.2+9+8=38.2
Количество пробиваемых полей Белые = 14 (пешки) + 4 (кони) = 18 (1.8 баллов)
Получается следующий результат. Если применять данную оценочную функцию и использовать глубину расчета на 1 полуход, то в данной позиции получаются лучшие ходы: e3 или е4.
Теперь мы можем уточнить оценку начальной позиции. Если изначально она была равна 0, то после первого полухода стала равной 0.9.
Разумеется, если мы посмотрим чуть глубже (т.е. оценим все позиции после всех возможных 2-х полуходов), то оценка начальной позиции опять изменится. Наверное, она опять станет равной 0, например, после 1. e4 e6.
А если посмотреть немного глубже, хотя бы на 20 полуходов? Все это, конечно, можно сделать, посвятив этому процессу месяц или два, но это уже всё сделано до нас.
Предлагаю теперь уже полностью перейти в наш текущий 2025 год и зайти в гости в компанию, которая занимается шахматным программированием.
Время энтузиастов новичков, как, например, Алан Тьюринг, в шахматном программировании безвозвратно прошло.
Настало время энтузиастов - коллективов!
Таких коллективов, занимающихся шахматным программированием, несколько сотен. Некоторые из них работают на коммерческой основе, другие привлекают волонтёров на бесплатной основе.
Возможно, вас удивит, что люди соглашаются работать бесплатно.
Но в этой системе есть свои плюсы. Во-первых, в такую компанию проще попасть разработчику-новичку. Во-вторых, это приятное чувство, когда работаешь чисто из любви к искусству, а не за деньги. В третьих, это отличная практическая тренировка и приобретение навыков работы в коллективе.
Обратите внимание, что для разработки хорошего шахматного движка требуются не только разработчики, но и знатоки предметной области, постановщики и тестировщики.
Теперь, давайте, вернёмся к разработке оценочной функции шахматной позиции.
Упростив нашу задачу. Пусть, нам нужно всего лишь рассчитать последствия хода 1. е4 на три полухода вперёд.
Дерево расчёта вариантов после 1. e4
Здесь следуя системе "МиниМакс" (последовательно выбирая лучшие ходы за белых и чёрных), приходим к выводу, что лучший вариант для обеих сторон такой 1. e4 e5 2. Кf3
Но это неточно.
Надо понимать, что после каждого полухода все эти оценки тотально изменяются (уточняются). К тому же соперник может выбрать для себя не лучший ход. В этом случае мы вообще перепрыгиваем на другую ветку и рассчитываем варианты уже в ней.
И самое важное. Оценочная функция постоянно меняется, дорабатывается и даже перерабатывается.
Работа в компаниях, которые занимаются шахматным программированием (и/или похожими разработками) во многом заключается в улучшение и модернизации текущей версии оценочной функции.
Вот пример процесса совещания в такой компании.
И новая версия оценочной функции передаётся в группу тестировщиков.
Да, примерно так все и работает, методом "научного тыка".
Сначала, оценочные функции были крайне слабые, вроде той, которую мы тут с вами набросали на коленках. Но за время с 1951 года методом "научного тыка" эти функции становились все лучше и лучше, а компьютеры все быстрее и быстрее.
Но по-прежнему, мощности компьютеров не хватает, чтобы просчитать позицию насквозь "до конца" или просто на значительную глубину, поэтому высоко ценятся "специалисты по обрезанию".
А как правильно и аккуратно обрезать дерево вариантов?
Казалось бы, простая проблема - обрезать дерево.
Например, запретить явно глупые варианты типа таких:
1. e4 e5 2. Крe2
1. e4 e5 2. Фh5 Кc6 3. Ф:f7+? Оценка позиции: -6.9 (явное преимущество чёрных)
Человеку - шахматисту, даже начинающему, это объяснить просто (что указанные варианты не выгодны белым). Но как это объяснить компьютерной программе?
Можно, конечно, сделать так, что при больших материальных потерях (как во втором случае) беспощадно резать всю ветку и дальше не тратить время на анализ. Но вдруг это не глупая потеря ферзя, а гениальная жертва и положительный эффект скажется только через 5 или 10 полуходов? А мы заранее зарезали гениальную идею?
Человек, конечно, сразу интуитивно понимает, что тут ничего не может быть хорошего для белых, ни через 5, ни через 10 или 30 ходов.
Но компьютер изначально отвергает такие понятия как "интуиция" и твердо требует четких доказательств.
Очень показательна к этому вопросу позиция из партии:
Бронштейн - Геллер, Чемпионат СССР, 1961. Тур: 1.
Бронштейн - Геллер, Чемпионат СССР, 1961. Тур: 1.
Начнем с простого частного вопроса от которого попытаемся оттолкнуться к общим выводам.
Нужно ли сразу срезать ход 1. Фh7+ ?
Хочется срезать, но ведь после него возможен такой вариант:
1. Фh7+ Кр:h7 2. Л:f7 e2 3. Л:g7+ Крh8 4. Кg6X
1. Фh7+ Кр:h7 2. Л:f7 e2 3. Л:g7+ Крh8 4. Кg6X
Все-таки, ход 1. Фh7+ плохой, т.к. черные на втором ходу могут сыграть 2. ... Лg8, опровергая комбинацию белых.
Опровержение комбинации: 1. Фh7+ Кр:h7 2. Л:f7 Лg8
Да, но поняли мы это не сразу, на базе оценке позиции после 1. Фh7+, а копнув чуть глубже.
К тому же у белых есть несколько красивых ходов с жертвами, которые все-таки приводят к их победе.
1. Л:f7
1. Л:f7 приводит к победе белых
Не только оставляем под боем ферзя, но еще и ладью предлагаем в жертву.
Ферзя нельзя брать из-за 2. Л:g7+ и 3. Кg6X
Ладью нельзя брать из-за 2. Фg6+ и 3. Фg7X
В любом случае, мат в 6 ходов неизбежен.
Бронштейн нашёл в этой позиции еще более красивый и точный путь к победе 1. Фg6!
1. Фg6! красивый и точный путь к победе белых
Этот ход ставит перед чёрным королём принципиальный вопрос: каким способом хотите получить мат, Ваше величество? В любом случае, мат не позднее второго хода неизбежен.
А перед нами возникает важный вопрос. Как сделать, чтобы программа могла различать "красивые правильные жертвы" (типа 1. Л:f7 и 1. Фg6) и просто глупости с потерей материала без компенсации (типа 1. Фh7+)?
Возникает такая идея. Резать все глупые ходы не сразу, а, например, после их анализа на 6 (например) полуходов.
Т. е., если после жертвы мы в течение 6 полуходов не ставим мат, не восстанавливаем материал, то режем этот первичный ход (например, 1. Фh7+ в нашем примере).
На данной позиции эта идея работает, давайте, посмотрим более сложную позицию.
Позиция из партии:
Авербах - Котов, Международный турнир гроссмейстеров, Нейгаузен-Цюрих, 1953. Тур: 14.
Авербах - Котов, Международный турнир гроссмейстеров, Нейгаузен-Цюрих, 1953. Тур: 14.
Здесь, благодаря нашему правилу "6 полуходов" мы успешно (и, главное, экономично) срежем такие глупости как:
1. ... Фb5
1. ... Фc6
1. ... Фe6
Но возникает вопрос: не срежем ли мы заодно и гениальный ход Котова 1. ... Ф:h3+ - ?
Ведь после ходов:
1. ... Ф:h3+ 2. Кр:h3 Лh6+ 3. Крg4 Kf6+ 4. Крf5
1. ... Ф:h3+ 2. Кр:h3 Лh6+ 3. Крg4 Kf6+ 4. Крf5
Лимит на 6 полуходов исчерпан, мата нет, материал в недостатке.
Получается, что надо резать ход 1. ... Ф:h3+
Но, с другой стороны, банальная человеческая интуиция говорила Котову о том, что позиция чёрных лучше (если не выиграна), например, после ходов 4. ... Кd7 (как пошёл Котов), или 4. ... Кg4, или 4. ... Кh5.
Что же нам делать? Как вместе с грязной водой не выплеснуть ребенка?
Может, увеличить глубину просмотра "сомнительных" ходов от 6 до 30 - ?
Может быть, может быть. Это и есть одна из основных проблем, которые решают разработчики шахматных игровых программ.
В прошлом веке среди специалистов по компьютерным шахматам доминировало мнение, что шахматная программа будет в нашем веке явным ИИ с мышлением, похожим на человеческое мышление, но только "очень быстрое".
Получилось в результате всё-таки немного не так. Все современные шахматные боты, это просто программы с несколькими основными функционалами (правила игры, функция оценки позиции, система обрезания).
Система обрезания - это сложный функционал, но на ИИ немного не дотягивает.
По факту рулит всё-таки в основном банальная "грубая сила" ("brute force"). А перспектива видится следующая. Лет через 20-30 компьютеры станут примерно в 1000 раз быстрее современных, и это позволит программам просчитать варианты от начала до конца без всякого обрезания. Это хотя опять же не ИИ, но тоже довольно интересно. Мы раскроем две главные шахматные тайны, какой первый ход за белых является сильнейшим, а также как правильно оценить начальную позицию. Это ничья или выигрыш белых?
Должен обратить внимание, на такую забавную особенность шахматной игры со стороны современных роботов. Хотя они и не могут оценить красоту шахмат и ничего не понимают в этой красоте, просто стремятся к результату, но порой создают такие шедевры, что хочется встать, снять шляпу и восхищенно прошептать, "какая неземная нечеловеческая красота!"
"Стокфиш" - Константин Оборотов (тестовая партия, 2025)
Это концовка из моей тренировочной партии со "Стокфишем", которую я играл чёрными.
Здесь я по своей наивности рассчитывал на ничью, но "Стокфиш" неожиданно поставил мне мат сказочной неземной красоты.
1. Лh4+ gh 2. g4X
Гениальная жертва ладьи и мат в два хода: 1. Лh4+ gh 2. g4X
На заключительную позицию можно любоваться часами. Неземная сказочная красота, чисто Рембрандт, картина "Избиение чёрного короля белым пехотинцем"! И создана эта красота сущностью, которая в принципе красоту понимать не может.
Возникает такой вопрос. Если сегодняшние шахматные роботы (образца 2025 года) и играют сильно, и уже умеют лучше чем люди создавать красивые шахматные композиции, то есть ли у них вообще хоть какие-то слабости на шахматном поле боя?
Да, пока ещё у шахматных программ есть очень забавные слабости.
Рассмотрим для примера вот такую позицию.
Позиция равная, но оценка компьютера: +3.9
Несмотря на материальный перевес белых, позиция равная, оценка должна быть 0.0 (а компьютер оценивает +3.9).
Здесь у белых есть возможность прорыва путем жертвы ладьи на b6.
Но чёрные держат ничью, разместив короля на полях a8 и b8, приняв жертву ладьи именно пешкой a.
В этом случае белые никак не смогут пробить эту крепость.
Это очень просто и легко объяснить человеку, который пусть даже пока новичок в шахматах.
Но бот эту позицию оценивает в пользу белых, даже после десяти минут размышления. Компьютерный разум не понимает, что здесь битая ничья. Несмотря на то, что вариантов здесь не так уж и много, но все равно, компьютерной мощи не хватает, чтобы просчитать эту позицию до конца и правильно оценить эту позицию.
Давайте, попробуем немного изменить эту позицию.
Позиция без принципиальной разницы, но оценка компьютера другая
Мы добавили чёрным ладью и слона, но это никак не должно отразиться на оценке позиции. Ведь чёрные фигуры надёжно заперты за пешечной цепью. Нет никакой даже чисто теоретической возможности использовать эти фигуры.
Тем не менее, почему-то для компьютера разница есть. Если первой позиции оценка была +3.9, то теперь оценка +1.0
Конечно, на практике такие почти полностью закрытые позиции встречаются редко, но здесь мы наглядно видим, в чём слабость мышления современных компьютерных шахматных программ.
Прочитать позицию до конца пока не хватает вычислительных ресурсов, а человеческой интуиции нет вообще никакой.
Теперь я приглашаю вас посмотреть показательную партию, человек против бота, которую я играл чёрными.
Эту партию я играл на Личесс чёрными против движка Stockfish на высшем уровне, но с форой в виде коня, которого изначально убрали с поля бэ один.
"Стокфиш" - Константин Оборотов (тестовая партия с форой, 2025)
Играть против робота на равных нет смысла и интереса, он легко выигрывает даже у гроссмейстеров.
Поэтому есть смысл в начальной позиции дать себе фору.
Для своей силы игры я экспериментальным путём выяснил, что с лишним конём могу играть почти на равных.
Контроль времени: 5 минут на партию без добавки.
Испанская партия
Путём случайного выбора Стокфиш выбрал испанскую партию с разменом слона на коня цэ шесть. Это плохая идея и даёт мне шанс на успешные размены в дальнейшем.
Испанская партия, разменный вариант
Подчеркну такую мысль. На этом высшем уровне даже с нехваткой материала "Стокфиш" играет очень сильно.
Но сыграв с ним несколько партий, я подметил некоторые недостатки, которые для человека были бы странными, но вот для компьютерной программы - обычное дело.
"Стокфиш" не понимает, что его главное преимущество против человека это игра в сложных разбалансированных позициях. Ему надо старательно избегать разменов и порой делать ходы пусть даже не самые сильные, но сложные для человека.
Не забываем, что это партия блиц 5+0, обычно считается, что в блице боты играют еще сильнее против человека, чем при классических контролях.
Чёрный слон вынуждает дальнейшие размены
Цель человека, который играет чёрными просто и понятна. Меняться, упрощать позицию и старательно избегать малейших осложнений.
Тяжёлый выбор для белых: менять ли ферзей?
Оценка позиции снизилась до минус 4.6
После размена на эф три белым надо либо менять ферзей, либо играть при ферзях и испорченной пешечной структуре.
Интуиция подсказывает, что лучше было бы всё-таки сохранить ферзей, игра с ферзями всегда к пользе бота, когда он играет против человека.
Проблема только в том, что у бота нет интуиции.
Позиция сильно упростилась, это к выгоде чёрных
Позиция сильно упростилась, это к выгоде чёрных. Моей задачей и является меняться, как можно больше, чтобы свести дело к технически простому выигранному эндшпилю.
Чёрным нужно развить королевский фланг
Чёрным удалось полностью упростить позицию. Осталось только развить королевский фланг.
Робот не понимает, что ему нужно старательно избегать разменов
Здесь белым надо было избегать размена ладей, но бот не против дальнейшего упрощения позиции.
Только бы не зевнуть в начисто выигранной позиции, как я обычно это делаю!
Даже в такой позиции у белых ещё есть какие-то шансы. Человек всегда находит возможности "зевнуть" даже в такой абсолютно выигранной позиции.
Все фигуры разменяны, оценка позиции упала до -6.4
Все фигуры разменяны, оценка позиции упала до -6.4
Последняя надежда белых: пешка e
У белых нет никакой компенсации за фигуру. Их последняя надежда, что человек на эмоциях зевнёт и пропустит в ферзи белую пешку по линии е.
Интересно, что тут бот уже видит мат в 16 ходов. Я, конечно, такого мата не вижу, но это не меняет исхода партии.
Чёрный слон тормозит движение белой пешки
Чёрные играют внимательно, не оставляя роботу ни малейшего шанса. Чёрный слон тормозит движение белой пешки. Дальнейшая игра - простейшая техника.
Нет прогресса! Мат, по-прежнему в 16 ходов
Интересно, что, вероятно, чёрные играли неидеально. Мат, по-прежнему только в 16 ходов, не раньше.
Главное, не поставить какой-то случайный пат
Чёрные далее забирают последнюю белую пешку, отдают ненужного слона и проводят обе свои пешки в ферзи. Главное, не поставить какой-то случайный пат. Но времени у чёрных много, истрачено всего-то полторы минуты из пяти. Можно не спешить, чтобы не ошибиться случайно.
Главное, не поставить какой-то случайный пат
Партия закончилась вот таким матом.
Ниже я предлагаю вам посмотреть эту же партию в форматах gif ("живая картинка") и mp4 (видео со звуком).
В видео формате есть инструкция, как самому настроить игру с ботом и сразиться с ним.
Формат gif ("живая картинка")
Основные выводы из текущего состояния дел на 2025 год по развитию шахматных программ. Пока эти программы нельзя назвать "Искусственным Интеллектом". Это всего лишь "быстрые считалки с подрезанием веток ненужных вариантов". Но некоторые элементы "ИИ" вполне можно внедрить и сегодня. Например, бот может учитывать особенности стиля его противника исходя из доступной информации на его аккаунте (рейтинг, сыгранные партии и т п.). Как минимум, при игре бот должен учитывать, что играя против человека или против брата-бота, надо придерживаться разных стилей.
Вот и все, что мне хотелось рассказать вам о шахматном программировании.
Желаю вам успеха, как в шахматах, так и в программировании!