среда, 27 января 2010 г.

Endgame & Chess Engines (p. 1)

Эндшпиль и шахматные движки


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

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

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

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

Тем не менее, у всех движков есть набор определенных хронических недостатков, которые в миттельшпиле почти никогда не проявляются (скажем, в 1% позиций), а в эндшпиле проявляются редко (примерно в 20%). Другими словами, в миттельшпиле человек разыграет сильнее движка одну позицию из ста, а в эндшпиле - каждую пятую. Эта оценка весьма условна, - и у меня есть предположение, что реальное соотношение сил намного более оптимистично в пользу наших железных помощников.

Итак, что относится к недостаткам игры движков в эндшпиле?

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

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

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

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

Указанные выше проблемы частично снимаются кэшированием оценок и ручным удлинением анализа.

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

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

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

Как соотносится количество эндшпилей, где движки сильны, с количеством эндшпилей, где они слабы, можно оценить на примере книги Шерешевского. Я внимательно изучил этот прекрасный учебник с движками, и могу сказать, что анализ примерно каждого второго эндшпиля нуждается в серьезной корректировке, а полное изменение оценки (часто с = на +-) – примерно каждого пятого. Если вспомнить, что книга была написана в докомпьютерную эпоху, то становится ясно, что люди вряд ли понимают эндшпиль лучше движков.

Например, взглянем на стр. 16, где приведена партия Луков – Семков.


r3r1k1/1b2Pp1p/2nR4/2p1RP2/8/8/BP3PPP/1K6 w - - 0 0

Критическая позиция возникла после 1.Rxc6 Bxc6 2.f6 h6 3.Re3

И здесь вместо 3...с4 правильно хладнокровное, чисто компьютерное 3...Ra4!, не избегая угрозы 4.Rg3+ Kh8 5.Bxf7 ввиду 5...Rf4! 6.Bxe8 Bxe8 7.Rf3 Rxf3 8.gxf3, и белые, несмотря на 4 пешки за слона, рискуют только проиграть, т.к. поле h1 соответствует цвету слона.

Далее, на 18-й странице приведена партия Миллер – Вельтмандер. Опустив несколько вступительных ходов, остановимся на следующей позиции:


8/5p2/5R2/p2k4/2pP2P1/1p6/2b5/5RK1 w - - 0 0

После хладнокровнейшего 6.Kf2!! (вместо 6.Ra6?) 6...Kxd4 7.Rxf7! b2 8.Rd7+ Kc5 9.Ke3 выигрывают белые.

Тимман – Глигорич, 19-я страница. После одиннадцати ходов возник острый эндшпиль, где у белых не хватает ладьи, но в качестве компенсации две опаснейшие проходные пешки.


7k/6p1/5p1p/1PKR1P2/2P5/6P1/3r3r/8 b - - 0 10

Решает единственный ход 11…Kg8!! (не упомянутый в книге). Далее несложно с помощью тех же движков проверить, что черные безжалостно расправляются с обеими проходными соперника и выигрывают.

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

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


7k/8/8/8/8/8/6BP/7K w - - 0 1

затем оценка Рыбки (около +5.00), и на основании этого делаются выводы о том, что движки ничего не понимают в теоретически ничейных эндшпилях. На самом деле анализировать движками позицию, которая есть в эндшпильных таблицах, все равно что перемножать в уме трехзначные числа, когда у вас под рукой лежит калькулятор. Большинство малофигурных эндшпилей движки играют из рук вон плохо, но это, тем не менее, их слабостью не является.

Причем этой ошибке подвержены не только любители, но и известные международные гроссмейстеры. Откроем журнал «64 – шахматное обозрение» №12/2009 на странице 63.

Маршалл – Капабланка

Нью-Йорк, 1909

9-я партия матча


8/8/8/p5KP/1r3R2/k7/8/8 w - - 0 4

После 61-го хода черных гроссмейстер Зайцев дает такой комментарий: «теперь ничья становится уже очевидной, хотя электронная обитательница глубин – Рыбка – продолжает оценивать позицию как выигранную для белых».

Я уже умолчу о том, что это табличный эндшпиль, который, согласно исследованию Opening Master, составляет почти 13% всех эндшпилей и имеет вторую вероятность появления в партии. Следовательно, такие таблицы должны быть у всех аналитиков.

