Матч «Plus600» - А.Андреев (быстрые шашки)
Григорий ВЕТРОГОН
п.Новый Быт
Новый Быт является своеобразным полигоном для испытаний компьютерных программ по русским шашкам: среди 2 тыс. жителей поселка проживают с десяток шашистов, и у четырех из них (у меня, у Владимира Ивановича ПАРАМОНОВА, у Валерия Павловича ТАРАСОВА и у Максима Александровича СИЛАЕВА, проживающего сейчас в Серпухове) давно имеются компьютерные программы - вначале это была "Программа Агафонова", а затем ей на смену пришла программа Сергея Старцева «Plus600». А у мастера спорта Александра Ивановича АНДРЕЕВА компьютера нет, вот он и ходит ко мне - то в блицок сразиться, то матчик какой сыграть (нет, не со мной, а лишь с программой "Plus600"!).
Кое-что из этих встреч мы выставляем на сайте, наиболее фундаментальные вещи публикуем в электронном журнале, но более половины материалов просто хранится на моем винчестере и ждет своего часа.
А недавно случился еще один шашечный бой Александра Андреева с компьютерной програмой «Plus600».
Очередной матч проводился по быстрым шашкам с контролем 10 мин. на партию и состоял из трех партий. Первые две партии закончились вничью, а в третьей партии компьютер "уморился" и проиграл.
Ради третьей партии, а еще точнее, для демонстрации одного-двух ходов в этой партии, и задумана эта статья.
Но, полагаю, и предыдущие две партии представляют определенный интерес. Комментарии к партиям осуществлены мной на основе собственной рукописи "Формирование дебютного репертуара" c использованием аналитических возможностей программы «Plus600».
Итак, быстрые шашки, 10 мин. на партию. Матч проводился 26 октября 2002 г. на моем домашнем компьютере AMD Athlon XP 1800+, тактовая частота 1,53 Гигагерц, оперативная память 256 Мегабайт.
1 партия, А.Андреев - «Plus600», Тычок
1.c3-b4 f6-g5 2.b4-c5 d6:b4 3.a3:c5 b6:d4 4.e3:c5 g5-h4 5.g3-f4 g7-f6 6.b2-c3 h8-g7 7.a1-b2 c7-d6 8.b2-a3 d6:b4 9.a3:c5 d8-c7 10.f2-e3 f6-g5 11.e3-d4 g5:e3 12.d4:f2 c7-d6 13.c3-b4 d6-e5 14.c1-b2 b8-c7 15.b2-a3 e7-d6 16.c5:e7 f8:d6 17.b4-c5 d6:b4 18.a3:c5 c7-b6 19.d2-e3 b6:d4 20.e3:c5 h6-g5 21.h2-g3 - диаграмма 1.
21... g5-f4 22.c5-d6. Сразу после партии Александр Иванович сказал, что считает эту "присоску" ошибочной (ход вызван дефицитом времени) и должен был идти на следующий форсированный вариант: 22.gh2 gh6 23.ed2 hg5 24.dc3 fe3? 25.f:f6 h:f2 26.f:h4 с выигрышем белых. На самом деле, "Plus600" со своей 6-фигурной эндшпильной базой показала, что и здесь выигрыша у белых нет: 26... fe1! 27.cd4 ea5 (ничья и после 27... ed2) 28.hg5 (28.cd6 a7-b6 =) 28... ad8 29.gh6 df6, и ничья. А главное, А.Андреев не заметил, что вместо ошибочного 24... fe3? у черных имеется "радикальный" ответ 24... de5! и уже белым необходимо заботиться о ничьей - 25.g:e5 d:b2 26.ed6 ab6! 27.c:a7 gf4 28.fe3! f:d2 29.ab8 =. Поэтому нулевая (равная) оценка, которую программа выставила сделанному ходу 22.cd6, является вполне обоснованной.
23... e5:c7 23.g3:e5 a7-b6 24.e1-d2 b6-c5 25.f2-g3 h4:f2 26.g1:e3 c7-b6 27.e3-f4 g7-h6 28.e5-f6. Ничья. Равная игра, ретроанализ программой «Plus600» не обнаружил никаких аномалий ни за белых, ни за черных.
2 партия, «Plus600» - А.Андреев, Центральный тычок
1.g3-f4 f6-g5 2.c3-d4 g7-f6 3.h2-g3 g5-h4 4.d4-c5 d6:b4 5.a3:c5 b6:d4 6.e3:c5 h8-g7 7.b2-c3 f6-g5 8.d2-e3 e7-d6 9.c5:e7 f8:d6 - диаграмма 2.
10.c3-b4. Чаще здесь играют 10.ab2, например: 10... cb6 11.ba3 (возможно 11.cd4 ba5 12.de5 ab4 13.e:c7 b:d6 14.ed2 ba3 15.bc3 ab6 16.cd4 ba5 17.dc3 gf6 18.gh2 dc5 19.d:b6 a:c7 20.cd4 cd6 21.cd2 dc7 22.fe5 d:f4 23.g:g7 h:f8 24.dc3 = с ничьей: Н.Бодян - Ю.Ванштейн, Кубок СССР, г.Орск, 1987 г.) 11…ba5 12.cd4 dc5 13.d:b6 a:c5 (после 13…a:c7 возникает известная позиция со связкой правого фланга) 14.ed4 g:e3 15.d:b6 a:c7 16.f:d4 h:f2 17.e:g3 = с равной игрой: Г.Ветрогон - А.Бахтияров, ВФ-53.
10... a7-b6 11.b4-a5 g7-f6 12.e1-d2 f6-e5 13.d2-c3 b6-c5 14.c1-b2 c7-b6 15.a5:c7 d8:b6 16.b2-a3 b8-c7 17.a1-b2 b6-a5 18.e3-d4 (классическая развязка) 18... c5:e3
19.f2:f6 g5:e3 20.c3-d4 h4:f2 21.b2-c3 e3:c5 22.g1:e3 h6-g5 23.f6:h4 d6-e5 24.e3-f4 e5:g3
25.h4:f2 c7-d6 26.f2-e3 d6-e5 27.a3-b4 c5:a3 28.e3-d4. Ничья. И в этой партии ни белые, ни черные не смогли достичь никакого перевеса. Возможно, Александр Иванович и рассчитывал на победу, так как ранее он несколько раз выиграл у программы в этом дебюте, но программа «Plus600» не зря названа самообучающейся - она учла свои ошибки в предыдущих партиях и данную встречу провела весьма грамотно.
3 партия, А.Андреев - «Plus600», Городская партия
1.c3-d4 d6-c5 2.d2-c3 f6-g5 3.c3-b4 g5-h4 4.b4:d6 e7:c5 5.b2-c3 g7-f6 6.g3-f4 c7-d6 7.c3-b4 b6-a5 8.d4:b6 a5:c7 9.a1-b2 f6-g5 10.b2-c3 h8-g7 11.c1-b2 - диаграмма 3.
11... c7-b6? Теоретическая ошибка, необходимо играть 11... fe7 или 11... de7. Но здесь для программы «Plus600» теория закончилась - последний ход, который она взяла из дебютной базы, был 10... hg7. Дальше ей пришлось играть "своим умом". Собственно говоря, причина дальнейших затруднений у черных кроется именно здесь. Но это мы, люди, так считаем - более подробно этот вариант Городской партии будет расписан в одном из последующих номеров электронного журнала Тавлеи. Самой же программе и невдомек, что ее 11-й ход является плохим. И вот здесь возникает первая проблема - она связана с дебютными библиотеками. Когда надо обрезать дебютные варианты? А когда загонять в дебютную библиотеку вариант целиком? И возможна ли здесь какая-либо гибкость? В программе «Plus600» предусмотрено полное отключение дебютной библиотеки, но, разумеется, это вовсе не является решением проблемы. Андреев сразу сказал (и доказал своими победами над программой), что без дебютной библиотеки программа вообще "не тянет". Предлагаю разработчикам программ высказать на нашем форуме свои соображения на этот счет.
12.b4-a5 (разумеется, нельзя 12.fg3? h:d4 13.c:a5 g:e3 x)
12... d6-c5 13.a5:c7 d8:b6. К интересной игре приводит другой бой:
13... b:d6 14.cd4 gf6 15.d:b6 a:c5 16.bc3 fe5 17.cb4 e:g3 18.h:f4 de7 19. ed4 g:e3 20.d:b6 hg5 21.f:d4 dc5 22.b:d6 e:e3 с равным эндшпилем (23.bc7 hg3 24.cd8 gh4 25.da5 fg7! 26.a5-b4 gf2 27.e:g3 h:f2 28.be1 gh6 29.e:h4 ed2=): Шутов А.В. - Мурашко В.Р., ВФ-41, 1994 г.*)
14.c3-b4 c5-d4 15.e3:c5 b6:d4 16.b2-c3 d4:b2 17.a3:c1 g5:e3 18.f2:d4 - диаграмма 4.
18... a7-b6?? Вопиющая ошибка! Программа не видит, что белые форсированно ставят рожон с выигрышем партии. Да, я все понимаю - побольше бы времени на обдумывание, помощнее бы машина... Но ведь человек такие вещи видит сразу, а программа - нет. И здесь возникает вторая проблема - "интеллектуальность" игры программы, которая напрямую связана с оценочной функцией. У нас на форуме были споры и на эту тему. Я интуитивно полагаю, что простой перебор - это тупиковый подход в программировании шашек. Для корпоративных программ, изначально рассчитанных на очень мощные машины, "тупиковость" перебора может проявиться не сразу, а вот для персональных программ, которые должны ориентироваться на "домашние" ПК, этот "экстенсивный" путь заведомо не пригоден. Но как научить программу понимать игру? Например, как ей объяснить такую позиционную вещь, как рожон? У меня нет ответов на эти вопросы. А у Вас?
Обратимся к позиции на диаграмме 4. Ясно, что позиция черных плохая, но ведь должна же у черных быть ничья, не так ли? Как же черным играть в этой позиции? Буквально на первом же прогоне ретроанализа (10 сек. на ход) программа «Plus600» забраковала сделанный в партии ход 18... ab6?, оценка 52 (13, 18)**), и порекомендовала 18... bc7! Впоследствии, наряду с этим ходом она порекомендовала 18... fe7! Оба эти хода хороши, то есть позволяют черным "убежать" на ничью. Я приведу собственную партию, в которой мой соперник (черные) избрал третий ход, не указанный программой "Plus600".
18... gf6 19.ef2 (значительно сильнее 19.hg3! h:f2 20.e:g3 с подавляющим преимуществом белых) 19…hg5 20.fg3 h:f2 21.g:e3 bc7? (после 21... fe7 или 21... gh4 черные достигали ничьи) 22.ba5! fe7 23.hg3 ed6 24.gf4 ab6 (спасения у черных нет, так как на 24…gh4 следует 25.fg5 de5 26.g:e7 e:c3 27.ef4 x) 25.f:h6 de5 26.hg7! e:c3 27.g:e5 bc5 (27…cd2 28.ed4 de1 29.cd2 x) 28.ef6? (грубая ошибка, сводящая "на нет" всю предыдущую игру белых; для выигрыша необходимо было играть 28.ef4! x) 28…cd2 29.fe7 d:f4 30.ed8 cd6 31.dh4 fe3 32.he1 de5 33.eh4 cd4 34.hg3 dc3 35.g:d6 ef2 36.de5 cb2 37.e:g1 fg1 = с ничейным эндшпилем: Г.Ветрогон - Н.Макаров, ВФ-46.
19.b4-c5 b6-a5 20.c5-d6! (и дальше уже не интересно, рожон гарантирует победу белым) 20... a5-b4 21.d4-c5 b4-c3 22.c5-b6 g7-f6 23.e1-f2 f8-g7 24.h2-g3 f6-e5 25.d6:f4 g7-f6 26.f4-e5 f6:d4 27.g3-f4 h4-g3 28.f4:h2 h6-g5 29.h2-g3 g5-f4 30.g3:e5 d4:f6 31.g1-h2 f6-g5 32.h2-g3 g5-h4 33.g3-f4 b8-a7 34.b6-c7 a7-b6 35.c7:a5 с выигрышем белых.
По обеим поднятым проблемам - дебютные библиотеки и позиционная составляющая оценочной функции, предлагаю высказаться на нашем Форуме.
*) В партии позиция № 3 возникла из дебюта "Отказанная игра Каулена": 1.g3-f4 b6-a5 2.c3-d4 f6-e5 3.d4:f6 e7:g5 4.a3-b4 a5:c3 5.d2:b4 g7-f6 6.b2-c3 h8-g7 7.a1-b2 g5-h4 8.b2-a3 f6-g5 9.c1-b2 c7-b6, и на два хода раньше возникла позиция № 3. В базе партий "Tornado", откуда взята партия Шутов А.В. - Мурашко В.Р., почему-то указан результат 1:0.
**) Свидетельство того, что в "турнирном" режиме программе на этом ходу для принятия решения было "выделено" менее 10 секунд, и действительно не хватило времени.
Еще одно примечание:
Как сообщил нам Сергей Старцев, автор программы «Plus600», по результатам анализа этой партии внесены очередные изменения в оценочную функцию программы - так, теперь в позиции на диаграмме 4 "Plus600" не делает хода 18... ab6? ни на какой глубине расчета.