Шрифт:
Интервал:
Закладка:
В январе 1972 г. академик Аксель Берг помог с открытием научной темы по работе над программой во ВНИИЭ (Всесоюзный научно-исследовательский институт электроэнергетики), где Ботвинник руководил одной из лабораторий. Вопрос с выделением машинного времени был решён, вскоре нашлись и программисты. Ими стали Борис Штильман и Александр Юдин, позже к команде подключились также Михаил Цфасман и Александр Резницкий.
В работе над программой сразу же возник целый ряд трудностей, и набор эвристик стал быстро разрастаться. В то время как Юдин был занят созданием библиотек дебютов и эндшпилей, Штильман пытался воплотить в жизнь идеи Ботвинника о траекториях и зоне игры.
В 1976 г., зная о работе группы Ботвинника, организаторы II чемпионата мира среди шахматных программ прислали ему приглашение, при составлении ответа на которое родилось название программы — «Пионер», предложенное Штильманом (сам Ботвинник предлагал назвать программу «Человек»).
Однако путь к созданию полноценной шахматной программы, основанной на радикальных идеях, был долгим и тернистым. В качестве промежуточной цели Ботвинник хотел добиться того, чтобы программа была способна решать шахматные этюды, и даже отчитался о некоторых успехах в этой области. Например, «Пионер», по заявлению Ботвинника, мог решить сложный шахматный этюд авторства Гии Надареишвили. Описание того, каким образом было получено решение, вышедшее из-под пера Михаила Моисеевича, внушало сторонним наблюдателям ужас: «Штильман действовал решительно. Как аэронавт, он стал сбрасывать „балласт“, то есть выключать подпрограммы, не имеющие прямого отношения к этому этюду. Правда, Боря немного увлёкся, он отключал и нужные подпрограммы, так что полного авторского решения получить не удалось. Из-за неведомой технической ошибки никак не удавалось закончить одно поддерево (правда, когда я сообщил Г. Надареишвили об этом казусе, он очень удивился: оказывается, ПИОНЕР формировал важное поддерево, о наличии которого не подозревал сам автор!), и я дал указание запретить ПИОНЕРу его анализировать. Пришлось вновь вводить паллиативные правила, заменявшие отсутствующую позиционную оценку, и в итоге, когда уже и не надеялись на благополучное окончание эксперимента, произошло чудо».
В Канаду на чемпионат мира среди шахматных программ 1977 г. Ботвинник отправился не в роли участника, а в роли почётного гостя. Два года спустя он, не теряя оптимизма, писал: «Итак, остался один шаг до практической игры…»[758]
Оставаясь верным выбранному направлению, Ботвинник упорно работал над совершенствованием эвристик. На смену «зонам» пришли «цепочки», у фигур появились «пятнышки», присваиваемые на основе анализа «пучков траекторий», как отдельный элемент анализа появилась Mg* — жертвенная комбинация Греко. На непосвящённого читателя нарратив Ботвинника производил впечатление тягостной алхимии. Нарастало напряжение и внутри команды — после ряда конфликтов в конце 1980-х команду покинули Штильман и Резницкий, после чего проект «Пионер» был закрыт, чтобы затем возродиться с другой командой программистов под названием Chess Computer Sapiens («Разумный шахматный компьютер»). Работа над программой продолжалась до самой смерти Ботвинника в 1995 г. К сожалению, единственным непосредственным продуктом работы Ботвинника и его коллег стали статьи, книги, а также заявления о решении нескольких шахматных этюдов.
Перебравшийся в США Борис Штильман стал сотрудником Университета Колорадо в Денвере (University of Colorado, Denver), где продолжил изыскания в области решения сложных переборных задач, опубликовав компендиум своих идей под названием «Лингвистическая геометрия: от перебора к построению». Штильман постарался обобщить конструктивную часть идей, выработанных в работе над «Пионером», рассматривая возможность декомпозиции поисковой задачи на несколько независимых компонентов. Он пришёл к выводу, что некоторые задачи, подобные этюду Рети[759], могут быть решены при помощи предлагаемого подхода более эффективно, чем при использовании классических подходов.
3.5.7 Прогресс в компьютерных шахматах в конце XX века
Меж тем прогресс в компьютерных шахматах не стоял на месте — в начале 1980-x гг. программы достигли уровня игры профессионалов.
В 1981 г. программа Cray Blitz для суперкомпьютера Cray, созданная Робертом Хайаттом, Гарри Нельсоном и Альбертом Гоуэром, набрала пять из пяти очков в чемпионате штата Миссисипи. В четвёртом туре программа победила бывшего чемпиона штата мастера Джозефа Сентефа, что стало первой в истории победой компьютера над мастером по шахматам в турнирной игре.
Хотя в некоторых источниках Сентеф упоминается как международный мастер, в действительности он имел лишь звание национального мастера[760]. На момент игры с Cray Blitz сила игры Сентефа, по всей видимости, соответствовала 2160–2180 пунктам. Сегодня доктор Сентеф, уважаемый специалист в области медицины, так вспоминает своё поражение: «Не лучший момент моей жизни. Я несколько раз обыгрывал Cray Blitz, но [в этот раз] в цейтноте допустил ошибку. Мне не нравится быть печально известным — и всего по одной игре»[761].
Семь лет спустя предшественник Deep Blue, шахматный компьютер Deep Thought, одержал первую турнирную победу над международным гроссмейстером[762] — роль жертвы была уготована Бенту Ларсену.
Конец 1980-х — начало 1990-х гг. были ознаменованы ростом интереса к шахматным программам в среде профессиональных шахматистов. Машины наконец-то стали интересными соперниками. Впервые в истории людям удалось взглянуть на древнюю игру совершенно новым взглядом — с позиции интеллекта, существенно отличающегося от человеческого. И хотя в отношении игры машин часто звучали обвинения в «чрезмерном материализме», «отсутствии стратегического мышления», шахматисты не переставали удивляться тактическим способностям электронных игроков и их уникальной способности защищать, казалось бы, безнадёжные позиции.
На первый взгляд казалось, что программы конца 1990-х мало чем отличались от программ 1970–1980-х. Когда я впервые в 1999 г. погрузился в чтение исходных кодов программы Crafty — наследницы Cray Blitz, созданной Робертом Хайаттом, — я узнал в ней по сути всё ту же «Каиссу» — по крайней мере тогда я не увидел в алгоритмах никаких революционных нововведений. Конечно, за два десятилетия программы научились весьма эффективно использовать многопроцессорные машины и увеличившиеся объёмы оперативной памяти, некоторые ранние идеи оформились в виде общепринятых методов, но в целом казалось, что развитие теории шахматного программирования забуксовало.
Разгадка состоит в том, что в 1970-е сообщество разработчиков шахматных программ на волне всеобщего энтузиазма наработало множество продуктивных идей, на долгие годы вперёд обеспечив потомков материалом для дальнейшего развития.
Наступившая в 1980-х эра персональных компьютеров принесла с собой многократное удешевление машинного времени и во много раз увеличила число программистов. Это привело к двум важным последствиям. Во-первых, значительный прогресс был достигнут в области совершенствования средств разработки: появились удобные инструменты отладки, новые оптимизирующие компиляторы, общедоступные библиотеки функций — всё это позволило повысить качество программного кода, уменьшить количество рутинного