Даже без таблиц через секунду Рыбка снижает оценку до +0.25: = (0.25) Depth: 19 00:00:01 68kN, а еще через минуту – почти до нуля.

Для чистоты эксперимента я запустил движок в этой позиции 10 раз, предварительно очищая кэш перед каждым запуском. Максимальное время снижения оценки ~20 секунд, минимальное – 1 секунда. Как автор статьи умудрился заставить Рыбку выдать +-, я до сих пор не представляю.

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


6k1/7p/5KpP/4BpP1/5P2/8/8/8 w - - 0 1

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


8/2K5/1p6/1P4k1/5p2/8/6P1/8 w - - 0 1

Некоторые общие особенности игры при переходе в эндшпиль (младший эндшпиль)


Дворецкий – Смыслов

Одесса, 1974


3k1b1r/1pp2ppp/p1p5/8/4P3/2N1qPP1/PPP2P2/3R2K1 b - - 0 0

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

Движки не видят разницы между правильными продолжениями 1…Bd6 2.fe Ke7 или 1…Qd4 2.Rd4 Ke7 и стратегически неправильным 1…Kc8. Более того, после 1…Kc8 2.fe на первых строчках вновь появляется неверный ход 2…g6 или даже 2…h5.

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

В партии было сыграно 1...Kc8 2.fxe3 g6 3.e5 Bg7 4.f4 f6 5.exf6 Bxf6 6.e4


2k4r/1pp4p/p1p2bp1/8/4PP2/2N3P1/PPP5/3R2K1 b - - 0 5

И здесь поначалу на первых линиях движков абсолютно самоубийственное 6...Bxc3? 7.bxc3 Rd8? 8.Rxd8+ Kxd8 9.g4 – человеку совершенно ясно, что пешечный эндшпиль для черных безнадежен. Справедливости ради я сразу замечу, что по мере углубления анализа движок сначала отказывается от размена слона на коня, а затем и от размена ладей.

Классический пример ошибочных разменов в адвансе был разыгран в финале чемпионата Бессмертного форума:

WildCat – Jadn

Immortal ch final 2, 2009


3r2k1/pp3ppp/8/2n5/2PNr3/4P3/PP1K2PP/3R3R b - - 0 21

Небольшой перевес белых объясняется лишь большей активностью короля. Черным, по крайней мере до выхода собственного короля в игру, следовало избегать любых упрощений. Вместо этого Jadn разменял коней и пару ладей: 21... Ne6? 22. Kc2 Nxd4+ 23. Rxd4 Rexd4 24. exd4 Rxd4 25. Kc3 Rd6, и здесь у белых уже просто лишняя фигура - король! Движки не понимают, что позиция с конями и парой ладей еще ничейна, а чистый ладейник уже безнадежен.

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

Более сложный пример, где движки не видят удачного размена.

Романишин – Карпов

Москва, 1983


8/5ppk/6b1/4q1p1/6P1/3p1B1P/3Q1PK1/8 b - - 0 43

Положение черных выиграно. Но белые очень прочно укрепились на последнем рубеже обороны, и прорвать эту крепость без помощи человека непросто. Какой план игры выбрать черным? Ясно, что поскольку проходная пешка не отдаленная, ферзей менять нельзя. Проще всего разменять слонов и перейти в ферзевый эндшпиль, который теоретически выигран. Значит, наилучший ход 1…Be4! 2.Qe3 Bxf3+ 3.Qxf3 Qb5 4.Qe4+ Kh6 и теперь даже после сильнейшего хода 6.f4 gxf4 7.Qxf4+ Kh7 8.Qxf7 d2 9.Qf3 Qc4 10.Qf5+ Kg8 11.Qf3 Qd4! черные выигрывают. Размен слонов – возможно, не единственный путь, но наверняка самый быстрый.

С проблемой размена тесно связана оценка силы проходных при переходе из миттельшпиля в эндшпиль.

Gangaman – Vitamix

Премьер-лига Chess-Online, 2009


3r2k1/1Q3pp1/p6p/q2p4/2r2P2/b7/5BPP/R2R3K b - - 0 30

У черных две лишние пешки. Одну из них, впрочем, все равно придется отдать, разменяв к тому же пару фигур. Мне предстояло решить, в какой редакции провести все размены, чтобы перейти в выигранный эндшпиль. Во-первых, держаться нужно за пешку а6, т.к. она гораздо опаснее проходной d5. После того как белые заберут пешку d5, получится классическое окончание 3 против 3 на одном фланге и проходная на другом. Далее, следует разобраться, какие фигуры лучше разменять. Из теории эндшпилей известно, что слоновые окончания (одноцветные) с таким соотношением пешечного материала выиграны всегда, ферзево-слоновые - тоже. Если на доске останутся ладьи, то результат во многом будет зависеть от их активности и того, насколько продвинется проходная пешка.

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

После этого правильное решение элементарно: 30...d4! 31.Qf3 d3! 32.Rxd3 Rxd3 33.Qxd3 Rc1+! 34.Rxc1 Bxc1 -+

Первой линий Робболита d3 и Рыбки 3 было 30...Rc2? 31.Bb6 Qb4? 32.Qxa6 Rd6 33.Qa8+ Kh7 34.Qxa3 Qxa3 35.Rxa3 Rxb6 Хотя оценки движков в вариантах почти не отличаются, в первом варианте черные быстро выигрывают, а во втором получается ничья.

В последнюю очередь вкратце рассмотрим такой пока недоступный движкам прием, как построение крепости.

Несколько знаменитых этюдов:


8/6B1/8/2K5/2p1kppp/2P5/2P2PP1/8 w - - 0 0

1.Bd4! f3 2.g3 h3 3.Kb4!! h2 4.Ka3 h1Q 5.Kb2 =


8/8/8/4N3/8/B1k2p1p/4Pp1P/2K5 w - - 0 0

1.Bb4+! Kb3 2.Nxf3 f1Q+ 3.Be1!! Qg2 4.Bg3 =

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

Boger (2626) - Toth (2617)

Alfonsino Lannaioli Memorial, 2007


8/5pkp/1PQb2p1/8/4r3/7P/2K5/8 b - - 0 47

Черные не обращают внимания на проходную соперника – за нее жертвуется слон и получается классическая крепость, независимо от оценок движков.

47…Re6 48.b7 Be5 49.Qc8 Rf6 50.Qc5 Rf5 51.Qxe5+ Rxe5 52.b8Q Rf5 53.Qb2+ Kg8 54.Qd4 Rh5 55.Qd3 ½-½

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

воскресенье, 10 января 2010 г.

Цензура в компьютерных шахматах

После выхода движков с открытым кодом
Ippolit и Robbolito (~ +50 ЭЛО к Рыбке 3)
их использование было запрещено на Playchess,
а любое упоминание об их существовании
на Рыбкаформуе немедленно стиралось.


В последние несколько недель мы стали свидетелями неоднократных попыток заставить умолкнуть открытую дискуссию в мире компьютерных шахмат. Острота нескольких спорных вопросов достигла своей критической точки. Автор Рыбки сообщил, что он не будет вносить исправления в третью версию движка, несмотря на данное им обещание. Также он намекнул, что его клиентам не стоит ожидать новой версии движка в 2009 году. Но прошло уже более 16 месяцев со дня выхода последней версии Рыбки...

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

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

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

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

Существовало предубеждение, что запрет на упоминание и обсуждение сильнейшего движка на шахматных серверах и форумах решит все проблемы. Введение этой цензуры объяснялось "потенциальной угрозой интеллектуальной собственности". Были опубликованы черные списки движков, относительно которых существовало подозрение в копировании оригинального кода. Эти движки не допускались к игре на Playchess, их упоминание было запрещено в чате и большинстве форумов. Однако не существует доказательства того, что эти движки действительно нарушили чьи-либо права на интеллектуальную собственность. Но если вы потребуете подобного доказательства, то вас наверняка обвинят в поддержке незаконной деятельности. Многие пользователи (и я в их числе), имевшие лицензионные ключи к игре на Playchess, потеряли все свои привилегии из-за публичного выступления против подобной цензуры.

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

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

Предложения и пожелания приветствуются.
Kevin@frayerchess.com
(на английском)