3 Машины, которые играют в игры, и игры, в которые играют машины

Понятие игры как таковой — более высокого порядка, нежели понятие серьёзного. Ибо серьёзность стремится исключить игру, игра же с лёгкостью включает в себя серьёзность.

Йохан Хёйзинга. Homo Ludens

Как и во всякой экспериментальной науке, специалистам, занимающимся исследованиями в области ИИ, нужна была своя «мушка дрозофила» — модельный объект, на котором можно опробовать созданные методы. В 1995 г. журнал Time в статье «Об озоне и фруктовых мушках», посвящённой нобелевским лауреатам 1995 года, так описывал роль, отведённую дрозофилам в современной науке: «Для большинства людей плодовые мушки — это надоедливые насекомые, которые роятся вокруг перезрелых бананов. Однако для биологов они являются ключом к разгадке некоторых из глубочайших загадок жизни. Они почти идеальные лабораторные животные: крошечные насекомые не только быстро растут, но и их генетическая структура поразительно похожа на человеческую. Поэтому для трёх исследователей, получивших в этом году Нобелевскую премию по медицине и физиологии, было вполне естественно использовать плодовых мушек, чтобы помочь разгадать загадку того, как гены контролируют эмбриональное развитие — у насекомых и у людей»[441], [442]. На роль плодовой мушки искусственного интеллекта настольные игры подходили идеально: мир настольной игры достаточно прост и основан на чётких и однозначно определённых законах. Создавая ИИ для игры, мы тем самым абстрагируемся от массы инженерных проблем, лежащих между ИИ и выполнением задач реального мира, нам не нужно оперировать физическими объектами, достаточно лишь формального описания игрового положения в памяти компьютера и простых средств ввода-вывода, созданных ещё на заре компьютерной эры. Настольная игра — это в некотором роде чистая игра ума, требующая от интеллектуального агента одного лишь умения принимать разумные решения в замкнутом игровом пространстве. В то же время игра претендует на то, чтобы быть, пусть и крайне упрощённой, моделью действительного мира. Ведь процесс принятия решений в ней отдалённо напоминает аналогичный процесс в реальной жизни. Неслучайно в обыденных разговорах мы часто употребляем игру как метафору для человеческих взаимоотношений: «геополитические игры», «мировая шахматная доска», «игра на понижение», «закулисные игры». Герман из пушкинской «Пиковой дамы» заявляет, что наша жизнь — игра, а популярный психолог Эрик Берн пишет книгу «Игры, в которые играют люди», посвящённую социальным взаимодействиям людей. Игровой, игрушечный мир создан по подобию мира реального. Ребёнок, познающий мир, нередко подступается ко взрослым проблемам именно в упрощённой игровой форме, а навыки, полученные им в игре, нередко оказываются востребованы в будущем. Подобно тому как мы в игровой форме обучаем своих детей взрослой жизни, мы используем игру и для создания первых прототипов систем искусственного интеллекта, приспособленных решать задачи реального мира.

Кроме того, игра — это зрелище, понятное неспециалистам. Машина, которая умеет играть, произведёт впечатление даже на дилетанта. Такая машина способна пробудить в человеке дух соперничества, а значит, и интерес. Люди, далёкие от мира создателей «умных» машин, редко интересуются математическим аппаратом, используемым машиной для принятия решений. Но результат работы этого аппарата (ходы на шахматной или шашечной доске) может быть понятен даже ребёнку. Облекая свои достижения в понятную большинству людей форму, учёные таким образом поддерживают уверенность общества в том, что оно должно и дальше выделять ресурсы на разработку систем искусственного интеллекта.

С незапамятных времён игры становились мишенью для критики со стороны моралистов. «Тавлеи и шахы въ многихъ насъ ωбртаѣми сѹть, а книги ни въ кого же» («Многие из нас только и знают, что играть в тавлеи и шахматы, а книг никто не читает»)[443] — написано в «Пчеле» (Μέλισσα) — сборнике назидательных изречений IX в. византийского происхождения, получившем весьма широкое распространение на Руси и Балканах. История, впрочем, показала, что моралистам не под силу истребить игры, а сами игры могут принести немалую пользу науке.

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

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

Также игры делятся на симметричные и асимметричные. В симметричных играх игроки обладают одинаковым набором возможностей (стратегий) и одна и та же стратегия обеспечивает одинаковый результат каждому из игроков. Например, в игре «камень, ножницы, бумага» каждый из игроков может показать и камень, и ножницы, и бумагу, но, скажем, ножницы всегда побеждают бумагу, вне зависимости от того, какой из игроков их показал — первый или второй. Пример асимметричной игры — прятки, в них у игроков и водящего разные наборы возможностей. Некоторые игры, например шахматы или шашки, иногда называют «почти симметричными», потому что в них существует небольшая разница между белыми и чёрными — белые ходят первыми.

Игры также делят на параллельные и последовательные. В параллельных играх игроки совершают свои ходы одновременно либо не осведомлены о выборе оппонента до тех пор, пока остальные не сделают свои ходы. В последовательных, или динамических, играх участники совершают ходы последовательно и в момент совершения хода обладают информацией о предшествующих действиях других игроков, хотя эта информация может быть и неполной. Уже упомянутая игра «камень, ножницы, бумага» — параллельная (ведь игроки действуют одновременно), а крестики-нолики — последовательная. В повседневной жизни, рассуждая о компьютерных играх, мы часто называем последовательные игры пошаговыми, а параллельные — играми реального времени.

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

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

Игры с полной (complete) информацией не следует путать с играми с совершенной информацией (perfect), отличительной особенностью которых является тот факт, что игрокам известны все ходы друг друга (а также иные изменения состояния игры, например поступление на руки карт в результате сдачи) с момента начала игры. Если это не так, игра является игрой с несовершенной информацией. Для того чтобы лучше понять принципиальное различие двух последних способов классификации игры, приведём два примера.

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

Пример игры с неполной, но совершенной информацией — «Брейн-ринг»: команды осведомлены обо всех ответах, данных соперниками в предыдущих раундах (поэтому это игра с совершенной информацией), однако обычно не знают заранее правильного ответа на вопрос текущего раунда и, стало быть, не знают, каким будет результат игры в случае тех или иных действий команд (поэтому это игра с неполной информацией).

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

3.1 Ним и ниматрон

— Пари, что год моего рождения, умноженный на два, даёт чётное число.

Том Стоппард. Розенкранц и Гильденстерн мертвы[444]



При игре в ним два игрока по очереди берут предметы, разложенные на несколько кучек (обычно на три). За один ход можно взять любое количество предметов (больше нуля) из любой кучки. Выигрывает игрок, взявший последний предмет. В древние времена, когда люди ещё пользовались спичками, для игры в ним обычно использовали кучки из спичек. В принципе, для нима подходят любые предметы — монетки, камешки, пуговицы, золотые слитки 999-й пробы. Для особых ценителей существуют даже специальные наборы для игры в ним, но выпускают их на всякий случай ограниченными сериями.

Различные разновидности этой игры известны с древних времён. По одной из существующих версий, она возникла в Китае, поскольку очень похожа на китайскую игру «сбор камней» (捡 石子, jiǎn-shízi, цзяньшицзы)[445], но это не точно[446]. Самые ранние европейские упоминания нима относятся к началу XVI в. Однако его современное название придумано на рубеже XIX–XX вв. математиком Чарльзом Бутоном из Гарвардского университета, который в 1901–1902 гг. разработал математическую теорию этой игры[447]. Это стало одним из первых случаев создания теории игры в истории математики. Вся теория вместе с описанием правил игры занимает всего пять страниц текста. Хотя Бутон и создал математическую теорию игры, он так и не дал объяснения тому, почему было выбрано такое странное название. Некоторые исследователи полагают, что название было образовано от немецкого глагола nehmen или от староанглийского nim, имеющих значение «брать». По другой версии, название было получено путём переворота букв английского глагола win («побеждать»). Несложно заметить, что игра в ним — некооперативная, симметричная, последовательная, с нулевой суммой, с полной и совершенной информацией. Трудно представить себе что-нибудь более простое. Неудивительно, что именно такие игры первыми стали подвластны машинам.

На Всемирной выставке в Нью-Йорке в 1940 г. компания Westinghouse Electric представила двух роботов — Elektro и Sparko, а также машину под названием «Ниматрон» (Nimatron), способную играть в ним.

Главным конструктором машины был американский физик-ядерщик Эдвард Кондон, который с 1937 г. занимал в Westinghouse Electric позицию заместителя директора по исследованиям[448]. Идея сделать машину для игры в ним пришла к Кондону, когда он понял, что пересчётные схемы, которые используются в счётчиках Гейгера, можно применить для представления чисел, описывающих состояния игры[449]. Кондон разработал и собрал «Ниматрон» зимой 1939/40 года с помощью своих ассистентов — Джерельда Тоуни и Уилларда Дерра. 26 апреля 1940 г. он подал заявку на получение патента на устройство, который был выдан 24 сентября того же года[450].

Масса машины, логика которой была основана на электромеханических реле, составляла более тонны[451]. На передней панели «Ниматрона» располагалось четыре столбца по семь ламп. Игрок, делая ход, мог погасить одну или несколько ламп в одном из рядов, после чего очередь хода переходила к машине. Если «Ниматрон» проигрывал партию, то выдавал игроку жетон с надписью Nim Champ (Чемпион по ниму).


Рис. 52. «Ниматрон»

Первая версия машины совершала свои ходы моментально — по оценке Кондона, на выбор хода у «Ниматрона» уходило менее одной сотой доли секунды. Но такое поведение механического соперника слишком пугало игроков, и разработчики решили добавить в схемы замедляющие цепи. Таким образом, машина делала вид, что в течение нескольких секунд обдумывает ход. По мнению Кондона, это был первый в истории случай намеренного замедления работы компьютера[452].

«Ниматрон» всегда выбирал оптимальные ходы, но разработчики решили всегда предоставлять право первого хода человеку, а в качестве стартовой позиции выбиралась одна из девяти заложенных в память машины позиций, в которых игрок, делающий ход первым, при правильной игре выходил победителем. Когда кто-нибудь из посетителей, раздосадованных проигрышем, заявлял, что машину обыграть невозможно, операторы стенда показывали, как это можно сделать[453]. За время выставки в игру сыграло не менее 50 000 человек, из которых около 90% не смогли выиграть у «Ниматрона»[454].

В последний раз машина участвовала в выставке в 1942 г. в Нью-Йорке, затем «Ниматрон» был перемещён в научные коллекции Планетария в Питтсбурге (штат Пенсильвания), где какое-то время демонстрировался публике[455], после чего следы машины теряются.

«Ниматрон» был одной из первых в мире машин, способных играть в игру, иногда его даже называют первой в мире компьютерной игрой. Это, по всей видимости, действительно так, если не принимать в расчёт «шахматного игрока» (El Ajedrecista), о котором мы расскажем несколько позже.

Несмотря на этот успех «Ниматрона», Кондон считал его одним из самых больших провалов в своей карьере — ведь он не смог увидеть весь потенциал машины: «Это было как минимум за четыре или пять лет до Джонни фон Неймана, Эккерта, Мокли и всего этого цифрового компьютерного бизнеса, и [я] ни разу не подумал об этом всерьёз; я просто думал об этом как о забавной штуке, но схемы и всё прочее были точь-в-точь такими же, как позже в компьютерах, программируемых компьютерах». В итоге влияние «Ниматрона» на цифровые компьютеры и компьютерные игры оказалось незначительным[456].

Вслед на «Ниматроном» было создано множество других машин для игры в ним. В 1948 г. Реймонд Редхеффер представил машину массой менее 2,5 кг. По словам Редхеффера, её конструкция была разработана им в 1941–1942 гг.[457] Несколько лет спустя компания Ferranti, занимающаяся разработкой электротехнического и военного электронного оборудования, создала первый цифровой компьютер, предназначенный для игры в ним, — «Нимрод» (The Nimrod). Он был представлен на Британском фестивале (научная выставка) в мае 1951 г., а затем на Берлинской торговой ярмарке (промышленная выставка) в октябре того же года. На этих выставках «Нимрод» произвёл настоящий фурор. Многие очевидцы рассказывали, что наибольшее впечатление производила не игра с «Нимродом», а наблюдение за мигающими огнями, которые должны были отражать мыслительную деятельность машины. Чтобы контролировать гигантскую толпу зрителей, организаторы выставки даже были вынуждены обратиться за помощью к полиции[458].

В 1943 г. Кондон присоединился к Манхэттенскому проекту, но через полтора месяца подал в отставку из-за конфликтов по поводу безопасности с генералом Лесли Гровсом, военным руководителем проекта.

С августа 1943 г. по февраль 1945 г. Кондон работал консультантом в Беркли в рамках проекта по разделению урана-235 и урана-238. В 1944 г. был избран в Национальную академию наук. После войны Кондон приложил много усилий в борьбе за установление гражданского контроля над атомной энергией, выступил за международное сотрудничество учёных и вступил в «Американо-советское научное общество». В 1945 г. президент Трумэн назначил Кондона на пост директора Национального бюро стандартов США (ныне известного как NIST — National Institute of Standards and Technology, Национальный институт стандартов и технологий). В 1946 г. Кондон был избран президентом Американского физического общества.

Благонадёжность Кондона неоднократно подвергалась сомнениям со стороны властей. 29 мая 1946 г. директор ФБР Гувер написал президенту Трумэну письмо, в котором среди прочего заявил, что Кондон — «не кто иной, как шпионский агент под прикрытием»[459]. Среди тех, кто защищал Кондона от нападок, были Альберт Эйнштейн и Гарольд Юри. После того как в 1951 г. Кондону удалось доказать свою невиновность в ходе очередной процедуры проверки, он по собственной инициативе покинул правительство, чтобы стать руководителем отдела исследований и разработок компании Corning Glass Works. Спустя годы Карл Саган так пересказал рассказ Кондона об одной из встреч с комиссией по проверке лояльности. Один из членов комиссии выразил обеспокоенность: «Доктор Кондон, здесь говорится, что вы были в авангарде революционного движения в области физики под названием… квантовая механика. Это вызывает у нас опасения в том, что если вы были в авангарде одного революционного движения… то могли бы быть и на переднем крае другого»[460]. В частных разговорах Кондон формулировал свою позицию так: «Я присоединяюсь к каждой организации, которая, по моему мнению, имеет благородные цели. Я не спрашиваю, состоят ли в ней коммунисты»[461].

С 1966 по 1968 г. Кондон руководил «Проектом НЛО» (UFO Project) в Боулдере, известным под названием «Комитет Кондона». В заключительном отчёте проекта был сделан вывод о том, что наблюдения неопознанных летающих объектов имели вполне прозаические объяснения[462].

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

3.2 Крестики-нолики

Есть и такая, где каждый выводит по трое шашек,

А побеждает, кто смог в линию выстроить их.

Много есть игр, и надо их знать красавице умной,

Надо играть: за игрой часто родится любовь.

Овидий Публий Назон. Наука любви


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

Из популярных источников[463], [464] можно узнать, что ранний вариант этой игры, носивший название «по три камешка» (Terni lapilli), был распространён в Древнем Риме примерно с I в. до н. э. Начало старинной игры ничем не отличалось от современного варианта: игроки последовательно выставляли свои фишки на поле размером 3 × 3 (при этом первый ход в центр поля был запрещён), а если кому-то из них удавалось выстроить их в ряд, то он выигрывал партию. Однако после того, как три фишки каждого цвета были выставлены на доску, начинался второй этап игры, в ходе которого игроки могли поочерёдно перемещать одну из своих фишек на любое незанятое соседнее поле, при этом критерий выигрыша оставался неизменным — нужно было построить три фишки в ряд. Размеченные поля для игры (их называли tabula lusoria — доска для игры) встречаются на всей бывшей территории Римской империи.

Крестики-нолики… Казалось бы, что может быть проще? Но если задаться вопросом, откуда взялась эта игра, то можно нечаянно открыть портал в другие миры.

Например, в английской «Википедии» написано, что игра появилась в Древнем Египте, называются даже примерные даты: «Игры на полях типа „три-в-ряд“ могут быть отслежены вплоть до Древнего Египта, где поля для таких игр были обнаружены на черепице (?), датированной примерно 1300 годом до н. э.»[465]. При этом в качестве источника приводится ссылка на пару научно-популярных книг. Причём источники отчасти лишь добавляют путаницы, потому что в книге Марлы Паркер говорится о том, что поля для игры найдены на черепице древнеегипетского храма, построенного 3300 лет назад[466], в то время как в книге Клавдии Заславски говорится уже о плитах из песчаника[467]. Но чёрт с ним, будем считать, что плиты из песчаника — это такая суровая челябинская древнеегипетская черепица, главное, Заславски называет сам храм — Поминальный храм Се́ти I, который посвящён второму фараону XIX династии, отцу Рамсеса II. Храм расположен в Фиванском некрополе в Верхнем Египте, через реку напротив Луксора, возле деревни Курна. Древнеегипетское название этого храма — Великий храм Мен-Маат-Ра Сети в доме Амона в западной части Фив. Кроме того, Заславски сообщает, что открытие было сделано более ста лет назад при изучении учёными потолка храма. Эта информация позволяет отследить источник сведений вплоть до книги британского инженера Генри Паркера, впервые вышедшей в свет в 1909 г. Сама книга посвящена, впрочем, вовсе не Египту, а истории Цейлона (ныне — Шри-Ланки). В книге Паркер приводит 34 пиктограммы, обнаруженные на крыше храма в Курне. Он приходит к выводу, что три из них были нанесены на плиту до того, как она стала частью строения, поскольку они обрываются на краях плиты, что, по мнению Паркера, означает, что плита была укорочена во время строительства и вместе с отпиленной частью были удалены края изображений. Также Паркер считает весьма вероятным, что оставшаяся 31 пиктограмма тоже была нанесена на плиту строителями храма. Паркер предполагает, что одна из пиктограмм (судя по описанию — № 10) является полем для игры, подобной современным крестикам-ноликам[468].


Рис. 53. Пиктограммы, обнаруженные на крыше храма в Курне

Является ли гипотеза Паркера, содержащая целый ряд допущений, достаточным основанием для того, чтобы считать, что древние египтяне знали игру, похожую на крестики-нолики, особенно учитывая то, что египтологам до сих пор не удалось отыскать ни одного упоминания этой игры или хотя бы изображения, подобного указанному Паркером?.. Отмечу, что о древнеегипетских настольных играх мы знаем не так уж мало. Например, «древнеегипетские шахматы» (сенет) встречаются и на изображениях в гробницах и удостоены упоминания в древнеегипетских текстах; более того, до нас даже дошло несколько древних комплектов для игры в сенет.

Гипотеза Паркера перекочевала затем в книгу Харольда Мюррея, посвящённую исследованию истории настольных игр (в своей книге Мюррей приводит 7 из 34 пиктограмм из книги Паркера)[469], а затем в работы Роберта Белла[470], признанного специалиста в этой области, откуда уже, по всей видимости, проникла в качестве установленной истины в научно-популярные книги, а оттуда — в «Википедию».

В наши дни предположение Паркера о том, что все пиктограммы, найденные на крыше храма в Курне, были нанесены на неё до его постройки, подвергается серьёзному сомнению: как минимум часть символов имеет коптское происхождение, поэтому датировка пиктограмм сегодня представляется неопределённой[471]. Египет в разное время находился под властью персов, греков, римлян, византийцев, арабов, и определить точно, к какой эпохе относятся граффити, сегодня вряд ли возможно[472].

В 1990-е гг. исследовательская группа GERSAR (Groupe d’Études, de Recherches et de Sauvegarde de l’Art Rupestre, Группа изучения, исследования и защиты наскального искусства) под руководством доктора Кристиана Вагнёра составила каталог из более чем тысячи изображений, напоминающих поля для игр типа «три в ряд»[473].

Если существование игры, подобной крестикам-ноликам, в Древнем Египте поставлено под вопрос, то можем ли мы быть уверены в том, что игра была знакома жителям Древнего Рима?

И тут всё не так плохо: есть письменный источник. Это, как ни странно, «Наука любви» (Ars Amatoria) Публия Овидия Назона — своеобразная древнеримская «Камасутра» начала I в. (не исключено, что в ссылку на Черноморское побережье Дакии Овидий угодил именно как автор этого «развратного» произведения). В ней Овидий советует девушкам научиться играть в различные игры, чтобы очаровывать мужчин. Правда, перечисляя эти игры, описанию каждой он отводит всего по одной-две строки. В написанных позже «Скорбных элегиях» он вновь упоминает игру с тремя фишками, но и здесь ограничивается парой строк, почти дословно повторяющих сказанное в «Науке любви». О самой игре из этих двух текстов понятно только, что у игроков есть по три фишки и их нужно выстроить в ряд на доске. При этом на территории, принадлежавшей Римской империи, найдено множество полей для такой игры, но их надёжная датировка затруднена. К счастью, одно такое поле нанесли на черепицу до обжига, и на той же черепице находится печать XXX легиона, что позволяет говорить о времени создания поля — не ранее 196 г. до н. э.

Однако некоторые неточности в отношении древнеримской версии игры всё-таки проникли в популярную литературу. Во-первых, Овидий нигде не приводит названия игры. Название Terni Lapilli — условное и используется для обозначения игры сегодня лишь потому, что Овидий упоминает три камешка (фишки). Из-за того что у Овидия не говорится о названии игры, её часто называют просто — «игра Овидия»[474]. Во-вторых, Овидий говорит о поле для игры tabella, а не использует термин tabula lusoria, который вообще применялся обычно к столикам для азартных игр[475]. Ну и, наконец, вишенка на торте — современная реконструкция игры основана в большей мере на современных правилах похожих игр, потому что единственное, что мы знаем из Овидия: в игре следовало выстроить три фишки в ряд[476].

Сегодня игру, правила которой аналогичны «реконструированным правилам» Terni Lapilli, называют «трёхфишечной мельницей» [Three men’s morris], при этом в стандартную мельницу играют девятью фишками на доске из 24 полей. Только в английском у «мельницы» как минимум десять названий: nine-man morris, mill, mills, the mill game, merels, merrills, merelles, marelles, morelles и ninepenny marl.

Мюррей приводит ещё одну разновидность игры на поле 3 × 3 — в ней, после того как все фишки выставлены на доску, ходы осуществляются необязательно на соседние клетки, вместо этого фишка может быть перемещена на любую свободную клетку. Мюррей называет такой вариант игры «девять дырок» [nine holes][477]. В Гане распространена игра под названием «ачи» (achi), она похожа на «трёхфишечную мельницу», но у каждого игрока не три фишки, а четыре[478].

Но вернёмся к обычным крестикам-ноликам. В 1799 г. игра в крестики-нолики упоминается в белом стихе английского поэта «Озёрной школы» Уильяма Вордсворта, впрочем без указания названия игры:

Каких только не знали вы забот

И не чурались их! Однако ж были

У вас и праздники, и торжества,

И радости простые: вечерами,

Собравшись у каминного огня,

Как часто мы над грифельной доской

Склонялись низко друг напротив друга

И крестики чертили и нули

В баталиях упорных — впрочем, вряд ли

Их удостою описанья здесь[479], [480].

Первая печатная ссылка на английское название игры — noughts and crosses (nought — альтернативное слово для обозначения нуля) — появилась в 1858 г. в выпуске журнала «Записки и запросы». В статье, подписанной «A. De Morgan», обсуждается возможность исчисления шахматной игры. Автор вспоминает игру, в которую играли его однокашники и которую одни называли noughts and crosses, а другие — tit-tat-toe (это были слова победителя в игре, подобно словам «шах и мат» в шахматах)[481]. Несложно догадаться, что подпись «A. De Morgan» принадлежит уже упоминавшемуся нами шотландскому математику и логику Огастесу де Моргану, благодаря жене которого, Софии Элизабет де Морган, мы знаем подробности одного из первых визитов Ады Лавлейс к Чарльзу Бэббиджу.

Считается, что первая печатная ссылка на игру с названием, похожим на современное американское tic-tac-toe, — tick-tack-toe — появилась в 1884 г., но тогда это слово обозначало игру, в которую играют на грифельной доске и которая состоит из попыток с закрытыми глазами попасть карандашом по одному из множества чисел, при этом число, на которое попал карандаш, становится числом очков в игре. Не исключено, что название tic-tac-toe происходит от названия старинной версии нардов — tick-tack. Считается также, что американское переименование noughts and crosses в tic-tac-toe произошло уже в XX в.[482], однако, по-моему, tic-tac-toe — это простое фонетическое искажение упомянутого де Морганом tit-tat-toe.

Де Морган не был единственным мыслителем своего времени, задумавшимся над проблемой исчисления настольных игр. Автобиография Чарльза Бэббиджа, вышедшая в 1864 г., проливает свет на подробности проекта по строительству машины, способной играть в крестики-нолики.

Первоначально Бэббидж занимался задачей с философской точки зрения, исследуя вопрос, можно ли построить машину, способную играть в шахматы, шашки или крестики-нолики (Бэббидж использовал термин tit-tat-to). Сделав вывод о том, что это возможно, Бэббидж разработал алгоритм перебора всех возможных вариантов, с помощью которого машина могла бы выбирать наилучшие ходы. Кроме того, он пришёл к выводу, что его аналитическая машина вполне способна выполнять все необходимые для этого действия: «Весь вопрос о создании автомата, способного играть в любую игру, зависит от способности машины представлять все мириады комбинаций, связанных с ней. Допустив по сто ходов каждой из сторон в самой длинной партии в шахматы, я обнаружил, что число возможных комбинаций в аналитической машине во много раз превосходит все необходимые требования».

Затем Бэббидж сосредоточил усилия на самой простой из рассмотренных им игр. Он подсчитал количество ходов в игре и изучил вопрос о том, каким образом автомат может выполнять необходимые расчёты. После того как Бэббидж пришёл к выводу о возможности создания такой машины, он понял, что доходы, полученные от неё, можно использовать для финансирования более серьёзного проекта — аналитической машины. Однако после подробного анализа вопроса Бэббидж решил, что прогнозируемая прибыль будет слишком низкой, чтобы даже в случае финансового успеха компенсировать время и деньги, затраченные на разработку и производство автомата.

Записи Бэббиджа об автомате для игры в крестики-нолики датируются с 25 сентября 1844 г. по 24 октября 1868 г., причём большая часть работы над механизмами системы и алгоритмами принятия решений была завершена к концу 1848 г. Алгоритм поиска выигрышных ходов был полностью завершён к октябрю 1860 г.[483] Однако реальная машина, способная играть в крестики-нолики, появилась лишь спустя почти сто лет — в 1950 г. Джозеф Кейтс создал для Канадской национальной выставки в Торонто «Берти Мозг» (Bertie the Brain) — машину четырёхметровой высоты, имевшую несколько уровней сложности и призванную продемонстрировать возможности аддитрона (additron) — новой миниатюрной версии радиолампы[484]. Спустя два года Александр Дуглас создал OXO — реализацию крестиков-ноликов для компьютера EDSAC (Electronic Delay Storage Automatic Calculator) с графическим выводом на 6-дюймовую электронно-лучевую трубку. OXO стала, по всей видимости, первой игрой, разработанной для компьютера общего назначения[485].

С вычислительной точки зрения крестики-нолики представляют собой довольно простую задачу. Несложно прикинуть количество возможных позиций в игре: каждое из полей доски, состоящей из девяти клеток, может быть пустым либо содержать крестик или нолик. Таким образом, у нас есть девять полей, для каждого из которых существует три возможных состояния, следовательно, общее число позиций составляет 39 = 19 683. Однако данное число включает в себя множество невозможных позиций, например позицию с пятью крестиками и без единого нолика. Более точный подсчёт позволяет сократить это число до 5478, а с учётом идентичности всех возможных поворотов и отражений остаётся лишь 765 действительно различных позиций.

Простая оценка верхней границы количества различных партий даёт нам 9! = 362 880 (первый ход можно сделать на одну из девяти свободных клеток, второй — на одну из оставшихся восьми и т. д.). Это число включает в себя некорректные игры, в которых ходы продолжались уже после победы одной из сторон. За вычетом таких ситуаций игр остаётся 255 168, а удаляя отражения и повороты, получаем всего 26 830 возможных партий. Даже для ранних ламповых компьютеров полный перебор такого количества вариантов не представлял большой сложности, то есть машина могла рассмотреть в любой позиции все возможные варианты продолжения игры и выбрать ход, который обеспечивает наилучший для машины результат даже при идеальной игре противника.

В 1960 г. Дональд Мичи разработал программу, получившую название «Спичечнокоробочный обучающийся движок для крестиков-ноликов» (Matchbox Educable Noughts And Crosses Engine, MENACE; слово menace по-английски значит «угроза»). Эта программа была способна обучиться идеальной игре в крестики-нолики и для своего выполнения не требовала такого дефицитного ресурса, как компьютер. Вместо него Мичи использовал набор из трёх сотен спичечных коробков, каждый из которых соответствовал уникальному состоянию доски. Спичечные коробки были заполнены цветными бусинками, соответствующими отдельным ходам. Количество шариков каждого цвета указывало на «уверенность» в том, что соответствующий ход является наилучшим. В зависимости от результата каждой сыгранной партии производилось изменение количества бусинок в коробках, соответствующих возникшим в игре позициям, в результате чего программа постепенно всё более уверенно выбирала правильные ходы[486]. В статье Мичи, посвящённой MENACE, впервые был введён термин «обучение с подкреплением» [reinforcement learning][487].

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

3.3 Играть на уровне бога: от Цермело до «Ломоносова» (первое отступление)

Двух операторов била нервная дрожь. Тысячелетия ожидания прошли не впустую.

— Он действительно существует? — выдохнул Хвуудт.

— Он действительно существует, — подтвердил Глубокомысленный.

— Главный Ответ? На Главный Вопрос Жизни, Вселенной, и Всего Такого?

— Да.

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

— И ты готов выдать его нам? — успокоившись, спросил Колнгкилл.

— Готов.

— Сейчас?

— Сейчас.

Оба оператора облизали сухие губы.

— Хотя я не думаю, — добавил компьютер, — что он вам понравится.

— Неважно! — сказал Хвуудт. — Мы должны знать его! Сейчас же!

— Сейчас? — переспросил Глубокомысленный.

— Да! Сейчас!

— Отлично, — сказал компьютер и снова погрузился в молчание. Хвуудт и Колнгкилл трепетали. Напряжение становилось невыносимым.

— Серьёзно, он вам не понравится, — заметил Глубокомысленный.

— Говори!

— Отлично, — сказал компьютер. — Ответ на Главный Вопрос…

— Ну…!

— Жизни, Вселенной, и Всего Такого…, — продолжал компьютер.

— Ну…!!!

— Это… — сказал Глубокомысленный и сделал многозначительную паузу.

— Ну…!!!!!!

— Сорок два, — сказал Глубокомысленный с неподражаемым спокойствием и величием.

Дуглас Адамс. Путеводитель хитч-хайкера по Галактике[488]

3.3.1 Основоположник теории игр Эрнст Цермело

Серьёзный разговор о теории игр обычно не обходится без упоминания немецкого математика Эрнста Цермело и его теоремы. Цермело в жизни сопутствовала научная удача: его именем названо сразу две теоремы, первая из них — одна из фундаментальных теорем теории множеств — называется также теоремой о полном упорядочении; вторая, доказанная в 1913 г., стала первой формальной теоремой теории игр.

В современной литературе по теории игр даются различные формулировки этой теоремы[489]. Некоторые авторы утверждают, что Цермело доказал, что шахматы являются детерминированной (т. е. лишённой элемента случайности) игрой, например: «В шахматах либо белые могут добиться форсированной победы, либо чёрные могут добиться форсированной победы, либо обе стороны могут форсировать ничью»[490], [491], [492].

Другие делают более общие утверждения, называя их теоремой Цермело, например: «В каждой конечной игре с полной информацией имеется строгое стратегическое равновесие Нэша, которое может быть найдено при помощи обратной индукции. Более того, если ни у одного из игроков нет одинаковых результатов в двух произвольных конечных узлах, то существует уникальное равновесие Нэша, которое может быть найдено таким образом»[493]. Равновесием Нэша называется ситуация, в которой ни один участник не может увеличить выигрыш, изменив свою стратегию, если другие участники своих стратегий не меняют. Авторов не смущает, что Джон Нэш родился спустя 15 лет после доказательства теоремы Цермело.

Некоторые вообще утверждают, что белые не могут проиграть: «…в конечной игре существует стратегия, следуя которой игрок, первым осуществляющий ход… может избежать поражения, но неизвестно, существует ли стратегия, следуя которой он может победить»[494].

Кроме того, многие авторы указывают, что методом доказательства, использованным Цермело, была обратная индукция, например: «Цермело использовал этот метод ещё в 1912 году для анализа шахмат. Он начинает с конца игры и затем движется к её началу. По этой причине данную технику иногда называют обратной индукцией»[495].

Несмотря на большой интерес к теории игр, в англоязычной литературе распространилась путаница в отношении того, в чём именно заключался вклад Цермело, равно как и вклад некоторых других ранних теоретиков. Как это ни странно, проблема возникла, по всей видимости, из-за языкового барьера: многие ранние работы по теории игр были написаны на немецком и не переводились на английский. Например, оригинальная работа Цермело под названием «О применении теории множеств к теории шахмат» (Über eine Anwendung der Mengenlehre auf die Theorie des Schachspiels)[496], увидевшая свет в 1913 г., не была переведена на английский вплоть до 1997 г. Также не была своевременно переведена на английский менее известная, но связанная работа Денеша Кёнига, написанная в 1927 г.[497] Вторая статья, связанная с работой Цермело, была написана Ласло Кальмаром в 1928−1929 гг.[498], [499], но на английский язык её перевели только в 1997 г. До работы Швальбе и Уокера «Цермело и ранняя история теории игр» (Zermelo and the Early History of Game Theory)[500], написанной в 1997 г., по всей видимости, существовал только один корректный анализ работы Цермело — в статье Николая Воробьёва «Управляемые процессы и теория игр» (1955). Проблема в том, что эта книга переводилась только на немецкий язык (1975) и была недоступна англоязычному читателю. Со времён книги Воробьёва в русскоязычной литературе бытовало корректное описание вклада Цермело: «Цермело доказал детерминизм игр, подобных шахматам, и то, что рациональные игроки могут, используя полную информацию, разработать оптимальную стратегию игры». Вот как звучит вопрос, задаваемый Цермело в его статье: «Можно ли определить объективную оценку произвольной позиции в игре, а также наилучший возможный ход <…> или по крайней мере определить их математически объективно, без необходимости ссылаться на субъективные психологические понятия, такие как «идеальный игрок» и тому подобное?»

Прежде чем продолжить рассуждения о вкладе Цермело, давайте рассмотрим вопрос о максимальной длине шахматной партии. Хотя сегодня шахматы уже не столь популярны, как в 1980-е, основные правила этой игры знакомы едва ли не каждому — худо-бедно почти все мы в детстве освоили, что конь ходит «буквой Г» и что пешки не ходят назад. Однако в шахматах есть правила, о которых знает не каждый любитель. Например, установленное Международной шахматной федерацией (FIDE, от французского Fédération Internationale des Échecs) правило пятидесяти ходов гласит, что если в течение пятидесяти ходов ни одна пешка не двинулась вперёд и ни одна фигура не была взята, то в партии присуждается ничья по требованию любого из игроков. Также любой из игроков вправе потребовать присуждения ничьей в случае как минимум троекратного повторения одной и той же позиции. Благодаря правилу пятидесяти ходов ни одна из сторон не может вопреки воле другой стороны затянуть шахматную партию до бесконечности — для того чтобы она не завершилась в соответствии с вышеуказанным правилом, каждые пятьдесят ходов должно происходить хотя бы одно взятие фигуры или движение вперёд пешки и, кроме этого, позиции не должны повторяться. Весьма остроумные подсчёты показывают, что при таких условиях партия не может продолжаться больше примерно 6000 ходов[501]. В теории игроки могут отказаться от требования ничьей, несмотря на повторение позиции или превышение границы, установленной правилом пятидесяти ходов. Специально для таких случаев (в общем-то, сугубо теоретических) в 2014 г. FIDE установила специальное правило, в соответствии с которым при достижении порога в 75 ходов без взятий и движений пешек ничья присуждается автоматически. Словом, в современных шахматах есть такие тонкости, которые известны не многим. Цермело же рассматривал версию игры, в которой бесконечные партии были теоретически возможны.

Цермело задаётся двумя вопросами: во-первых, что означает, что игрок находится в «выигрышной» позиции, и можно ли это определить объективным математическим способом? Во-вторых, если он находится в выигрышной позиции, можно ли определить количество ходов, необходимых для форсированного выигрыша, то есть такого выигрыша, которому противник не может воспрепятствовать?

Чтобы дать ответ на первый вопрос, Цермело утверждает, что необходимым и достаточным условием является непустота определённого множества, содержащего все возможные последовательности ходов, такие, что игрок (например, играющий белыми фигурами) выигрывает независимо от того, как играет другой игрок. Но если это множество будет пустым, лучшее, чего сможет достичь игрок, — это ничья. Аналогичным образом Цермело определяет и другое множество, содержащее все возможные последовательности ходов, такие, что игрок может отложить своё поражение на бесконечное количество ходов, что подразумевает ничью. Это множество также может быть пустым, то есть игрок может отсрочить поражение только на конечное число ходов в случае, если его противник действует правильно. Однако последнее равносильно тому, что противник может добиться победы. Возможность того, что оба набора будут пустыми, означает, что белые не могут гарантировать, что они не проиграют.

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

3.3.2 Метод обратной индукции

Часто приписываемый Цермело метод обратной индукции был впервые описан в 1944 г. в монографии Джона фон Неймана и Оскара Моргенштерна «Теория игр и экономическое поведение» [Theory of Games and Economic Behavior] [502], сегодня считающейся одной из основополагающих работ в области теории игр.

Значимость работ Джона фон Неймана для вычислительной техники трудно переоценить. Наверняка вы слышали, что архитектуру большинства современных компьютеров часто называют архитектурой фон Неймана (мы ещё вернёмся к этому термину позже), а сами компьютеры — фон-неймановскими машинами. Кроме того, фон Нейман заложил основы математического аппарата квантовой механики, внёс существенный вклад в теорию операторов (его именем назван особый вид алгебр — алгебры фон Неймана), предложил теорию клеточных автоматов, а также стал одним из ключевых участников Манхэттенского проекта. В 1970 г. Международный астрономический союз присвоил имя Джона фон Неймана кратеру на обратной стороне Луны. В его память учреждены следующие награды: медаль Джона фон Неймана, Теоретическая премия фон Неймана, «Лекция Джона фон Неймана».

Кем же был этот человек со звучной немецкой фамилией?

Янош Лайош Нейман родился в 1903 г. и был старшим из трёх сыновей в состоятельной еврейской будапештской семье. Его отец, Микса Нейман, переселился в Будапешт из маленького городка Печ в конце 1880-х гг. Он получил степень доктора юриспруденции и работал юристом в Венгерском ипотечно-кредитном банке (Magyar Jelzálog-Hitelbank). Мать Яноша, Маргарет Канн, была домохозяйкой и старшей дочерью коммерсанта Якоба Канна — партнёра в фирме Kann—Heller, торговавшей сельхозоборудованием[503].

Янош с детства проявлял признаки одарённости: в шесть лет он мог делить в уме восьмизначные числа, складывать фразы на древнегреческом, в восемь — уже неплохо разбирался в математическом анализе.

Дела Миксы Неймана шли довольно неплохо — основатель и глава банка Кальман Селль в 1899 г. получил пост премьер-министра Венгрии и хотя и пробыл на нём относительно недолго (до 1903 г.), но впоследствии сохранял видную позицию в венгерской элите.

В 1913 г. старшему Нейману был пожалован дворянский титул с правом наследования. Таким образом Янош получил дополнение к своему имени в виде символа знатности. Теперь его имя звучало по-австрийски как Янош фон Нейман, а по-венгерски как Нейман Маргиттаи Янош Лайош[504]. Когда позже фон Нейман преподавал в Берлине и Гамбурге, его называли Иоганн фон Нейман. После переезда в 1930-х гг. в США, его имя изменилось на английский манер — Джон. Забавно, что братья фон Неймана, оказавшись в США получили совсем другие фамилии: Vonneumann и Newman.

Джон Харсаньи, венгерский эмигрант и представитель следующего поколения исследователей теории игр, хотя лично и не знал фон Неймана, но был хорошо знаком с обществом, из которого он вышел. Согласно Харсаньи, фон Нейман всегда использовал приставку «фон» к фамилии и его задевало, если кто-то опускал её. Более того, фон Нейман настаивал на том, что если предложение начиналось с его фамилии, то вы не должны были использовать заглавную букву в слове «фон», поскольку изменение первоначального написания недопустимо. Это, конечно, было весьма незначительной человеческой слабостью[505].

фон Нейман получил степень доктора философии по математике в Будапештском университете в 1926 г. Параллельно он изучал химические технологии в Швейцарской высшей технической школе Цюриха. Отец Яноша считал, что профессия математика не сможет обеспечить сыну надёжное будущее. В 1927 г. фон Нейман был назначен приват-доцентом Берлинского университета, став самым молодым обладателем этой степени в истории университета. Первую половину 1929/30 учебного года он провёл на должности приват-доцента в Гамбурге[506].

В 1930 г. фон Нейман был приглашён на преподавательскую позицию в Принстонский университет, а далее, с 1933 г. и до самой смерти, занимал профессорскую должность в уже знакомом нам Институте перспективных исследований (IAS)[507].

В межвоенные годы многие европейские евреи эмигрировали в США, среди них был ряд венгерских учёных: помимо фон Неймана в США перебрались Теодор фон Карман, Пол Халмош, Юджин Вигнер, Эдвард Теллер, Дьёрдь Пойа, Денеш Габор и Пал Эрдёш, многие из них затем приняли участие в разработке ядерного оружия. Современники отмечали, что венгерские учёные обладали развитым интеллектом, говорили на необычном языке, а их родиной была сравнительно небольшая страна. В результате их стали в шутку называть марсианами, что сами учёные приняли с должным чувством юмора.

В соответствии с шуточной легендой венгерские учёные были потомками разведывательных сил Марса, которые якобы приземлились в Будапеште на рубеже XIX–XX вв. и от которых женщины зачали детей. Вскоре марсиане, посчитав планету непригодной для исследований и жизни, оставили Землю. Родившиеся якобы от марсиан дети позднее уехали в Америку.

Дьёрдь Маркс в книге «Прибытие марсиан» (A marslakók érkezése) писал:

— …Вселенная — огромная, содержит мириады звёзд, и многие из них не слишком отличаются от нашего Солнца. Вокруг многих из этих звёзд, возможно, вращаются планеты. Какая-то часть этих планет содержит жидкую воду на своей поверхности и газообразную атмосферу. Исходящая от звезды энергия приводит к синтезу органических веществ, превращает океан в тонкий слой тёплого супа. Эти химические вещества соединяются друг с другом и создают систему самопроизводства. Простейшие живые организмы размножаются, эволюционируют в ходе естественного отбора и становятся более сложными, пока не появятся по-настоящему мыслящие существа. Далее последуют цивилизация, наука и технология. И в поисках новых миров они отправятся на соседние планеты, а затем планеты у соседних звёзд. И они расселятся по всей галактике. И эти исключительно развитые люди уж точно не проглядят такое прекрасное место, как наша Земля. Итак, — Ферми подошёл к решающему вопросу, — если всё это произошло, то они уже наверняка прибыли сюда. Так где же они?

Именно Лео Силард, человек с отличным чувством юмора, дал идеальный ответ парадоксу Ферми:

— Они среди нас, — ответил он, — но называют себя венграми.



Итак, фон Нейман и Моргенштерн дали формальное математическое определение обратной индукции (заметим, что они не использовали этот термин как таковой, а говорили лишь об индукции и последовательном рассмотрении позиций игры в обратном порядке — от тривиальных к нетривиальным). Сам термин «обратная индукция» периодически использовался математиками и ранее[508], но современное его применение в качестве обозначения процедуры, предложенной фон Нейманом и Моргенштерном, начинает утверждаться только в начале 1950-х в работах отца динамического программирования Ричарда Беллмана[509].

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

Методология динамического программирования, позволяющая машинам осуществлять ретроспективный анализ игр, была создана Беллманом в 1965 г.[510] Публикация Беллмана стала итогом его работы, о которой сообщалось ещё четырьмя годами ранее[511]. Беллман полагал, что рано или поздно появятся машины, способные, применяя его метод, найти полное вычислительное решение задачи оптимальной игры для шашек, в отношении же шахмат он считал, что удастся получить точные решения для некоторых классов окончаний — например для чисто пешечных эндшпилей[512].

Давайте рассмотрим пример применения метода ретроспективного анализа к такой простой игре, как крестики-нолики.


1. Для начала мы перечислим все возможные позиции и присвоим каждой из них неопределённую оценку, поскольку мы пока не знаем, какие из них являются выигрышными, проигрышными или ничейными. Затем присвоим оценку тем позициям, в которых на доске присутствует три крестика в ряд, — эти позиции выиграны крестиками, и мы с чистой совестью можем присвоить им соответствующую оценку, равную 1 (единицей мы будем обозначать победу крестиков). Аналогичную операцию проделаем с позициями, в которых в ряд выстроились три нолика, — этим, выигранным ноликами позициям мы присвоим оценку –1 (минус единица будет соответствовать позициям, выигранным ноликами). Затем настаёт очередь очевидно ничейных позиций, то есть таких позиций, в которых не осталось ни одного свободного поля, но при этом отсутствуют выстроившиеся в ряд по три крестики и нолики. Оценку таких позиций назначим равной 0, что будет соответствовать ничьей.


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


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


4. Рассмотрим теперь позиции, для которых все возможные ходы приводят в позиции с определённой оценкой. Для таких позиций выберем оценку, соответствующую лучшему из возможных исходов для стороны, которой принадлежит очередь хода. То есть если очередь хода принадлежит крестикам и у них есть ход, ведущий в ничейную позицию, то оценкой позиции является 0, в противном случае (т. е. если все ходы ведут к проигрышным позициям) оценкой позиции становится –1. Если же очередь хода за ноликами и у них есть ход, ведущий в ничейную позицию, то оценкой позиции становится 0, в противном же случае — 1.


5. Если на шагах 2–4 была получена хотя бы одна новая оценка, возвращаемся к шагу 2.


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

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

Рис. 54. Метод ретроспективного анализа в применении к игре крестики-нолики

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

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

Таким образом мы и получаем введённые ранее Цермело заполненные множества последовательностей ходов.

3.3.3 Применение обратной индукции для анализа шахматных окончаний

В 1969 г. в СССР математики Александр Брудно и Игорь Ландау применили ретроанализ для решения шахматной задачи под названием «Неприкосновенный король». В задаче на доске три фигуры: белый король, белый ферзь и чёрный король. Белый король находится на поле c3 и не имеет права двигаться (поэтому и называется неприкосновенным). Вопрос заключается в том, может ли белый ферзь с помощью своего неприкосновенного короля заматовать одинокого короля чёрных. Эта задача была известна ещё в XIX в., и многие шахматисты, в том числе гроссмейстеры, ошибочно предполагали, что заматовать короля нельзя. Брудно и Ландау выяснили с помощью машины, что мат даётся при любом начальном положении белого ферзя и чёрного короля, причём не позднее двадцать третьего хода. Они также доказали, что белые побеждают только в том случае, если «неприкосновенный король» в задаче стоит на полях c3, c6, f3 или f6. Вполне вероятно, что это был первый случай в истории шахмат (и математики), когда вычислительная машина решила шахматную задачу раньше человека[513], [514].



В 1970 г. математик Томас Штрохлейн защитил диссертацию о компьютерном анализе шахматных окончаний[515]. Когда на шахматной доске остаётся мало фигур, задача нахождения оптимальных ходов становится вычислимой. В 1969 г. Штрохлейн выполнил ряд расчётов на компьютере AEG-Telefunken TR4 в Вычислительном центре им. Лейбница в Мюнхене (Leibniz-Rechenzentrum München, сегодня это учреждение обычно называют Суперкомпьютерным центром им. Лейбница), проанализировав такие окончания, как «король и ферзь против короля» (KQK), «король и ладья против короля» (KRK), «король и пешка против короля» (KPK), «король и ферзь против короля и ладьи» (KQKR), «король и ладья против короля и слона» (KRKB) и «король и ладья против короля и коня» (KRKN)[516]. Это традиционно считается первым случаем практического применения ретроспективного анализа для шахматных окончаний[517].

В 1970-е гг. сотрудники Института проблем управления АН СССР Эдуард Комиссарчик и Арон Футер осуществили машинный анализ эндшпиля «король, пешка, ферзь против короля и ферзя» (с белой пешкой, фиксированной на поле g7)[518], а также эндшпиля «король, пешка, ладья против короля и ладьи» (KRPKR)[519], [520].

Именно работу по анализу последнего эндшпиля я вспоминаю, когда смотрю очередную серию анимационного сериала Netflix «Любовь, смерть и роботы» (Love, Death & Robots), и вот почему. В 2007 г. свет увидела книга Дэвида Леви с похожим названием — «Любовь и секс с роботами» (Love and Sex with Robots)[521]. Леви также выступает в качестве организатора скандально известной одноимённой ежегодной конференции (loveandsexwithrobots.org), проведение которой в 2015 г. было сорвано из-за запрета властей Малайзии. Дэвид Леви весьма яркая личность в мире ИИ. Например, он руководил разработкой и финансировал создание чат-ботов, становившихся победителями премии Лёбнера в 1997-м (Converse) и 2008-м (Do-much-more). Леви возглавляет Международную ассоциацию компьютерных игр (International Computer Games Association, ICGA), созданную в 1977 г. как Международная ассоциация компьютерных шахмат (International Computer Chess Association, ICCA). Леви сам является международным мастером спорта по шахматам, победителем чемпионата Шотландии по шахматам (1968-го, в 1975-м разделил первое место со Стивеном Суонсоном), а в 1972 г. играл на первой доске за команду Шотландии на Шахматной олимпиаде в Скопье. Как видите, мы совсем близко, до искомого эндшпиля уже практически рукой подать.

Кроме игры в шахматы и очевидного интереса к теме ИИ, Дэвид Леви также является заядлым спорщиком.

В 1968 г. Леви и Джон Маккарти, один из пионеров шахматного программирования (и автор термина «искусственный интеллект», о чём мы упоминали в начале книги), встретились на вечеринке, устроенной Дональдом Мичи. Маккарти пригласил Леви сыграть в шахматы — и последний одержал победу. Маккарти прокомментировал эту победу словами: «Вы можете победить меня, но через десять лет появится компьютерная программа, которая сможет победить вас». Леви предложил заключить пари, и Маккарти согласился. Спорщики поставили по 500 фунтов, это была более чем внушительная сумма, эквивалентная примерно 14 000 долларов 2023-го[522]. По признанию самого Леви, в то время он зарабатывал 895 фунтов в год[523]. Позже ставка более чем удвоилась, когда к ней присоединились Дональд Мичи, Сеймур Пейперт из Массачусетского технологического института и Эд Коздровицкий из Калифорнийского университета в Дейвисе.

Забегая вперёд, скажем, что Леви одержал победу в этом пари, выиграв в последующие годы несколько матчей против различных программ (Chess 4.5, Каиссы и MacHack), включая решающий матч 1978 г. против программы Chess 4.7 в Торонто[524], [525], а в 1984 г. Леви выиграл вторую, на этот раз пятилетнюю ставку в пари против разработчиков программы Cray Blitz[526].

Но вернёмся назад, когда исход этого пари ещё был неясен, а Леви не прекращал спорить.

В 1973 г. во время Северо-Американского чемпионата по шахматам среди компьютерных программ (North American Computer Chess Championship, NACCC), организованного Ассоциацией вычислительной техники (Association for Computing Machinery, ACM) в Атланте, Леви поспорил с создателями программы CHAOS, которые выразили сомнение в его заявлении о том, что в течение года они не смогут запрограммировать компьютер для правильной игры в окончании «король и ладья с пешкой против короля и ладьи» так, чтобы машина всегда была способна выиграть, находясь в выигрышной позиции, и никогда не проигрывала в ничейной. Сумма пари составила 100 долларов, и спустя год, в ноябре 1974 г., Леви получил деньги, поскольку программисты признали, что задача оказалась слишком сложной для них.

Однако удача не всегда способствовала Леви, и как минимум одно знаменитое пари он проиграл. Этот спор в истории компьютерных шахмат носит название «Скотч против водки» (Scotch versus Vodka). Как пишет сам Леви, «будучи довольно жадным», он решил повторить успех пари с создателями CHAOS и в декабре 1974 г., находясь в Москве, заключил аналогичное пари с Владимиром Арлазаровым: в случае поражения Леви должен был подарить Арлазарову двенадцать бутылок скотча, а в случае победы Леви должно было достаться двенадцать бутылок водки. Примерно через год спор завершился победой Арлазарова, под началом которого как раз и работали Комиссарчик и Футер, успешно решившие упомянутое окончание при помощи программы, использующей метод ретроспективного анализа[527], [528].

Ещё одна беседа спорщика Леви имела неожиданные последствия. В составе команды разработчиков другой шахматной программы — Belle — в чемпионате 1974 г. участвовал Кен Томпсон, сегодня больше известный как создатель операционной системы Unix (совместно с Деннисом Ритчи), языка программирования Би, ставшего предшественником Си, а также кодировки UTF‑8. Томпсон вспоминает: «…после игр мы разговаривали в баре, и он [Леви] утверждал, что „компьютеры не могут играть эндшпили, даже простые, и они никогда не смогут“. Он сказал: „Я эксперт в окончании «ладья и пешка против ладьи», и компьютер никогда не сможет играть этот эндшпиль“. В тот вечер я пошёл в свою комнату, произвёл расчёты и пришёл к выводу, что задача вычислима, что вы можете получить решение этой игры, решить её с помощью иного механизма, понимаете, не с помощью обычных [алгоритмов] компьютерных шахмат, а совсем другим способом. Вы можете просто получить ответ, посмотреть его и составить таблицу правильных ходов. Вернувшись на следующий день, я сказал ему [Леви] об этом, на что он ответил „не-не, это потребует слишком большого числа полуходов, вы знаете“, на что я сказал „нет, это не зависит от числа полуходов, это другой метод“, но он ответил „о нет“, он просто отмахнулся от меня, и я, знаете, не просто разозлился, это не то слово, я… знаете… знаете… я пошёл домой и около десяти лет посвятил эндшпилям»[529].

История успехов Томпсона в области компьютерного анализа шахматных окончаний началась, как это ни странно, ещё с одного знаменитого спора.

Альфред Шейнволд, всемирно известный эксперт по бриджу, в одной из своих статей упоминает несколько ценных советов, которые он получил от отца в юности. «Сын! — говорил старший Шейнволд. — Однажды ты встретишь незнакомца, который предложит тебе поспорить на пять долларов, что он сможет заставить пикового вальта выпрыгнуть из колоды и пустить струю пива тебе в ухо. Сын, не спорь с ним, потому что если ты сделаешь это, то получишь полное ухо пива»[530]. К глубокому его сожалению, гроссмейстер Уолтер Браун, по всей видимости, игнорировал мудрость предков, поэтому получил струю условного пива в своё условное ухо. Браун позарился на ​​100 долларов, предложенные Томпсоном за победу над машиной в окончании «король и ферзь против короля и ладьи». Несмотря на два с половиной часа, выделенных на обдумывание, и целых пятьдесят ходов, гроссмейстер не смог выполнить задание и был вынужден заплатить. Казалось бы, какая ерунда, любой учебник шахматных окончаний рассказывает, как выиграть с ферзём против ладьи. Это действительно так, при правильной игре сильнейшая сторона гарантированно добивается победы, но оказалось, что это окончание намного сложнее, чем кто-либо мог предположить.

Свои результаты по анализу эндшпиля «ладья и король против ферзя и короля» Томпсон представил в 1977 г. на конференции Международной федерации по обработке информации. Помимо пари с Брауном, Томпсон провёл несколько показательных выступлений. Против программы пытались играть Ханс Берлинер, экс-чемпион мира по переписке, и Лоуренс Дей, чемпион Канады. Ни тот ни другой не смогли выиграть у программы, хотя любая позиция была для них выигрышной. В 1978 г. Брауну удалось наконец взять реванш: забрав ладью ровно на 50-м ходу, он всё-таки смог выиграть в позиции, в которой при идеальной игре победа достигалась за 31 ход.

В 1970–1980-е гг. Томпсоном и другими энтузиастами были посчитаны все четырёхфигурные окончания, а к концу 1980-х — уже и все пятифигурные.



Результаты, полученные Томпсоном, наделали много шума в шахматном мире. «Идеальный игрок», которым стала машина, вскрыл множество человеческих заблуждений относительно шахматной игры. Эффект был столь сильным, что ревизии подверглись даже сами шахматные правила. Мы уже упоминали правило пятидесяти ходов — правило шахматной игры, согласно которому игрок, имеющий очередь хода, имеет право потребовать ничью, если на протяжении последних пятидесяти ходов ни одна фигура не была взята и не было ни одного хода пешкой. Ещё в начале XX в. шахматный композитор Алексей Троицкий доказал, что в некоторых эндшпилях («король и два коня против короля и пешки» и «король, ладья и слон против короля и ладьи») выигрыш достигается более чем за пятьдесят ходов, в связи c чем FIDE в 1928 г. установила в правиле увеличение числа ходов для подобных эндшпилей. Далее это правило ещё несколько изменялось, и к 1982 г. было три вида окончаний, для которых число ходов было увеличено до ста.

Но в 1989 г. из-за данных, полученных Томпсоном, число 50 заменили на 75 (вместо 100) уже для шести видов окончаний. Между тем компьютерный анализ эндшпиля продолжался, было открыто множество новых эндшпилей, нарушающих правило пятидесяти ходов, ввиду чего в 1992 г. было принято соломоново решение: отменить все исключения из правила пятидесяти ходов.

В настоящее время рекордный вариант семифигурного эндшпиля, найденный в 2008 г., представляет собой 517 ходов без взятий при наилучшей игре для окончания «король, ферзь и конь против короля, ладьи, слона и коня».

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

Весной — летом 2012 г. были рассчитаны семифигурные окончания. Авторы таблиц — Владимир Махнычев и Виктор Захаров, сотрудники факультета вычислительной математики и кибернетики (ВМиК) Московского государственного университета им. М. В. Ломоносова. Таблицы названы таблицами Ломоносова, поскольку в расчётах, помимо компьютера IBM Blue Gene/P, был использован суперкомпьютер МГУ «Ломоносов».

В настоящее время существует два альтернативных набора эндшпильных таблиц для всех семифигурных окончаний (Lomonosov и Syzygy), база данных семифигурных эндшпилей в формате Syzygy занимает 17 терабайт дискового пространства.

Для восьмифигурных окончаний по состоянию на сентябрь 2023 г. просчитаны позиции без пешек и с блокирующими друг друга пешками разных цветов[531], [532].

3.3.4 Виды решений: сильное, слабое, ультраслабое

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

Первый — сильное решение [strong solution]. При наличии сильного решения мы знаем (либо можем установить, затратив разумное количество ресурсов) теоретическую игровую оценку [game-theoretic value] для любой допустимой позиции игры. Под теоретической игровой оценкой обычно понимают результат игры при идеальных действиях всех игроков (для игр с элементами случайности аналогом теоретической игровой оценки будет математическое ожидание результата игры при идеальных действиях игроков, но мы сейчас не будем погружаться в анализ игр с неполной или несовершенной информацией). Зная теоретическую игровую оценку для каждой из позиций игры, игрок в любой позиции может выбирать идеальные ходы, играя тем самым «на уровне бога».

Слабое решение [weak solution], в отличие от сильного, предполагает лишь наличие стратегии (либо возможность её получить при затрате разумного количества ресурсов), позволяющей каждому из игроков, начавших игру со стартовой позиции игры, достичь результата, не уступающего теоретической игровой оценке. Поясним отличие слабого решения на примере крестиков-ноликов. Обладая слабым решением, мы знаем, какой ход нужно сделать в стартовой позиции игры. В ответ на все ответные ходы соперника мы в свою очередь знаем наши наилучшие ответы и так далее. Однако, если мы в какой-либо позиции совершим ход, отличный от того, который рекомендует нам имеющееся решение, мы окажемся в позиции, для которой у нас уже не будет информации о лучшем ходе. Если стратегия, содержащаяся в слабом решении, говорит нам ставить крестик в левый верхний угол поля, а мы вопреки этой рекомендации поставили его, например, на клетку ниже, мы необязательно проиграем партию или упустим возможный выигрыш, но мы попадём в позицию, точная оценка которой неизвестна. Таким образом, наличие слабого решения позволяет нам играть «на уровне бога» лишь в некотором подмножестве валидных позиций игры, включающем начальную игровую позицию.

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


Рис. 55. Слабое решение для игры крестики-нолики

Благодаря тому, что слабое решение для крестиков-ноликов содержит гораздо меньше позиций, чем в принципе может возникнуть в игре, его удалось изобразить на одной книжной странице. Можете сфотографировать его на камеру телефона и затем использовать в качестве шпаргалки: если будете точно следовать его рекомендациям, то никогда не проиграете в крестики-нолики, а при ошибке противника никогда не упустите победу.

Также существует понятие ультраслабого решения [ultra-weak solution], подразумевающего, что был определён результат при идеальной игре обеих сторон, однако сама последовательность ходов не определена.


Рис. 56. Типы решений

3.3.5 Гекс — игра без ничьих

Забавно, что эту игру придумали независимо друг от друга сразу два человека — Пит Хейн в Дании в 1942 г. и Джон Нэш в США в 1948 г. Пит Хейн не менее знаменит среди датчан, чем Джон Нэш среди специалистов по теории игр. Будучи прямым потомком Пита Хейна — старшего, голландского моряка и народного героя XVII в., Пит Хейн — младший приобрёл известность благодаря созданию коротких стихотворных афоризмов, которые он называл «груками» (gruk). Груки были способом, позволявшим Хейну во время фашистской оккупации Дании обходить цензуру и доносить свои мысли до других датчан в иносказательной форме.



Отец кибернетики Норберт Винер был большим почитателем литературного таланта Хейна и так отзывался о его творчестве: «Пит Хейн — мастер эпиграммы. Его следует читать по меньшей мере на двух уровнях — внешнем и более глубоком. И в том и в другом случае они вызывают во мне восхищение. Какое богатство значительных мыслей заключено в них!» Многие строки Хейна стали крылатыми словами и поговорками. Хейн был не только талантливым литератором, но и художником, инженером и изобретателем. Когда Пит Хейн работал в Институте теоретической физики Университета Копенгагена, то именно его Нильс Бор избрал в качестве партнёра по «интеллектуальному пинг-понгу»[533], [534]. Помимо других научных проблем, Хейн размышлял над знаменитой топологической проблемой четырёх красок (теорема, которая утверждает, что всякую расположенную на сфере карту можно раскрасить не более чем четырьмя разными красками так, чтобы любые две области с общим участком границы были раскрашены в разные цвета), и ему пришла в голову идея новой игры. Хейн рассказал о ней в одной из своих лекций, и через некоторое время её правила опубликовала газета Politiken. Игра быстро стала весьма популярной в Дании — гекс тогда называли «многоугольники» и играли в него на бумаге. Со временем в продаже появились специальные блокноты для игры с напечатанными в них изображениями игровых полей. Задачи по гексу регулярно появлялись в газете Politiken, которая назначала премии за лучшие решения. В 1950-е гг. доски для игры в гекс начала выпускать фирма Parker Brothers, тогда же игра и получила своё современное название — гекс.

Поле для игры в гекс состоит из шестиугольных ячеек. Оно может быть любого размера или формы, но обычно используют поле в форме ромба размером n × n, обычно 11 × 11, 14 × 14 или 19 × 19. Нэш считал наилучшим размером 14 × 14.

Игра ведётся фишками двух цветов (обычно красными и синими). Игроки по очереди ставят фишки своего цвета в свободные ячейки поля. Первый ход делают синие.

Две противоположные стороны поля окрашены в красный и синий цвета и называются красной и синей сторонами соответственно. Ячейки в углах поля являются общими. Чтобы выиграть, игрок должен выстроить цепочку из своих фишек, соединив ею стороны своего цвета, то есть красные стремятся построить цепь из красных фишек между двумя красными сторонами доски, а синие — цепь из синих фишек, соединяющую синие стороны[535].


Рис. 57. Пример игры в гекс

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



Джон Нэш был первым, кто указал (примерно в 1949 г.), что гекс не может закончиться ничьей. Это утверждение в разговорной речи иногда называют теоремой гекса. В наши дни известно, что теорема гекса эквивалентна теореме Брауэра о неподвижной точке. Рассуждения Нэша, однако, не были опубликованы в научной прессе, они содержатся во внутреннем техническом отчёте RAND Corporation, подготовленном в 1952 г. Дословно Нэш пишет в нём следующее: «Природа игры такова, что если всё игровое поле заполнено фишками, то либо белые совершили соединение, либо чёрные сделали это (Нэш использовал эти два цвета для фишек играющих сторон. — С. М.). Соединение и блокирование противника являются эквивалентными действиями»[536]. Формальное доказательство было опубликовано Дэвидом Гейлом в 1979 г., то есть более чем через тридцать лет после изобретения игры. На самом деле оно совершенно нетривиальное и содержит десять шагов рассуждения:


1. Возьмём любое поле игры в гекс, все ячейки которого полностью заполнены отметками X (ставит первый игрок) или 0 (ставит второй игрок).


2. Возьмём точку соприкосновения сторон X и 0 в любом углу и от неё нарисуем путь вдоль рёбер, который будет проходить только между шестиугольниками с разными отметками X и 0. При этом края игрового поля мы считаем граничащими со сплошной стеной из шестиугольников с соответствующими стороне отметками (X или 0).


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


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


5. Аналогично путь не может заканчиваться и на краях поля, поскольку края игрового поля считаются граничащими со сплошной стеной из шестиугольников с соответствующими стороне отметками (X или 0).


6. Таким образом, путь может закончиться только в другом углу.


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


8. Из предыдущего следует, что путь не может закончиться в углу, противоположном начальному, потому что в нём метки X и 0 находятся на иных сторонах пути, чем в исходном углу. Таким образом, путь может соединять только смежные углы (принадлежащие одной стороне).


9. Поскольку путь соединяет смежные углы, сторона игрового поля между этими углами (скажем, сторона X) отрезана от остальной части игрового поля непрерывной цепью противоположных отметок (в данном случае 0). Эта неразрывная цепь обязательно соединяет две другие стороны, прилегающие к углам.


10. Таким образом, на полностью заполненном поле для игры в гекс должен быть победитель.


Рис. 58. Иллюстрация к вышеизложенному доказательству

Итак, геометрия гекса не позволяет ни одному из игроков рассчитывать на ничью, следовательно, при идеальной игре сторон у гекса должен быть победитель[537]. В своём отчёте 1952 г. Нэш приводит любопытное соображение: «В гексе, — пишет он, — наличие лишней фишки на игровом поле никогда не может быть недостатком. Это в корне отличается от ситуации в шахматах или го, в которых наличие фигуры или камня на определённом участке доски может быть помехой». Из этого Нэш делает вывод, что у игрока, ходящего вторым, не может быть выигрышной стратегии и что, следовательно, при идеальной игре обеих сторон игра является выигранной для первого игрока. Однако Нэш отмечает, что, по всей видимости, у первого игрока нет простой стратегии победы[538]. И действительно, до сих пор придумать какое-либо простое правило для первого игрока, позволяющее ему выигрывать в гекс с гарантией, не удалось. В настоящее время найдено слабое решение для игры в гекс лишь на поле 9 × 9, хотя благодаря доказательству Нэша мы знаем, что игра является теоретически выигранной первым игроком для любого размера поля. Таким образом, для гекса с произвольным размером поля мы обладаем ультраслабым решением.

Иногда ультраслабым образом не может быть установлена точная теоретическая игровая оценка стартовой позиции, но может быть установлено её ограничение сверху или снизу. Например, в некоторых играх вторая сторона может повторять ходы противника, что гарантирует ей ничью. Для таких игр можно сказать, что их стартовая позиция точно не является выигрышной для первой стороны. Этот логический трюк называют обычно «воровством стратегии».

3.3.6 Решения разных игр

Для многих более простых игр слабые (а иногда даже сильные) решения обнаружились без привлечения машин. Например, для игры «магараджа» (или «магараджа и сипаи»), где чёрные имеют набор обычных шахматных фигур, а белые — единственную фигуру «магараджа», способную ходить и как ферзь, и как конь, было доказано, что при правильной игре чёрным гарантирована победа. Ещё до появления компьютеров люди смогли решить и ним, и крестики-нолики, однако последние достижения в области решения игр людям без помощи машин были бы явно не под силу. Например, 29 апреля 2007 г. команда исследователей из Университета Альберты (Канада) под руководством Джонатана Шеффера смогла достичь слабого решения для английских шашек, по правилам которых шашки не бьют назад, а дамки могут ходить лишь на соседние по диагонали поля, но в любую сторону.

Английские шашки — самая большая из игр, решённых до настоящего времени. Размер её поискового пространства (т. е. количество легальных позиций) — примерно 5 × 1020. Для того чтобы найти решение, в течение 18 лет сеть персональных компьютеров (в разное время от 50 до 200) произвела 1014 вычислений.

Исследователям удалось найти решения для весьма внушительного списка игр, в который, в частности, входят «четыре в ряд», фанорона, вари (оваре), калах, шахматные поддавки (белые выигрывают, начиная игру ходом пешки на поле e3), ним, пентаго, баг-чал («тигры и козы»), кварто, тееко и множество других игр, о существовании которых я узнал, когда писал этот абзац.

Последней решённой игрой на данный момент стала пентаго. В отличие от шахмат и го поисковое пространство этой игры небольшое, что позволяет современному компьютеру играть идеально: с учётом всех возможных симметрий количество возможных позиций в пентаго составляет 3 009 081 623 421 558. В течение нескольких часов суперкомпьютер Edison семейства Cray, находящийся в Национальном научно-вычислительном центре энергетических исследований (NERSC), используя для вычислений целых 98 304 потока, нашёл сильное решение игры.

3.4 Шашки

Для того чтобы победить, я только лишь передвигал нужную шашку на нужное поле…

Марион Тинсли

Шашки — одна из самых древних настольных игр, известная человечеству с незапамятных времён. Археологические находки в Уре, одном из древнейших шумерских городов-государств древнего Южного Междуречья (Месопотамии), подтверждают существование ранней формы этой игры уже в III тысячелетии до н. э.[539] Аналог этой игры существовал и у древних египтян: найдены папирусы с изображением играющих людей, а также сами комплекты для игры.

Многочисленные упоминания игр, напоминающих шашки, встречаются у древнегреческих авторов. В гомеровской «Одиссее» женихи Пенелопы играют в «пессои» (πεσσοί) — вариант шашек, по преданию изобретённый Паламедом (Παλαμήδης)[540]. В других античных источниках эта игра (или подобные ей) упоминается под названиями «пять линий» (πέντε γραμμαί), «полеис» (πόλεις) и «псефои» (ψῆφοι). В качестве обобщающего названия различных видов игры в шашки древние греки использовали термин «петейя» (πεττεία)[541]. Платон в диалоге «Федр» указывает на древнеегипетское происхождение шашек и говорит, что их изобретение приписывается богу Тевту (по всей видимости, Тоту)[542].

В Древнем Риме наследником этой игры стала игра под названием ludus latrunculorum, latrunculi или попросту latrones. Её название образовано от слова latro, которое обозначает разбойника или солдата-наёмника. Арабский вариант шашек с доской размером 5 × 5 клеток назывался «киркат» (القرقات). В Испании эту игру стали называть «алькерк» (alquerque), под этим названием она известна и поныне[543]. Правила многих древних игр шашечного типа не сохранились до наших дней, а если и известны, то обычно существенно отличаются от современных шашек. Да и сами эти игры часто существовали в нескольких вариантах. Например, в латрункули, по всей видимости, могли играть на досках размером 7 × 8, 8 × 8, 9 × 10, 8 × 11 и даже 8 × 12 (по крайней мере, археологи обнаруживали поля для игры таких размеров)[544]. Даже сегодня существуют русские, английские, испанские, итальянские, португальские, чешские, французские, турецкие, армянские шашки — и ещё множество других вариантов этой игры. В некоторых современных разновидностях шашек используются доски размером 8 × 8, 10 × 10 и даже 10 × 8.

Мы будем говорить в этой главе и далее об английских шашках, известных также под названием «чекерс» [checkers], поскольку история создания программ именно для этой игры наиболее насыщена событиями. Привычные всему миру правила этой игры окончательно оформились, по всей видимости, только на излёте Средневековья. Главное отличие: в привычных нам русских шашках дамка может ходить и бить по диагонали на любое число полей, а дамка в «чекерсе» ходит только на одно поле (вперёд или назад) и бьёт только через одно поле (вперёд или назад).

3.4.1 Начало. Шашечная программа Кристофера Стрейчи

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

Стрейчи действительно заинтересовался шашками довольно рано, хотя, возможно, не в 1947 году, когда я начал работать над своей программой в Университете Иллинойса. Тем не менее Чарльз Бэббидж <…> ещё раньше предлагал использовать свою «аналитическую машину» для игры в шашки и шахматы, так что Бэббидж в любом случае опередил нас обоих. Моя первая программа для игры в шашки для компьютера Illiac Иллинойсского университета так и не была ни разу запущена, потому что Illiac существовал только на бумаге, когда я покинул этот университет, чтобы перейти на работу в IBM в 1949 году. Только в 1952 году моя программа заработала на экспериментальной модели компьютера IBM 701. Кстати, эта первая программа была написана в машинных кодах (набор кодов операций конкретной вычислительной машины. — С. М.) — ещё до того, как у нас появился символьный ассемблер.

Я узнал о работе Стрейчи из статьи, которую он представил в Торонто в сентябре 1952 года. Поскольку его программа в то время уже была опубликована, я должен признать своё поражение. Только в 1954 году, с появлением IBM 704, моя программа смогла продемонстрировать интересную игру. Мой вклад заключался в добавлении «обучения» в программу, и я считаю, что могу претендовать на приоритет в этом вопросе[545].


Рис. 59. Портрет Кристофера Стрейчи, отпечатанный при помощи компьютера,
хранящийся в Бодлианской библиотеке Оксфордского университета

Первая версия программы Стрейчи для прототипа британского компьютера ACE (Automatic Computing Engine) была завершена в феврале 1951 г., однако объёма оперативной памяти машины оказалось недостаточно для полноценной работы программы.

Когда Стрейчи услышал о машине Manchester Mark 1, обладавшей значительно большим объёмом памяти, он попросил у бывшего сокурсника по Кингс-колледжу Кембриджа Алана Тьюринга руководство по программированию этой машины и к октябрю 1951 г. перевёл свою программу в машинный код для Manchester Mark 1 (коммерческая версия этой машины получила название Ferranti Mark 1) — иногда эту машину называют MADM (Manchester Automatic Digital Machine, Манчестерская автоматическая цифровая машина) или даже MADAM. Летом 1952 г. программа могла «сыграть полноценную партию в шашки на разумной скорости»[546].

Стрейчи был также одним из пионеров компьютерной музыки. В руководстве по программированию, полученному Стрейчи от Тьюринга, упоминается инструкция, позволяющая передавать импульсы на встроенный динамик компьютера. Тьюринг пишет, как, управляя паузами между импульсами, можно производить звуки разной высоты. Тьюринг рекомендует использовать эту инструкцию для оповещения оператора машины об определённых событиях[547]. Стрейчи сделал следующий шаг, научив машину исполнять несколько мелодий: британский гимн (God Save the King — дело было ещё при жизни Георга VI), Baa Baa Black Sheep и In the Mood. В 1951 г. мелодии были записаны вещательным подразделением Би-би-си. В 2016 г. исследователи из Университета Кентербери восстановили мастер-диск и загрузили записанные на него мелодии в облачный сервис Soundcloud[548], [549]. Таким образом, мелодии, созданные Стрейчи, стали первой дошедшей до нас компьютерной музыкой. Если бы Стрейчи чуть поторопился, то, возможно, его компьютерная музыка стала бы и первым в мире образцом компьютерной музыки, но его опередил Джеффри Хилл, научивший чуть раньше австралийский компьютер CSIR Mk1 воспроизводить «Марш полковника Боги» (Colonel Bogey March)[550].

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

В сентябре 1966 г. текст программы Стрейчи, переписанной на изобретённом им высокоуровневом языке программирования CPL, был опубликован в специальном выпуске журнала Scientific American, посвящённом информации. В 2011 г. Питер Норвиг реализовал простой транслятор с языка CPL на Python и, устранив несколько опечаток, смог вернуть программу Стрейчи «к жизни»[552].

Если взглянуть на начальную позицию в английских шашках, легко заметить, что белые могут начать партию одним из семи возможных полуходов (полуход, по-английски ply, возможно сокращение от reply — ответ, — перемещение шашки одного из цветов, ход — два последовательных полухода за белых и за чёрных), на каждый из которых чёрные могут также ответить семью возможными ответными полуходами. Таким образом, в результате первого полухода на доске может возникнуть семь позиций, в результате двух последовательных полуходов — 49 позиций. Далее число возможных полуходов меняется, и после трёх полуходов на доске может возникнуть 302 позиции, но некоторые из них будут повторяться, поскольку возникнут в результате перестановок ходов, и уникальных позиций будет всего 216. Современные шашечные программы умеют учитывать подобные повторения, запоминая часть проанализированных позиций в оперативной памяти[553], но в начале 1950-х оперативная память Ferranti Mark 1 позволяла хранить всего 512 чисел, по 20 бит каждое[554], поэтому о таких изысках, как таблица перестановок, не приходилось и мечтать. С увеличением количества полуходов число их возможных цепочек растёт очень быстро: 5 полуходов — 7361 вариант (уникальных позиций — 2733), 6 полуходов — 36 768 вариантов (уникальных позиций — 9105), 7 полуходов — 179 740 вариантов (уникальных позиций — 28 123) и так далее. При 28 полуходах мы получим астрономическое число 16 377 718 018 836 900 735 вариантов[555]. Современному компьютеру, способному просматривать 10 млн вариантов в секунду, потребовалось бы на их рассмотрение почти 52 000 лет, а ведь речь идёт лишь о партиях не длиннее 14 ходов. Совершенно очевидно, что перебор необходимо каким-то образом ограничить. Программа Стрейчи способна просматривать дерево вариантов игры на фиксированное число полуходов. При этом, поскольку позиции в терминальных узлах дерева в ряде случаев ещё далеки от завершения игры, Стрейчи использовал вместо неизвестной точной оценки позиции приближённую, выбрав в качестве приближения разницу в числе своих шашек и шашек противника (дамка оценивалась в четыре шашки). Функцию, выполняющую такую приближённую оценку позиции, сегодня принято называть оценочной функцией [evaluation function]. Подчёркивая неточный, основанный на предположениях и догадках характер заложенного в них знания, подобные функции называют эвристическими (от др.-греч. εὑρίσκω — отыскиваю, открываю). Действительно, хотя позиции, в которых у одной из сторон есть преимущество в числе шашек, часто являются выигрышными для этой стороны, но из такого правила несложно найти множество исключений.

Примечательно, что с математической точки зрения оценочная функция, выбранная Стрейчи, является полиномом: f = McMp + 4Kc – 4Kp, где Mc — число шашек машины, Mp — число шашек противника, Kc — число дамок машины, Kp — число дамок противника. Все позиции в шашках, согласно теореме Цермело, должны быть либо выигрышными, либо проигранными, либо ничейными при идеальной игре обеих сторон. В примере с крестиками-ноликами мы использовали для выигрышной позиции оценку «1», для ничейной — «0» и для проигрышной — «–1». Такая оценка очевидным образом связана с числом очков, которое игрок получит при соответствующем результате, s = (v + 1) / 2, где s — число очков, а v ∈ {−1, 0, 1} — оценка, которую мы использовали в крестиках-ноликах. Оценка со знаком позволяла нам легко получить значение оценки для противника, достаточно было просто поменять у оценки знак: vc = –vp, вместо того чтобы выполнять менее наглядную операцию вычитания оценки из единицы: sc = 1 – sp, но это в некоторой степени дело вкуса.

В случае эвристической оценки мы в подавляющем большинстве случаев не уверены в её точности. Из-за этой неуверенности оценка приобретает вероятностный характер. Казалось бы, разумно использовать в качестве оценки математическое ожидание количества очков: s ∈ [0; 1], s = 1 × p(W) + 0,5 × p(D), где p(W) — вероятность победы, p(D) — вероятность ничьей, а для удобства можно было бы преобразовать оценку к виду v ∈ [–1; 1], чтобы работал трюк с переменой знака. Однако вместо этого создатели первых шашечных и шахматных программ выбрали на первый взгляд весьма неудобную полиномиальную форму оценки f, где она может принимать большие по модулю положительные и отрицательные значения. Получается, что позиция, в которой у машины все 12 шашек стали дамками, а у противника не осталось ни одной шашки, будет иметь оценку, равную, например, 48, а если бы дамки оценивались не в 4 единицы, а в 40, то мы получили бы число 480. Но каков смысл этого числа? Каким образом оно связано с ожидаемым результатом партии?

На самом деле такая аддитивная оценка, безусловно, связана с вероятностью победы каждой из сторон. Если бы мы взяли программу Стрейчи и заставили её разыграть астрономическое количество случайных позиций, а затем построили график, в котором по оси x отложили оценку позиции f, а по оси y — среднее количество очков, набранных в играх, начатых с позиции с оценкой x, то получили бы график, напоминающий график логистической функции: s(x) = 1 / (1 + ekx), где k — некоторый масштабный коэффициент, e — основание натурального логарифма.


Рис. 60. График зависимости вероятности выигрыша от оценки позиции

То есть выбранный Стрейчи способ оценки всё-таки был связан с вероятностью победы, хотя и неочевидным образом. Но к чему такие сложности, почему бы не использовать в качестве оценки собственно вероятность?

Всё дело в том, что именно такой способ оценки позиции, при котором мы просто представляем её в виде суммы оценок каждого взятого по отдельности признака, является более привычным для людей. В любом шашечном или шахматном учебнике вы найдёте способы оценки, сформулированные именно в таком виде. Например, шахматный учебник скажет, что слон и конь сто́ят примерно по три пешки, ладья — пять, а ферзь — девять. Такой способ оценки позиции является частью старинной традиции. Ещё итальянские шахматные мастера XVII–XVIII вв. пытались оценить «стоимость» фигур в пешках, а их последователи стали аналогичным образом оценивать и различные позиционные факторы. В шашках тоже удобно принять за эталон «стоимость» одной шашки и исчислять «стоимость» дамки, а также различных позиционных элементов оценки, сравнивая их с принятым эталоном. В XX в. машины учились играть в игры у людей и не слишком часто преподавали уроки людям, поэтому и развитие ИИ было в очень большой степени основано на человеческих экспертных знаниях. В 1967 г. Сэмюэл так охарактеризовал современное ему положение вещей: «…при нынешнем уровне развития знаний единственным практическим подходом будет, даже при наличии помощи со стороны цифрового компьютера, разработка эвристик, основанных на копировании (тут автор применяет глагол to ape, т. е. дословно «собезьянивании». — С. М.) поведения человека»[556].

Итак, программа Стрейчи стремилась выбрать ход, который максимизировал бы значение оценочной функции при наилучших ответных действиях оппонента. Такой метод обычно называют минимаксом, поскольку, рассматривая собственные ходы (на нечётных уровнях дерева), программа выбирает ход с максимальной оценкой, а рассматривая ходы оппонента (на чётных уровнях дерева), выбирает ходы, минимизирующие оценку. Если на каждом уровне дерева менять знак оценки на противоположный, то можно обойтись одной только максимизацией. Такую модификацию минимакса обычно называют негамаксом.


Рис. 61. Упрощённая диаграмма, показывающая, как оценки поднимаются по дереву возможных ходов, чтобы получить наилучший следующий ход. Процесс оценки начинается на уровне (3), где машина выбирает ветку с наиболее положительной оценкой. Далее на уровне (2) от противника ожидается выбор ветки с наименьшей оценкой, и на уровне (1) машина выбирает ветку с наибольшей оценкой

Изобретение минимакса часто приписывают фон Нейману, ведь он рассматривается в одной из его ранних работ — «К теории стратегических игр» (Zur Theorie der Gesellschaftsspiele), написанной в 1928 г.[557] В действительности приоритет в данном случае, по всей видимости, принадлежит Сирио Форелю Эмилю Борелю, который сформулировал отдельные положения теории игр раньше фон Неймана и независимо от него[558]. При некоторой фантазии можно говорить и о приоритете Бэббиджа[559], который предложил похожий алгоритм для выбора хода в крестиках-ноликах. Как бы то ни было, и Борель, и фон Нейман, и Бэббидж отталкивались от окончательных оценок в терминальных узлах дерева перебора, использовать же усечённое дерево и приближённые оценки первым предложил Норберт Винер[560].

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

3.4.2 Продолжение. Шашечная программа Артура Сэмюэла

Программа, описанная Сэмюэлом в статье 1967 г., отличается от программы Стрейчи примерно так же, как ВАЗ-2101 («копейка», которую, к слову, начали производить тремя годами позже) от крестьянской телеги. В программе Сэмюэла уже можно разглядеть многие черты современных шашечных и шахматных программ.

Для начала Сэмюэл выбрал для оценки обычных шашек и дамок величины, относящиеся друг к другу как 3 : 4, что более точно соответствовало человеческим экспертным знаниям. Помимо подсчёта шашек и дамок на доске, Сэмюэл добавил в оценочную функцию множество позиционных факторов. Например, учитывались мобильность (количество потенциальных ходов у каждого из игроков без учёта взятий) и контроль каждой из сторон над различными участками поля. Сама игра была разделена на шесть стадий, в каждой из которых значения оценок каждого из факторов могли быть разными. Кроме того, оценочная функция Сэмюэла учитывала сочетания некоторых факторов, а также тот факт, что в зависимости от очерёдности хода эти сочетания могут иметь различную оценку. В результате итоговая оценочная функция имела более 10 000 параметров. Хотя Сэмюэл и использовал фиксированный набор факторов, он замахнулся ещё и на автоматический подбор их значений. Действительно, установить значения для такого внушительного набора параметров экспертным путём представлялось малореальным.

Однако для автоматической подстройки нужна была обучающая выборка. Для того чтобы её создать, примерно 250 000 позиций из игр шашечных мастеров было выбито на перфокартах, а затем перенесено на магнитную ленту. Для каждой позиции был отмечен ход, сделанный игроком (использовались только позиции с ходами не проигравших партию игроков). Затем Сэмюэл использовал весьма нетривиальную процедуру, включающую специальные способы сглаживания значений параметров, для подбора таких их значений, чтобы при переборе на один полуход в глубину его программа как можно чаще «угадывала» ходы, сделанные мастерами (в случае взятий глубина перебора могла увеличиваться). Сеанс обучения длился около десяти часов.

Для оценки качества предсказания Сэмюэл использовал простую метрику, напоминающую коэффициент корреляции: C = (LH) / (L + H), где L — суммарное количество всех возможных ходов, которые программа оценила ниже, чем «правильный» ход, сделанный мастером, H — суммарное количество всех возможных ходов, которые программа оценила выше, чем ход, сделанный мастером. Таким образом, при полном угадывании программой ходов мастера метрика C будет равна «1», при полном неугадывании — «–1», а при случайной оценке ходов — «0».

Хотя отдельные ходы мастеров могли быть ошибочными либо имели равные им по силе альтернативы, Сэмюэл считал, что при достаточно большом объёме выборки это не будет являться серьёзной проблемой. В результате экспериментов по подстройке параметров автору удалось получить значение C = 0,26 при использовании оценочной функции, учитывающей значение каждого из факторов по отдельности, и C = 0,48 для функции, использовавшей сочетания факторов. По оценке Сэмюэла, подобранные параметры позволяли программе при переборе в глубину на один полуход в 64% случаев ставить ход мастера по оценке на первое или второе место[562].

Радикальным образом изменился и механизм перебора вариантов. Внимательные читатели наверняка заметили один из очевидных изъянов программы Стрейчи — фиксированную глубину анализа вариантов. Представим, что перебор ограничен глубиной в два полухода и производится в позиции с равным количеством шашек, а вторым полуходом оказалось взятие соперником нашей шашки. Оценочная функция, рассматривая позицию, возникшую после взятия, даст ей отрицательную оценку — действительно, в этой позиции у противника появилось преимущество в шашку. Однако взятие на самом деле может быть началом банального размена, и уже на следующем полуходе взятая шашка отыгрывается обратно. Но машина этого «не видит», потому что исчерпан лимит глубины перебора. Эта проблема сегодня широко известна под названием «эффект горизонта». Сэмюэл боролся с ней, позволяя программе прерывать перебор только в узлах дерева, в которых нет взятий.

Ещё одним радикальным нововведением стало применение так называемого альфа-бета-отсечения[563]. Этот метод был в нескольких разных модификациях независимо открыт и развит в разное время целым рядом исследователей. К их числу относятся Джон Маккарти, который впервые выдвинул идею на ставшей впоследствии знаменитой Дартмутской конференции 1956 г.; Аллен Ньюэлл, Герберт Саймон и Клифф Шоу, описавшие в 1958 г. алгоритм перебора шахматной программы, использующей односторонний вариант альфа-бета-отсечения; Александр Брудно, в 1963 г. независимо от американцев разработавший этот метод (под названием «метод граней и оценок») и формально доказавший его корректность; Джеймс Слейгл, Филип Бурский, Джон Диксон и сам Сэмюэл, которые описали метод в своих статьях конца 1960-х, и, наконец, Дональд Кнут и Рональд Мур, уточнившие определение и посвятившие альфа-бета-отсечению в 1974 г. отдельное объёмное исследование[564].

Основная идея метода заключается в том, что в некоторых случаях нам не нужно знать точную оценку того или иного варианта в дереве перебора, достаточно лишь установить, что эта оценка выше или ниже определённой границы. Например, программа проанализировала некоторый ход X в определённой позиции и обнаружила, что он приводит к выигрышу шашки. Анализируя альтернативный ход Y, она обнаруживает, что у противника есть ответный ход, который приводит к ничейной позиции. В таком случае анализ всех остальных возможных ответов противника на ход Y избыточен: да, может быть, у противника есть ещё более сильный ответ, который, например, приводит к потере машиной шашки, но это уже совершенно не важно, ведь ход Y уже был опровергнут. Верхняя граница оценки (beta) для одного игрока является взятой с противоположным знаком нижней границей оценки (alpha) для второго игрока, и наоборот. Таким образом, процедура перебора получает в качестве параметров величины alpha и beta и осуществляет поиск внутри «окна», задаваемого этими параметрами. Если в ходе перебора машине всегда везло и первый рассмотренный ход в каждом из узлов дерева перебора оказывался действительно сильнейшим, то вместо рассмотрения N позиций в ходе перебора нам потребуется рассмотреть их только около

\sqrt{N}
, что является весьма существенным достижением. Конечно, на практике упорядочить ходы-кандидаты идеальным образом не получится, но за последние полвека создатели шахматных и шашечных программ придумали множество остроумных алгоритмов, позволяющих эффективно выявлять наиболее перспективные ходы-кандидаты. Например, можно использовать перебор вариантов с сокращённой глубиной, чтобы выявить самый потенциально сильный ход, как это делал Сэмюэл. Важно отметить, что альфа-бета-отсечение является полностью корректным, то есть гарантирует получение той же самой оценки в корне дерева перебора, что и алгоритм полного перебора вариантов без отсечений.


Рис. 62. Пример работы альфа-бета-отсечения

Помимо альфа-бета-отсечения, программа Сэмюэла использовала и набор весьма оригинальных эвристических отсечений.

И наконец, программа Сэмюэла использовала метод обучения, названный «зубрёжка» (rote learning) и заключавшийся в запоминании оценок позиций, уже встречавшихся в предыдущих партиях. Встретив такую позицию в нижних узлах дерева перебора, программа повторно использовала оценку, полученную в прошлый раз в результате более глубокого перебора, что позволяло не только сэкономить время, но и получить более надёжную оценку (поскольку глубина перебора в прошлый раз была больше, то меньше была и вероятность ошибки), избежав, возможно, ошибки, сделанной в предыдущий раз. Учитывая, что дебюты и окончания шашечных партий часто повторяются, этот метод был достаточно эффективен[565].

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

Работа над IBM 701 привела среди прочего к появлению одного из фундаментальных компьютерных алгоритмов — метода, называемого сегодня хешированием. Благодаря Сэмюэлу и его коллегам современные компьютерные программы могут быстро заносить данные в таблицы и столь же быстро извлекать их оттуда.

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

24 февраля 1956 г. программа Сэмюэла была впервые публично продемонстрирована в телевизионной передаче. Перед этим Томас Уотсон — старший, тогдашний президент IBM, организовал показ программы акционерам[566], [567].

В 1961 г. Эдвард Фейгенбаум и Джулиан Фельдман, работавшие над первым фундаментальным трудом, обобщавшим результаты исследований в области ИИ под названием «Компьютеры и мысль» (Computers and Thought), попросили Сэмюэла предоставить для сборника статью о методах, используемых в его программе. Одним из пожеланий было наличие приложения к статье, в котором обсуждалась бы лучшая из партий, сыгранных программой. Сэмюэл решил, что лучшим способом добыть такую партию будет организация матча с каким-либо сильным шашистом. В качестве соперника был выбран Роберт Нили[568]. IBM Research News утверждала, что Нили был «чемпионом Коннектикута по шашкам и одним из ведущих игроков страны»[569]. История с партиями программы Сэмюэла против Нили — один из увлекательных детективных эпизодов истории ИИ. Нили, по всей видимости, был лишь чемпионом Коннектикута среди незрячих игроков. Более того, в 1962 г. он завоевал титул чемпиона США среди незрячих игроков в турнире, организованном Американской шашечной федерацией (American Checkers Federation, ACF). Однако титул он получил по причине неявки других игроков — у Нили попросту не нашлось ни одного противника. Первый соперник появился у Нили только год спустя, в турнире 1964 г. (уже на звание чемпиона мира среди незрячих игроков!), когда Нили удалось отстоять титул в матче из четырёх партий[570]. В ряде источников утверждается также, что Нили был мастером, однако Джонатану Шефферу не удалось обнаружить подтверждений наличия у Нили этого звания.

Были ли основания утверждать, что Нили — «один из ведущих игроков страны»? Современный анализ партии, проигранной Нили программе Сэмюэла, показывает, что обе стороны совершали ошибки и, по мнению Шеффера, ошибки, допущенные Нили, были слишком грубы для «одного из ведущих игроков страны».

Программа выиграла, и это произвело эффект разорвавшейся бомбы. Интеллектуальное превосходство человека оспаривается электронными монстрами! Компьютеры появились лишь недавно, но уже превзошли человека в шашках! Скоро они превзойдут его и во всём остальном! Словом, для невежественной публики 1962 г. это стало крупным событием. Даже тот факт, что год спустя Нили выиграл у программы Сэмюэла в мачте из шести партий, победив в одной и завершив вничью пять остальных, уже не мог остановить распространение соответствующих настроений в обществе.

В 1966 г. Сэмюэл взял свою программу на матч за звание чемпиона мира между Уолтером Хеллманом (действующим чемпионом из США) и британским претендентом Дереком Олдбери. IBM выступила спонсором мероприятия при условии, что участники сыграют несколько партий с программой Сэмюэла. Было сыграно четыре игры против каждого соперника, и все они окончились поражением программы. Стало ясно, что ожидания были несколько завышенными.

Лишь спустя десятилетие появилась действительно сильная шашечная программа, она была написана в Университете Дьюка Эриком Дженсеном и Томом Траскоттом при поддержке доктора Алана Бирмана. Изначально программа называлась Duke[571], но затем была переименована в Paaslow. Новое имя программа получила в честь персонажа одного из скетчей Монти Пайтона — мистера Пасло (Paslow). Дженсен записал имя персонажа на слух, удвоив букву А, чтобы подчеркнуть правильный вариант произношения (в скетче имя произносится именно с долгим [а:]), подобно тому как это сделано в названии государственного образования Синт-Мартен (Sint Maarten). Спустя много лет Дженсен расстроился, когда обнаружил, что в сценарии скетча имя этого безголового персонажа было записано как Paslo, без буквы W на конце[572]. Впрочем, современные варианты[573] сценария, доступные в Сети, придерживаются варианта Paslow, что делает резонным вопрос о том, знает ли кто-то теперь, какой именно вариант правильный.

В качестве аппаратной платформы проекта разработчики использовали мощный для того времени компьютер IBM 370. Поскольку Дженсен и Траскотт не были опытными игроками в шашки, то при создании оценочной функции они ориентировались на работы Сэмюэла. В то же время у разработчиков был опыт создания одной из сильнейших шахматных программ своего времени, что, по всей видимости, оказалось в данном случае решающим — в 1977 г. программа Дженсена и Траскотта выиграла всухую матч из двух игр против программы Сэмюэла. Затем состоялся демонстрационный матч из пяти игр с гроссмейстером Элбертом Лаудером, в котором программа смогла выиграть одну партию, проиграла две и две оставшиеся завершились вничью. Причём в партии, выигранной программой, она в какой-то момент находилась в проигранной позиции, но затем Лаудер совершил ошибку и умудрился проиграть.

Хотя некоторые авторы и считали, что «люди не могли сравниться с Paaslow»[574], шашечные эксперты не разделяли столь безудержного энтузиазма, и дело было даже не в том, что Лаудер выиграл этот небольшой матч.

Известный эксперт в области шашек и многократный чемпион Иллинойса Ричард Фортман, комментируя игру Duke против программы Сэмюэла, писал: «Игра в окончании, особенно во второй игре, была ужасной. Должен сказать, что в настоящее время есть несколько тысяч средних игроков-второразрядников [class B players], которые могут без проблем победить любой компьютер». Уильям Гранжан, секретарь Американской шашечной федерации, прокомментировал качество игры так: «Мнение доктора Бирмана, что программа Duke близка к статусу чемпиона мира, — смехотворно».

Команда Университета Дьюка тем не менее была вдохновлена своими успехами и желала бросить вызов чемпиону мира — доктору Мариону Тинсли. Последний, заручившись поддержкой Американской шашечной федерации, предложил открытое пари на сумму 5000 долларов сроком на пять лет, утверждая, что победит любую шашечную программу[575]. К сожалению, авторам программы не удалось собрать необходимую сумму денег: 5000 долларов в 1977 г. были весьма внушительной суммой, эквивалентной более 25 000 долларов 2023 г.[576] Надежда привлечь внимание национального телевидения также провалилась. Программа Дженсена и Траскотта с этого момента не сыграла ни одной публичной партии, и работа над ней была прекращена[577].

Удивительно, но чрезмерно оптимистичное освещение успехов первых шашечных программ имело отрицательный эффект. Оптимизм Сэмюэла, многократно усиленный прессой, привёл к распространению заблуждения о том, что шашки были «решены», или по крайней мере о том, что компьютерные программы бесповоротно превзошли человека в этой игре. Отчасти здесь сыграла роль, по всей видимости, иллюзорная простота шашек — ведь по сравнению с шахматами в них всего два вида фигур, да и перемещаться они могут лишь по чёрным клеткам доски. Многие научные и научно-популярные книги и статьи упорно плодили заблуждения, и даже пари, объявленное Тинсли, не смогло переломить силу многократно растиражированного невежества.

Со времён Paaslow и до 1989 г. в области компьютерных шашек царило затишье[578], а когда в 1992 г. Джонатан Шеффер, встретившись на одной из конференций с членом Совета естественных наук и инженерии Канады (NSERC), основного агентства финансирования научных исследований в стране, поинтересовался, почему прошлогодний запрос на финансирование исследований ИИ с использованием шашек в качестве экспериментального испытательного стенда был отклонён, то получил ответ: «А разве Сэмюэл не решил эту игру ещё тридцать лет назад?»

3.4.3 Дебют программы Chinook Джонатана Шеффера

В 1989 г. в Лондоне под эгидой ICGA состоялась первая Компьютерная олимпиада. Она включала следующие дисциплины: шахматы, шашки, го на доске 9 × 9, го на доске 19 × 19, бридж, нарды, домино, «четыре в ряд», отелло (реверси), рэндзю, скрэббл, го-моку, китайские шахматы и авари. В соревновании по шашкам участвовало шесть программ, и первое место с отрывом в одно очко заняла канадская программа Chinook (по-русски читается как «шинук»), созданная командой под руководством Джонатана Шеффера. Вообще-то, изначально программа называлась The Beast («Зверь»), но перед Олимпиадой название было решено изменить на более нейтральное Chinook в честь юго-западного ветра (фёна) на восточных склонах Скалистых гор в Канаде. Дело в том, что в Великобритании шашки называются draughts, а draught или draft — это среди прочего «сквозняк» или «порыв ветра» (вообще говоря, у слова draft есть 63 значения, если верить словарю Google), поэтому для канадской шашечной программы хорошо подходило название тёплого канадского ветра. Также словом chinook в Канаде называют чавычу — рыбу семейства лососёвых. Норман Трелоар, один из членов команды Chinook, занимавшийся разработкой библиотеки дебютов и оценочной функцией, задавался перед Олимпиадой вопросом: будет ли Chinook играть как ветер или как рыба (рыбой — fish — иногда уничижительно называют слабых игроков)? К счастью для команды, Chinook играл скорее как ветер[579].



К моменту начала работы над Chinook Шеффер уже имел богатый опыт шахматного программирования: его шахматная программа Phoenix, или Sun Phoenix («Феникс», или «Солнечный Феникс»), разделила с тремя другими программами первое место (оказавшись, правда, на четвёртом месте по дополнительным показателям) на V чемпионате мира по шахматам среди компьютерных программ в 1986 г. в Кёльне. Chinook использовал богатый набор техник, разработанных к тому времени создателями шахматных программ.

Во-первых, в программе Шеффера применялись таблицы окончаний, содержавшие готовые ответы для окончаний с четырьмя и менее шашками на доске. Это во многом решало проблему плохой игры шашечных программ в окончаниях. Во-вторых, Chinook также использовал широко применяемую и в наши дни технику под названием «итеративное углубление» (iterative deepening). Её суть заключается в том, что программа сначала перебирает варианты на минимальную глубину, затем увеличивает глубину рассмотрения, выполняет повторный перебор и так далее, пока не закончится отведённое на перебор время. Благодаря использованию хеш-таблицы для хранения результатов анализа уже рассмотренных узлов дерева (так называемая таблица перестановок или перестановок/опровержений — transposition/refutation table), предыдущие шаги перебора не пропадают напрасно. Результаты анализа, полученные на предыдущей итерации, используются для более эффективного упорядочения ходов, что делает альфа-бета-отсечения более эффективными. Кроме того, таблица перестановок эффективно решает собственно проблему перестановок: если разные последовательности ходов приводят к одной и той же позиции, то повторного изучения вариантов не будет.

Заметим, что более качественное упорядочивание ходов при переборе позволяет заменить классические альфа-бета-отсечения на так называемый перебор с единичным окном, то есть перебор, при котором beta = alpha + 1. Идея этого подхода заключается в том, что если перебор для первого рассматриваемого хода в узле дерева перебора вернул оценку, не превышающую верхнюю границу (т. е. значение параметра beta), то, скорее всего, остальные ходы будут не лучше первого и для проверки этой гипотезы для всех последующих ходов в данном узле вместо перебора с полным окном (т. е. с нижней границей, равной alpha, и верхней границей, равной beta) мы будем использовать перебор с единичным окном (с v до v + 1, где v — оценка для первого хода). Если при переборе с таким окном мы для очередного хода получили оценку меньше или равную v, то для данного хода нет необходимости перебора с полным окном, потому что его результат не будет лучше v (а может оказаться только хуже или равным ему), то есть данный ход необходимо отвергнуть. И только если оценка для какого-либо из ходов превысит v, тогда этот ход оказывается лучше первого и мы повторяем для него перебор, но уже с расширенным окном, чтобы узнать его точную оценку. Такой подход при условии хороших методов упорядочивания ходов-кандидатов позволяет добиться дополнительного уменьшения количества перебираемых позиций. Существует несколько алгоритмов, реализующих данный подход, наиболее широко известные — «поиск основного варианта» (Principal Variation Search, PVS) и NegaScout.

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

На конец 1989 г. программа Шеффера победила в компьютерной олимпиаде (четыре победы и одна ничья), сыграла три партии по телефону с бывшим чемпионом Канады 1971 и 1972 г. Эдом Томпсоном (две победы Chinook и ничья), из шести партий с одним из сильнейших игроков Великобритании Ричардом Паском пять закончились вничью и одна поражением программы, а в матче из четырёх партий с Дереком Олдбери, в своё время обыгравшим со счётом 4 : 0 программу Сэмюэла, Chinook победил, завершив две партии победой и две ничьей.

Однако в определённый момент позиция Олдбери в одной из проигранных партий была выигрышной, а во второй британский чемпион явно экспериментировал. Олдбери, сам к тому времени увлёкшийся программированием и разработавший собственную шашечную программу Checker Hustler, показал Шефферу некоторые недостатки его программы.

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

Им владел «ужасный Тинсли» — самый опасный соперник.

Американский математик и шашист Марион Тинсли был сильнейшим игроком мира в английские шашки на протяжении тридцати лет. Тинсли ни разу в жизни не проигрывал матч за первенство мира и с 1958 г. проиграл в официальных турнирах всего три партии.

В середине 1990 г. Шеффер задался вопросом: насколько хорош Тинсли на самом деле? Чемпионы мира по шахматам тоже очень хороши в игре против других людей, но всё же они периодически проигрывают партии другим игрокам, а последующий анализ турнирных партий нередко выявляет ошибки, допущенные в пылу сражения. Союзником чемпиона всегда является его имя: противники оказываются психологически подавлены репутацией чемпиона. Из-за волнения они не верят в то, что чемпион мог допустить просчёт, отказываются от решительных действий, ведущих к победе. Сильной стороной машины, напротив, является её бесстрастность: она ничего не знает о своём оппоненте, свободна от страха, спокойно действует даже в, казалось бы, безнадёжных позициях. В итоге нередко выясняется, что эти позиции в действительности не являются такими уж безнадёжными. Действительно ли партии Тинсли так идеальны, пройдут ли они скрупулёзную проверку машинным интеллектом?

Найти игры Тинсли было легко[580]. Книга «Шашки по-тинслевски» (Checkers the Tinsley Way) содержала около семисот игр Тинсли с 1945 по 1981 г.[581] Конечно, игр за последнее десятилетие не хватало, но Шеффер предположил, что в таком возрасте (а Тинсли в 1981 г. исполнилось 54 года) стиль игры вряд ли мог радикально измениться.

Шеффер взял 732 партии из книги, разделил их между четырьмя компьютерами и запрограммировал Chinook осуществлять анализ позиций из этих партий, при этом игнорировались проигрышные ходы в играх, которые Тинсли проиграл, а также первые десять ходов партии, поскольку выбор дебютов был во многом вопросом индивидуального вкуса. Для каждой позиции Chinook на основе глубокого перебора должен был выбрать лучший ход. Если ход совпадал с решением Тинсли, то Chinook переходил к следующей позиции, если нет — производился перебор для хода, сделанного Тинсли, и оценки обоих ходов сохранялись в файле. Обычно значения оценок были близки. Шеффера и его команду интересовали ситуации, в которых Тинсли совершал ход, по оценке сильно уступающий ходу, предложенному Chinook. Иначе говоря, позиции, в которых программа считала, что Тинсли допустил серьёзный просчёт.

В результате анализа Шефферу удалось найти 17 позиций, в которых ход, предложенный Chinook, по оценке превосходил ход, сделанный в партии Тинсли, хотя бы на 100 единиц, то есть на «стоимость» одной шашки. Однако анализ уже первых из них показал, что в число этих ходов входят неоптимальные выигрывающие ходы. То есть Chinook придумал, как Тинсли мог бы выиграть партии немного быстрее, но конечный результат от этого бы не изменился. Расстроенный Шеффер изменил значение разницы оценок до 50 единиц, но и это радикально не поменяло картину. Удалось найти всего две позиции, в которых Тинсли вроде бы действительно ошибался. Шеффер заставил программу проанализировать эти позиции более глубоко — отведя на каждую из них целую ночь вычислений. В первой позиции ошибка не подтвердилась: позиция, казавшаяся проигранной, оказалась ничейной. Но в последней позиции ночь анализа не изменила оценку программы: она считала, что Тинсли ошибался. Итак, Тинсли был смертным — он был способен допустить ошибки, точнее — одну ошибку.

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

Но хотя Шеффер и думал уже о возможности победы над самим Тинсли, вначале Chinook должен был явно продемонстрировать, что превосходит других возможных претендентов на титул.

С 13 по 18 августа 1990 г. в городе Тупело (штат Миссисипи) должен был состояться чемпионат США по шашкам.

Шеффер обратился в Американскую шашечную федерацию с просьбой разрешить его программе участвовать в чемпионате при условии, что он не будет претендовать на призовой фонд в случае победы. Шеффер получил соответствующее разрешение, а также разрешение выступить в качестве «разогрева» на чемпионате штата Миссисипи, который предшествовал национальному и должен был пройти в том же отеле в Тупело двумя днями раньше.

Чемпионат Миссисипи завершился победой Chinook — восемь побед, шесть ничейных партий и ни одного поражения. Впереди был чемпионат США, а почти одновременно с ним, с 15 по 21 августа 1990 г., в Лондоне проводилась II Компьютерная олимпиада. Спортсменам-людям в подобных случаях приходится выбирать, ведь человек не может одновременно находиться в двух местах. Для компьютерной программы это не помеха. Пока Шеффер и Трелоар в качестве операторов Chinook находились на турнире в Тупело, за океаном копия программы участвовала в Компьютерной олимпиаде под управлением другого члена команды — Пола Лю[583].

На Компьютерной олимпиаде в Лондоне у Chinook было всего два противника: Colossus, программа, созданная Мартином Брайантом, и Checker-Mate Эдриана Миллетта и Дерека Олдбери.

Colossus — шашечная программа Брайанта, в создании которой он опирался на опыт в работе с одноимённой шахматной программой, — была сильным противником: незадолго до того, как Chinook победил в Миссисипи, она одержала победу на чемпионате Западной Англии (23–24 июня 1990 г.).

Миллетт и Олдбери, выступавшие на предыдущей, 1989-го, Олимпиаде каждый со своей программой (Sage Draughts и Checker Hustler) и занявшие соответственно второе и первое места с конца турнирной таблицы[584], для выступления в 1990 г. решили объединить свои сильные стороны — высококлассную шашечную экспертизу Олдбери с опытом Миллетта в области программирования. Олдбери приготовил для Checker-Mate продвинутую дебютную библиотеку, заложив в неё ряд ловушек — дебютных вариантов, приводивших игру к позициям, в которых программе противника было бы трудно найти правильный ход в условиях ограниченного времени. В одну из таких ловушек и попал Chinook, однако крышка мышеловки не захлопнулась: вариант в дебютной библиотеке Checker-Mate заканчивался слишком рано — и в ответ на ошибку Chinook его противник не смог ответить правильным ходом. В итоге из-за ошибки в алгоритме распределения времени Checker-Mate просрочил время, и партия завершилась победой Chinook. Казалось бы, угроза миновала, тучи рассеялись и на небе снова засияло солнце. Это действительно было бы так, если бы противниками программы Шеффера на турнире были новички, а не закалённые турнирными соревнованиями ветераны компьютерных шахматных и шашечных баталий. Быстро сообразив, что именно произошло в партии Checker-Mate с Chinook, автор программы Colossus быстро добавил в свою дебютную библиотеку ту же самую ловушку, дополнив дебютную линию ходом, который не удалось найти программе Миллетта и Олдбери, и в партии с Colossus Chinook повторно заглотил наживку, что обернулось для программы Шеффера «баранкой» в турнирной таблице[585]. Пол Лю, в отличие от Шеффера и Трелоара, не обладал должным опытом, чтобы после партии с Checker-Mate принять необходимые контрмеры. Турнирное золото ушло в копилку Брайанта, в то время как команде Chinook пришлось довольствоваться вторым местом[586].

Интересно, что и на чемпионате США в Тупело у Шеффера неожиданно появился компьютерный оппонент. Американская шашечная федерация вполне резонно решила, что если в матче разрешено участвовать Chinook, то на аналогичных условиях в нём могут принять участие и другие программы. Этим не преминул воспользоваться Гил Доджен, автор программы Checkers Experimental[587]. Предыдущая версия его программы — Checkers! — участвовала в Компьютерной олимпиаде 1989-го и заняла второе место, отстав от Chinook всего на одно очко[588]. После олимпиады Шеффер и Доджен обменялись исходными кодами своих программ. Правда, за время, прошедшее с олимпиады, команде Шеффера удалось создать пятифигурные таблицы окончаний, но всё же кто знал, как много пользы автор Checkers! смог извлечь из изучения Chinook за прошедший год. Хотя Доджен и использовал в качестве аппаратной платформы для своей программы компьютер MIPS MI20, в полтора раза более медленный, чем IBM RS/6000, на котором работал Chinook[589], это могло и не быть решающим фактором. Все прекрасно помнили урок[590], который преподал в 1989 г. Ричард Лэнг со своей шахматной программой Mephisto, одержав победу над шестипроцессорным монстром Deep Thought (прародителем Deep Blue) на Северо-Американском чемпионате по шахматам среди компьютерных программ. А ведь Mephisto использовала скромный даже по тем временам процессор Motorola 68030 с тактовой частотой 36 МГц[591]. Кроме того, гроссмейстеры Лео Левитт и Эд Маркузик жили недалеко от Доджена и могли помочь ему с профессиональной экспертизой в области шашек. Словом, Гил Доджен со своей программой был серьёзным противником, которого нельзя было недооценивать.

Но вернёмся к чемпионату США в Тупело. Он стал серьёзным испытанием для Chinook, которое программа успешно преодолела, — не проиграв ни одной партии, Chinook занял второе место, уступив лишь действующему чемпиону мира Мариону Тинсли. Программа Checkers Experimental Гила Доджена заняла восьмое место[592].

Напряжение в определённые моменты турнира было очень велико. Вот как описывает Шеффер одну из партий — против гроссмейстера, будущего чемпиона мира Рональда Кинга:

Как обычно, я спокойно сидел за доской, читая книгу, время от времени поглядывая на экран компьютера. С покерфейсом, как обычно, — я старался не выдавать волнение, которое ощущал. Но поскольку мы выигрывали, мне было трудно сосредоточиться на книге, и я стал чаще поглядывать на экран. Кинг был сосредоточен, лениво барабаня пальцами по столу, не подавая никаких признаков того, понял ли он, что проигрывал, или нет. Я прочитал страницу и снова поднял глаза. Он по-прежнему был сосредоточен и всё ещё барабанил пальцами. На этот раз пальцы, казалось, переместились на доску. Ещё одной страницей позже я увидел его пальцы, танцующие вперёд-назад над шашкой Chinook. Я притворился, что читаю, но подглядывал за ним уголком глаза. Я с недоверием наблюдал, как эти пальцы медленно толкают шашку к краю доски и наконец — через край. Постепенно шашка была скинута в кучу шашек, ранее снятых с доски. В этот момент я вежливо протянул руку, поднял шашку и поставил её обратно на доску. Он не выказал никакой реакции. Неужели он действительно думал, что компьютер «забудет» о шашке?



По возвращении с соревнований Шеффер попытался связаться с Артуром Сэмюэлом. Он был уверен, что тот будет рад услышать об успехе Chinook, воплощении в реальность своей сорокалетней мечты. Но в ответ получил печальное известие: профессор Артур Сэмюэл умер 29 июля 1990 г. от осложнений, вызванных болезнью Паркинсона[593].

Артур Сэмюэл оставил в истории компьютерных технологий значительный след, не ограничивающийся одними только компьютерными шашками. Например, он, совместно с Дональдом Кнутом, работал над популярной в научной среде системой компьютерной вёрстки TeX, внеся в её создание весьма существенный вклад, несмотря на то что в те годы ему уже перевалило за 80 лет[594]. Своими смелыми попытками решить задачу создания шашечного ИИ в условиях крайне ограниченных аппаратных ресурсов 1950–1970-х гг. Сэмюэл вдохновил многих молодых исследователей, и, хотя его работы и вызвали некоторое головокружение от успехов, даже это стало в конечном счёте полезным уроком для специалистов.

3.4.4 Первый матч против чемпиона мира

В 1991 г. Американская шашечная федерация и Английская ассоциация шашек (English Draughts Association, EDA) решили не санкционировать матч Chinook — Тинсли на том основании, что компьютеры не могут претендовать на звание чемпиона мира по шашкам. Они постановили, что Тинсли будет защищать свой титул против действующего английского чемпиона Дерека Олдбери. Тинсли, однако, хотел сыграть с Chinook — его привлекал тот факт, что, в то время как люди в партиях с чемпионом стремятся к ничьей, машина практикует агрессивный, атакующий стиль. Он не смог убедить ACF и EDA принять Chinook в качестве претендента в матче за титул чемпиона мира и заявил, что отказывается от титула в пользу Олдбери. Обе организации пытались убедить Тинсли передумать, но он твёрдо стоял на своём. В августе ему было присвоено звание «Почётный чемпион мира» (World Champion Emeritus) в знак признания особых заслуг перед миром шашек.

Никто не сомневался, что Тинсли по-прежнему остаётся лучшим игроком среди людей. Таким образом, любой матч между ним и Chinook будет де-факто матчем за звание лучшего игрока планеты. Понимая это, ACF в конечном итоге решила санкционировать матч под вывеской «Первого чемпионата мира по шашкам человек против машины» (First Man versus Machine World Checkers/Draughts Championship).

Матч был организован в августе 1992 г. в отеле Park Lane в Лондоне, там же, где в 1986 г. проходил матч на первенство мира по шахматам между Гарри Каспаровым и Анатолием Карповым. Призовой фонд составлял 10 000 долларов, которые должны были быть разделены в соотношении 60 : 40 в пользу победителя либо 50 : 50 в случае ничьей. Матч состоял из сорока партий, что являлось сложившимся стандартом для чемпионских матчей между людьми[595], [596].

За два года, предшествовавших матчу, Chinook успел сыграть несколько товарищеских матчей с ведущими шашистами, в том числе и с самим Тинсли: товарищеский матч 1990 г. завершился победой Тинсли, который выиграл одну партию при 13 ничьих. В 1991 г. Chinook также уступил в матче Дону Лафферти, но тоже с минимальным разрывом — 2 : 3 при 11 ничьих. В 1992 г. состоялись матчи с учителем Тинсли Асой Лонгом — ничья 1 : 1 при 18 ничьих, а также с известным экспертом в области шашек Джимом Лоем — 3 : 0 при одной ничьей. Chinook также выступил на Открытом чемпионате южных штатов (Southern States Open), где занял первое место, и на Национальном чемпионате США, где разделил 2–6-е места (впрочем, оказавшись на 6-м месте по дополнительным показателям) с тремя гроссмейстерами и программой Гила Доджена.

Всё выглядело так, как будто с 1990 по 1992 г. прогресс в силе игры программы не был существенным. Конечно, противники Chinook были экстраординарными. В одной из партий товарищеского матча с Тинсли чемпион так прокомментировал десятый ход программы: «Вы пожалеете об этом!» [You’re going to regret that!] Программа смогла увидеть поражение лишь на 33-м ходу, анализируя позицию на 19 полуходов вперёд. Вряд ли Тинсли на десятом ходу рассчитал победный вариант на глубину в 65 полуходов, однако понимание тонкостей позиции позволяло ему видеть победу задолго до материализации преимущества.

При этом технически с 1990 г. Chinook проделал долгий путь в своём развитии. Программа получила возможность осуществлять параллельный перебор на многопроцессорных компьютерах. Для матча с Тинсли компания-спонсор Silicon Graphics предоставила восьмипроцессорную машину SGI 4D/480. К началу матча с Тинсли Chinook обладал полным набором семишашечных таблиц окончаний и 43% восьмишашечных. Было внесено множество доработок в оценочную функцию[597].

Но быстрое развитие порождает болезни роста. Недостаточно проверенные новации зачастую опаснее, чем отсутствие новшеств. Отдельные моменты из воспоминаний Шеффера сегодня способны напугать программистов почище иного триллера. Как вам, например, внесение изменений в оценочную функцию программы прямо во время матча? Да ещё и добавление новых элементов оценки с весами, выбранными на глазок? А выводы, сделанные на основе всего лишь сотни партий между двумя версиями программы, да ещё и завершившихся с разрывом всего в несколько очков? Сегодня подобное трудно представить: десятки тысяч проверочных игр, тонкая настройка каждого параметра при помощи сотен тысяч партий, проверки проверок, учёт и контроль. Мир программирования игрового ИИ в 1990-е с позиции сегодняшних практик выглядит как мир Дикого Запада.

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

Но вернёмся к противостоянию с чемпионом мира.

Итак, матч с Тинсли начался. Четыре первые партии окончились вничью. Пятую Chinook проиграл — причиной стал ошибочный вариант в дебютной библиотеке. Он был позаимствован из книги «Основы игры в шашки» (Basic Checkers), и хотя на момент матча Тинсли с Chinook уже было известно, что соответствующая позиция оценивается неправильно, однако команда Шеффера об этом не знала.

Но в восьмой партии матча программе удалось впервые выиграть у Тинсли, тем самым доказав на практике, что такое возможно! В 14-й партии Chinook смог выиграть ещё раз и тем самым повести в счёте.

Однако с 18-й партии Chinook стали преследовать неприятности. Началось всё с ошибки охранника отеля, который вместо того, чтобы в конце дня выключить свет и включить кондиционер в комнате, где находилась машина, сделал всё ровным счётом наоборот — выключил кондиционер и включил свет. На следующий день в 18-й партии программа зависла, и команде Chinook пришлось признать поражение. Было ли это зависание результатом перегрева машины или виной были дефекты при программировании многопроцессорной версии? Это так и не удалось с точностью установить, хотя позже в программе обнаружили ряд ошибок, и как минимум одна из них теоретически могла привести к зависанию.

В 22-й партии проблема повторилась, и Шефферу пришлось перейти на более медленный запасной компьютер (сама партия закончилась вничью). Тинсли выиграл 25-ю партию (программе не хватило примерно двух минут для того, чтобы отказаться от ошибочного хода и выбрать правильный) и захватил лидерство в матче. Длинная серия ничьих продолжалась до 39-й партии. Чтобы сохранить лидерство, Тинсли нужно было не проиграть, и более осторожная игра позволяла ему увеличить шансы на победу в матче. После 28-й партии Шеффер и его команда вносили в программу изменения, стараясь обострить игру, однако это не принесло успеха. Chinook потерпел ещё одно поражение в 39-й партии, и тем самым матч завершился победой Тинсли — из 39 сыгранных партий Тинсли выиграл четыре, Chinook — две, а остальные 33 завершились вничью.

Несмотря на поражение, Шеффер не собирался сдаваться. И что было не менее важно — Тинсли тоже не считал борьбу завершённой и поддержал идею организации нового матча, который, однако, состоялся только в 1994 г. из-за организационных проблем.

До этого, в 1993 г., Chinook поучаствовал в двух матчах. Первый, против Дона Лафферти, вновь закончился поражением программы (три поражения, одна победа и 14 ничьих). Шеффер героически сражался с ошибками — казалось, они были повсюду: в новом коде для различения «лёгких» и «трудных» ничьих, в новых восьмишашечных таблицах окончаний, в дебютной библиотеке.

Второй матч 1993 г. был не менее трудным: Chinook должен был встретиться с программой Colossus Мартина Брайанта, которая нанесла ему поражение на Компьютерной олимпиаде 1990-го. Дело в том, что критики Chinook нередко указывали на то, что программа Шеффера, возможно, была не самой сильной шашечной программой. В конце концов, если Chinook уступил программе Colossus в 1990 г., быть может, именно Colossus должен был играть матч с Тинсли? Требовалось поскорее разрешить эти сомнения[598].

Матч, организованный в канадском Эдмонтоне, завершился уверенной победой Chinook — девять побед, два поражения и 43 ничьих. Да-да, в мире спорта такая разница в очках считается «уверенной победой». Если принять вероятность ничьей в партии между Chinook и Colossus за 43/54, то получается, что при абсолютно равной силе игры обеих программ вероятность того, что матч из 54 партий между ними закончится с разницей в семь очков и более составляет около 5%, что, в общем-то, не так уж мало. Впрочем, с 1990 г. это действительно был самый надёжный турнирный результат. Основываясь на результатах игр Chinook против Тинсли, совершенно нельзя было быть уверенным в том, что Тинсли играет сильнее программы. Даже результаты турниров из нескольких десятков партий во многом зависят от случая — это понимали и Шеффер и Тинсли.

По итогам матча Шеффер и Брайант расстались друзьями. Шеффер передал Брайанту шестишашечные таблицы окончаний, а Брайант передал Шефферу дебютную библиотеку Colossus, которая примерно в восемь раз превосходила по размеру библиотеку Chinook. Позже Брайант стал постоянным помощником Шеффера в работе над программой.

Следующий, 1994-й год для команды Шеффера тоже был богат событиями. Chinook без единого поражения выиграл матч против Дерека Олдбери, который был объявлен чемпионом мира после ухода Тинсли: три победы и девять ничьих (к сожалению, этот матч стал для Олдбери последним в его жизни, он скончался 9 июля 1994 г.). Затем последовал матч с Доном Лафферти, завершившийся миром: 18 ничьих при отсутствии результативных партий. Два выступления в турнирах также завершились благоприятно: первое место в Открытом чемпионате южных штатов[599] и делёж с Лафферти и Тинсли 1–3-го мест в Национальном чемпионате США (по дополнительным характеристикам ниже Лафферти, но выше Тинсли!)[600].

3.4.5 Решающий матч

Долгожданный матч между Тинсли и Chinook начался 15 августа 1994 г. в помещении Компьютерного музея в Бостоне, при этом стороны договорились уменьшить число партий в матче до тридцати.

На открытии присутствовали Дэвид Леви и Реймонд Кин — гроссмейстер по шахматам и известный шахматный автор и организатор, Тони Бьюзен — создатель популярной в наши дни техники «интеллект-карт» (mind maps), ряд знаменитых специалистов в области компьютерных наук, включая Марвина Минского — одного из отцов искусственного интеллекта, а также множество журналистов.

Чтобы воочию понаблюдать за игрой, на матч приехали известные шашисты, в частности гроссмейстер Норман Векслер и мастер Джулс Леопольд. Леопольд играл с программой Сэмюэла в 1957 г. и утверждал, что был первым мастером, сыгравшим в шашки против компьютера, — тогда он выиграл партию без труда. По словам Джулса, доктор Сэмюэл спросил его: «Как вы думаете, компьютер когда-нибудь сможет победить вас?» Джулс ответил: «Нет, никогда». Тинсли рассказал Шефферу, что однажды Джулс позвонил ему посреди ночи. «Марион, — взволнованно сказал он, — знаете ли вы, что Tinsley является анаграммой Yeltsin?» Сказав эти слова, он повесил трубку.

Подготовка профессиональных игроков в шашки, как и в случае шахматистов, включает в себя создание дебютных заготовок — специально разработанных вариантов, целью которых является возникновение на доске заранее тщательно проанализированной позиции в надежде на то, что сопернику в турнирной спешке не хватит времени, чтобы отыскать правильные ходы. Шеффер и Брайант потратили много времени, чтобы удивить Тинсли, заботливо приберегая для матча найденные дебютные новинки.

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

Во второй день должны были состояться четыре игры.

После двух лёгких ничьих, во время перерыва, Тинсли спросил Шеффера о матче с Олдбери. Он знал, что программа одержала победу, но не знал окончательного счёта. Шеффер сообщил Тинсли счёт. Немного помолчав, Тинсли сказал с шутливой улыбкой: «Chinook играет с Олдбери. Chinook побеждает Олдбери. Олдбери умирает». Тинсли сделал драматическую паузу и продолжил: «Должно быть, он умер от шинукита [Chinookitis]!»

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

Пятая игра снова закончилась ничьей. В шестой партии Тинсли уклонился от ожидаемого варианта, где его ждал дебютный сюрприз, заготовленный Chinook, сказав: «Если бы я не устал, я бы сыграл a7−b6 вместо e7−f6», и в итоге игра завершилась ещё одной ничьей. Тинсли выглядел чуть более худым, чем обычно, и немного постаревшим.

Шеффер так описал произошедшие на следующий день события: «За несколько минут до официального времени начала седьмой партии, Марион прибывает в зал турнира. Он прогуливается своей обычной медленной размеренной походкой, одетый в тот же зелёный костюм, который, кажется, носит всегда. Подняв глаза от клавиатуры, я вижу его улыбку — он обменивается с кем-то приветствиями. Затем он подходит ко мне и садится в своё кресло на противоположной от меня стороне шахматной доски. <…> Тинсли садится, его голова опущена. Он приподнимает голову, чтобы посмотреть в глаза, но останавливается. Вместо этого, оставляя очки направленными вниз, в сторону игровой доски, он двигает вверх зрачки — до тех пор, пока наши взгляды наконец не пересекаются. Я бодро говорю:Доброе утро, Марион, и он без колебаний отвечает:Позвольте мне предложить немыслимое. Что, если Дон Лафферти закончит матч за меня?»

Тинсли был вынужден прервать матч из-за тяжёлых болей в области желудка, которые изматывали его и не давали спать по ночам. Проведённые быстро анализы подтвердили самые худшие опасения — у Тинсли обнаружили рак поджелудочной железы. Он был вынужден сдать матч и уступить титул Chinook.

Тинсли боролся с болезнью ещё полгода и ушёл из жизни 3 апреля 1995 г. — так и не побеждённый за игровой доской.

Место Тинсли в Бостоне занял Дон Лафферти, с которым был организован матч из 20 партий. Он сыграл 18 партий вничью, выиграл одну партию (воспользовавшись дебютной заготовкой, созданной Тинсли) и одну проиграл, что сделало результат матча ничейным[601].

3.4.6 Нахождение слабого решения шашек

Ситуация, возникшая после сдачи матча Марионом Тинсли, была крайне напряжённой. Многие, в том числе Английская ассоциация шашек, не признавали чемпионство Chinook — ведь титул был завоёван не за игровой доской. Всё это вкупе с враждебным отношением многих людей к машинам вносило вклад в гнетущую атмосферу.

Обстоятельства осложнялись тем, что действующим чемпионом мира среди людей после смерти Олдбери стал Рональд Кинг, который также не завоевал чемпионства за игровой доской. Пресса недалёкими статьями об эпическом противостоянии Человека и Машины увеличивала градус враждебности. Некоторые ограниченные умы просто не могли вместить мысль, что, кто бы ни победил за шашечной доской — шашист или шашечная программа, — результат всё равно является триумфом человеческого гения. Чтобы распутать клубок противоречий, потребовались незаурядные организационные и дипломатические усилия.

В 1995 г. Британская федерация шашек (British Draughts Federation, BDF) — недавно созданная организация, которая, в отличие от EDF, признавала за машинами право на завоевание чемпионского титула, — и ACF организовали новый матч Chinook против Лафферти, в котором программа победила в одной партии при 31 ничьей. В 1996 г. Chinook с большим отрывом выиграл у чемпиона мира в игре по переписке Джерри Чайлдерса — восемь побед и 12 ничьих, традиционно победил в Открытом чемпионате южных штатов, а затем — в Американском национальном чемпионате, оторвавшись от Рональда Кинга на целых восемь очков[602]. Матч из двух партий с Рональдом Кингом годом позже (одна победа программы и одна ничья) стал последним публичным выступлением Chinook. С 1995 г. программа не потерпела ни одного поражения в турнирах[603].

В 1800 г. в книге Джошуа Стёрджеса[604] «Руководство по игре в шашки» (Guide to the Game of Draughts) была опубликована позиция, в отношении которой утверждалось, что при идеальной игре обеих сторон в ней побеждают белые[605]. Позиция вызвала обширные дебаты среди шашечных экспертов, которые не утихали в течение ста лет, и лишь публикация 1900 г. окончательно убедила общество в том, что белые действительно побеждают. В честь многолетнего спора этюд получил название «столетней позиции». В 1997 г. Лафферти попросил Шеффера проверить выводы экспертов. В течение нескольких секунд Chinook определил, что позиция в действительности является ничейной. Взглянув на решение, Лафферти обнаружил, что общепринятое доказательство содержало ошибку на третьем ходу, пропущенную десятками экспертов-шашистов. С этого момента этюд Стёрджеса более известен под именем «200-летняя задача»[606] или даже, что более точно, «197-летняя позиция»[607].

Победа над Тинсли была навязчивой идеей Шеффера на протяжении многих лет. Работая с маниакальным упорством, он и члены его команды достигли, казалось, невозможного — и лишь для того, чтобы надежда в последний момент ускользнула из их рук. Программа была близка к совершенству: после выхода из длинных дебютных вариантов глубокий перебор быстро достигал позиций из восьмишашечных таблиц окончаний. Однако насколько можно было полагаться на эти дебютные варианты? Насколько хороши были те немногие ходы, в которых машина не успела за выделенное ей время получить точную оценку позиции? Более поздний опыт программ для игры авари (разновидности игры оваре, созданной в 1991 г.[608]) показал, что разница между сверхчеловеческой и идеальной игрой может быть весьма внушительна. После того как Джон Ромейн и Генри Бал полностью решили игру авари, они использовали построенные таблицы для проверки того, насколько хорошо играли программы Softwari и Marvin на Компьютерной олимпиаде 2000-го. Обе программы выполняли перебор примерно на 20 полуходов и использовали таблицы окончаний для 34 семян (фишки для игры в оваре обычно называют семенами, поскольку традиционно для игры использовались семена цезальпинии). Анализ показал, что программа Softwari выбирала идеальный ход лишь в 87% случаев, а победитель матча Marvin и того хуже — в 82% случаев. Много раз ошибки приводили к изменению ожидаемого победителя игры, но программы не осознавали этого[609]. Однако при этом обе программы играли в авари гораздо сильнее людей.

Словом, работа команды Шеффера не была завершена — ведь шашки ещё не были решены! В 2003 г. Шефферу и его коллегам удалось создать 10-шашечные таблицы окончаний для случая 5 на 5 шашек[610], а в 2005 г. — полные 10-шашечные таблицы, а также таблицы с неполной информацией для 12-шашечных окончаний (в этих таблицах точные оценки были известны лишь для некоторой части позиций)[611].

По расчётам Шеффера, для сильного решения шашек (т. е. создания полных 24‑шашечных таблиц) необходимо хранилище данных объёмом около 1000 петабайт. В 2008 г. стоимость хранилища ёмкостью 1 петабайт составляла порядка миллиона долларов (сегодня такое же хранилище стоило бы примерно в 10–15 раз меньше), что, разумеется, не укладывалось в бюджет исследовательского гранта[612]. Однако для того, чтобы получить слабое решение, достаточно было выполнить перебор лишь для некоторых поддеревьев игры таким образом, чтобы полученная в корне дерева оценка была основана только на оценке позиций, имевших точные оценки, то есть на табличных позициях или финальных позициях игры.

В таком ограниченном виде задача оказалась разрешимой, и в 2007 г. необходимые расчёты были завершены. Команде Шеффера удалось доказать, что при правильных действиях обеих сторон шашки являются ничейной игрой. Результаты были опубликованы в журнале Science[613] и стали одним из самых крупных научных результатов, полученных в 2007 г.[614]

Построенное системой Шеффера дерево доказательств показывает идеальные линии игры, необходимые для достижения ничьей (т. е., если одна из сторон допускает ошибку, ведущую к проигрышу, дерево не обязательно покажет, как именно можно выиграть). Также Шеффер сохранил только верхнюю часть дерева игры, включающую около 10 млн позиций. Так было сделано, потому что сохранение полного дерева доказательств, в котором каждый терминальный узел соответствует позиции из базы данных окончаний, потребовало бы многих десятков терабайт дискового пространства, которых у Шеффера не было.

Если пользователь системы запрашивает доказательство для одного из терминальных узлов этого урезанного дерева, то программа осуществляет перебор вариантов для поиска решения (в среднем такой перебор предполагает рассмотрение также около 10 млн позиций; в 2007 г. использованному Шеффером компьютеру требовалось на это в среднем около двух минут).

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

Самый длинный вариант, содержащийся в усечённом дереве решений системы Шеффера, содержит 154 полухода, а позиция, возникающая в результате этой последовательности ходов, требует анализа ещё более чем на 20 полуходов, чтобы достичь базы данных окончаний. При этом некоторые позиции в этой базе, достигнутые в результате такого анализа, предполагают продолжение игры в течение ещё пары сотен полуходов. Этот пример подтверждает сложность игры как для компьютеров, так и для людей.


Рис. 63. Схема поиска решений для игры в шашки в хранилище позиций. По вертикали указано количество шашек (и дамок) на доске, по горизонтали — число позиций (логарифмическая шкала). Заштрихованная область — часть доказательства, покрытая эндшпильными таблицами (все позиции с десятью шашками или менее). Внутренняя овальная область — проанализированная для доказательства часть пространства перебора (без недостижимых позиций и без ненужных для доказательства позиций). Кружки обозначают позиции с более чем десятью шашками, для которых исход игры найден и подтверждён. Пунктирная линия показывает границу между сохранённой и несохранённой на диске частями дерева доказательств (при необходимости последняя вычисляется). Сплошная чёрная линия показывает «лучшую» последовательность ходов

Проект Шеффера стал триумфом переборных методов ИИ и массивных параллельных вычислений и внёс существенный вклад в оба этих направления. Аналогичные подходы в наши дни используются, в частности, при решении задач из области биоинформатики — там, где ограниченность наших знаний сочетается с большой комбинаторной сложностью исследуемых систем. Решение шашек раздвинуло границы возможного для алгоритмов, основанных на интенсивном переборе[615].

Поставлена ли таким образом точка в области компьютерных шашек? Вопрос интересный, ведь сильного решения игры до сих пор не существует. Быть может, однажды, благодаря появлению более дешёвых и объёмных хранилищ данных, а также новых продвинутых алгоритмов сжатия, эта задача также будет решена. В конце концов, трудно поверить, что такой человек, как Джонатан Шеффер, может окончательно успокоиться.

3.5 Шахматы

Мир я сравнил бы с шахматной доской:

То день, то ночь. А пешки? Мы с тобой.

Подвигают, притиснут и — побили.

И в тёмный ящик сунут на покой.

Омар Хайям

3.5.1 Шахматные автоматы и механизмы

Машина, играющая в шахматы, — этот образ давно занял в массовой культуре место одного из наиболее узнаваемых символов искусственного интеллекта. Многие книги и статьи, посвящённые искусственному интеллекту вообще или компьютерным шахматам в частности, не обходятся без изображения антропоморфного автоматона в турецком тюрбане, восседающего за шахматной доской. Интернет-портал, созданный компанией Amazon для разметки людьми массивов данных для задач машинного обучения, получил название Amazon Mechanical Turk. В честь того же «турка» получили имена сразу несколько шахматных программ, например программа Mr. Turk Гари Буса и Джеймса Мундстока из Миннесотского университета, The Turk турецкого программиста Якупа Ипека, шахматный робот Raspberry Turk Джоуи Мейера и шахматная программа The Turk, созданная Ингви Бьёрнссоном и Андреасом Юнгхансом — учениками Джонатана Шеффера, того самого, под руководством которого удалось создать идеального игрока в шашки.

Итак, первый шахматный «автомат», созданный придворным инженером Вольфгангом фон Кемпеленом, был продемонстрирован в Вене в 1769 г. Устройство представляло собой выполненную в натуральную величину восковую фигуру, одетую в экзотический турецкий наряд и сидящую за деревянным ящиком (1,2 × 0,6 × 0,9 м) с шахматной доской на крышке. Перед началом игры дверцы ящика раскрывались, и при помощи свечи публике демонстрировался сложный бутафорский механизм. Вслед за этим дверцы закрывались, механизм заводился ключом, и начиналась игра, которую за автомат вёл спрятанный в ящике сильный шахматист[616]. «Турок» умел не только играть в шахматы, но и общаться со зрителями, указывая рукой на буквы, изображённые на специальной табличке на поверхности стола. В отличие от современных чат-ботов Автомат не испытывал проблем с прохождением теста Тьюринга.



Вольфганг фон Кемпелен, венгр по происхождению, занимал при дворе Марии Терезии высокие государственные посты советника казначейства и управляющего соляной промышленностью, составлявшей государственную монополию. Пользуясь ресурсами, свойственными его высокому положению, он создал множество интересных приспособлений и конструкций: пишущий набор для незрячих, паровую машину, гидравлическую систему фонтанов во дворце Шёнбрунн. Богатство венского двора располагало к созданию невиданных диковинок, способных потешить пресыщенную придворную аристократию.

Вот как описывает встречу с «турком» современник фон Кемпелена, писатель и журналист Карл Готлиб фон Виндиш:

Первой мыслью, возникшей после поверхностного осмотра Шахматного Игрока, стало подозрение, что его движения находятся под непосредственным руководством какого-то человека. От этой ошибки я не был освобождён сам; когда я впервые увидел, как изобретатель извлекает из алькова свой Автомат, прикреплённый к довольно большому сундуку, я, как и другие, сразу же заподозрил, что этот сундук достаточно большой, чтобы в нём уместился ребёнок — как я оценил, прикинув размеры, — лет десяти или постарше. Некоторые говорили об этом вслух, и я про себя соглашался с ними. В ответ на это фон Кемпелен поднял одежду Автомата, вытащил выдвижной ящик и открыл все двери сундука. Перемещая открытый Автомат на четырёх колёсиках, изобретатель повернул его во всех направлениях и позволил каждому присутствующему осмотреть Автомат со всех сторон.

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

Я не знаю, думали ли остальные зрители так же, как и я; мне во всяком случае показалось, что некоторые думали о сверхъестественных силах. Одна старая дама, припомнив сказки, которыми её развлекали в детстве, перекрестилась и отошла подальше к окну, чтобы быть подальше от злого духа, присутствие которого она чувствовала[617].

В 1805 г., через год после смерти Кемпелена, его сын уступил «турка» немецкому инженеру Иоганну Мельцелю за 10 000 франков (по покупательной способности эта сумма примерно равна 5 млн рублей в 2023 г.)[618] — половину от суммы, за которую ранее Кемпелен предлагал Мельцелю приобрести устройство.

Мельцель внёс в Автомат ряд доработок. Например, добавил в него механизм, способный произвести слово «шах!» (Échec!)[619].

В 1811 г. Мельцель привёз «турка» в Милан для выступления перед вице-королём Италии Евгением Богарне. Богарне так понравился Автомат, что тот уговорил Мельцеля уступить его за 30 000 франков. Впрочем, через несколько лет, после окончания Наполеоновских войн, когда Евгений Богарне вместо вице-короля Италии стал герцогом Лейхтенбергским, Мельцель посетил его в Мюнхене и выкупил «турка» обратно[620].

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

В 1826 г. Мельцель перебрался в Новый Свет, где продолжались выступления.

В разное время операторами Автомата были Иоганн Альгайер, Уильям Льюис, Уильям Шлюмберже и другие сильные шахматисты. Но самым известным оператором «турка» стал Жак Муре, внучатый племянник знаменитого шахматиста Филидора[621].

Пятьдесят игр Автомата во время Лондонской выставки 1819-го, на которой оператором устройства был Муре, были собраны в опубликованной в следующем году книге. В предисловии говорилось, что к февралю 1820 г. (дата публикации книги) Автомат сыграл около трёхсот игр, давая противникам фору в одну пешку и право первого хода, при этом проиграл всего шесть партий[622].

Слабость Муре к алкоголю часто оставляла его без гроша, и, чтобы выжить, он, вероятно, открыл изданию Le Magasin pittoresque тайну «турка»: в вышедшей в 1834 г. статье под названием «Автоматический шахматист» объяснялось, как человек обычного роста может играть в шахматы, находясь внутри устройства, и раскрывалось имя одного из операторов автомата — Аарона Александра[623]. Статья была опубликована анонимно, но по некоторым косвенным данным можно предположить, что источником был именно Муре. В это время французский мастер был болен, ему не хватало денег, и он умер три года спустя[624].

Впрочем, профессиональные механики догадывались о принципах устройства Автомата и раньше. В 1820 г. свет увидела брошюра под названием «Попытка анализа автоматического шахматиста м. Кемпелена» за авторством английского учёного и инженера-механика Роберта Уиллиса, в которой автор подробно описывает возможное устройство «турка», снабжая рассуждения чертежами[625].

В 1838 г. Мельцель скончался от отравления алкоголем, после чего Автомат перешёл в руки американского врача и писателя Джона Митчелла, а затем оказался в Китайском музее Натана Данна, известного под названием «10 000 китайских вещей», в Филадельфии, где и сгорел во время пожара в 1854 г.

В 1857 г. в двух первых номерах журнала The Chess Monthly (Ежемесячные шахматы) вышла статья Силаса Митчелла, сына Джона Митчелла, в которой было подробно описано устройство «турка»[626].

Игрок, плотно втиснутый в ящик, не мог напрямую наблюдать за ходом игры. Эту проблему Кемпелен решил с помощью сигнализационной системы. В основание фигур, установленных на доске, были вмонтированы магнитные стержни. Под каждым полем доски внутри ящика находился небольшой железный грузик, подвешенный на медной пружинке. Когда фигуру поднимали, грузик опускался, сигнализируя о её перемещении. Как только фигура оказывалась на новом поле, магнит притягивал соответствующий грузик. Руководствуясь движениями грузиков, шахматист перемещал фигуры на своём экземпляре шахматной доски, закреплённой на одной из внутренних стенок ящика. Для того чтобы совершить ход, оператор передвигал рычаг, заставляя руку «турка» опускаться над заданной точкой доски. В руке манекена находились гибкие тросики, которые управлялись движениями пальцев оператора. Вращая втулку на конце рычага, шахматист брал фигуру, переносил её на нужное поле, разжимал пальцы и возвращал руку в исходное положение[627].

Впрочем, публикация статьи Митчелла не помешала появлению позже удивительных историй о «турке». Не обошлось и без русского следа. Французский иллюзионист Жан Робер-Уден — именно в его честь знаменитый Гарри Гудини выбрал свой сценический псевдоним — поведал в мемуарах 1859 г. собственную историю происхождения «турка». Согласно Роберу-Удену, фон Кемпелен был в России в 1790-х гг., где встретил доктора по фамилии Ослофф (Osloff). Доктор приютил беглого польского солдата Воровского (Worousky), у которого пушечным ядром оторвало ноги. Пострадавший солдат был одарённым шахматистом. Узнав об этом, фон Кемпелен сделал то, что любой сделал бы в подобной ситуации: потратил три месяца на создание мошеннического человекоподобного автоматического шахматного игрока, снабжённого ящиком, достаточно большим, чтобы вместить Воровского, в котором и вывез его тайно из России[628]. Наверняка так оно всё и было.

Успех фон Кемпелена и Мельцеля породил череду подражаний. В 1797 г. свой «автомат» представил итальянец Джузеппе Мороси[629], [630]. Впрочем, аппарат играл слабо и медленно и особого успеха не имел. «Баварский мальчик», выставлявшийся в Мюнхене в 1820 г., умел играть и в шахматы, и в шашки. В 1827 г. увидел свет «американский шахматный игрок», созданный братьями Уокер (Walker Brothers). Мельцель хотел выкупить этот «автомат», чтобы избежать конкуренции. Уже после смерти Мельцеля появился «Аджиб» (Ajeeb), созданный Чарльзом Хупером и впервые продемонстрированный в 1862 г. Аппарат играл в шашки и шахматы и добился особых успехов, когда его оператором был знаменитый шахматист Пильсбери. За Аджибом последовал созданный Чарльзом Гюмпелем «Мефисто», играя за которого Гунсберг выиграл среди прочего партию у Чигорина — каждый из противников допустил в партии несколько ошибок, но ошибка Чигорина оказалась последней[631]. В общем, забраться в бутафорский автомат и потроллить почтенную публику было одним из весьма популярных развлечений великих шахматистов прошлого.

Созданное фон Кемпеленом устройство, конечно же, не являлось системой искусственного интеллекта, но любопытно то, что с его помощью удавалось весьма успешно вводить в заблуждение современников изобретателя. Люди верили, что искусный мастер мог создать механизм, способный играть в шахматы. Это вполне соответствовало настроениям эпохи Просвещения. Рене Декарт считал животных сложными машинами, а Томас Гоббс в своём знаменитом «Левиафане» (1651)[632] развивает идею о том, что мышление имеет механическую, комбинаторную природу. Лейбниц считал, что человеческий разум можно свести к чисто механическим вычислениям, предположив, что для мыслящих машин более всего подойдёт двоичная логика. Велика ли с точки зрения человека, живущего на границе XVIII и XIX вв., была дистанция от механической утки Вокансона до механического игрока в шахматы?

Забавно, что первая машина, действительно умевшая самостоятельно играть в шахматы, известна публике в куда меньшей степени, чем Автомат фон Кемпелена. В начале 1910-х (источники разнятся в точной датировке, иногда говорится даже о 1890-х)[633], [634], [635], [636] испанский математик и инженер Леонардо Торрес-и-Кеведо создал автомат под названием El Ajedrecista (в переводе на русский — «шахматный игрок»). Машина произвела настоящий фурор во время своего дебюта, состоявшегося в 1914 г. на выставке, организованной Парижским университетом[637].

Конечно, шахматная машина Торреса-и-Кеведо не умела играть в полноценные шахматы. Используя механические манипуляторы и электрические сенсоры, автомат умел ставить белыми королём и ладьёй (расположенными в начальной позиции на полях a8 и b7 соответственно) мат одинокому чёрному королю, управляемому человеком (король в начальной позиции мог находиться на любом поле, исключая седьмую и восьмую горизонтали). Кроме того, машина умела определять корректность ходов, совершаемых игроком. Если человек совершал невозможный ход, машина сигнализировала об ошибке при помощи лампочки. Если игрок допускал три ошибки, игра останавливалась.

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

Поскольку автомат Торреса-и-Кеведо появился раньше «Ниматрона» Кондона, именно он стал первым в истории игровым компьютером. Конечно, расстояние от El Ajedrecista до машины, способной играть в полноценные шахматы, было очень велико, но в то же время автомат Торреса-и-Кеведо стал важным доказательством жизнеспособности самой концепции.

Вторую, улучшенную механически, но не алгоритмически, версию автомата изготовил в 1920 г. Гонзало, сын изобретателя, под руководством отца. Новая версия машины использовала электромагниты для перемещения фигур на доске, а также фонограф, чтобы «произносить» слова «шах» и «мат»[638]. Уже после смерти старшего Торреса-и-Кеведо, на Парижском конгрессе по кибернетике в 1951 г., улучшенная машина предстала перед более широкой аудиторией[639]. С её устройством ознакомился Норберт Винер, о чём свидетельствует фотография, запечатлевшая Гонзало, демонстрирующего Винеру работу машины.


Рис. 64. Гонзало Торрес-и-Кеведо демонстрирует Норберту Винеру работу машины El Ajedrecista


Оба автомата и сегодня пребывают в рабочем состоянии и выставлены в музее Леонардо Торреса-и-Кеведо, расположенном в здании Высшей технической школы инженеров дорог, каналов и портов (Escuela Técnica Superior de Ingenieros de Caminos, Canales y Puertos, ETSICCP) при Политехническом университете Мадрида[640].

За свою жизнь Леонардо Торрес-и-Кеведо создал множество замечательных устройств. На стометровой высоте над рекой Ниагарой в провинции Онтарио (Канада), рядом с легендарным Ниагарским водопадом, и в наши дни действует канатная дорога Whirlpool Aero-Car, созданная по чертежам изобретателя и запущенная в эксплуатацию в 1916 г. Леонардо и его сын Гонзало лично руководили её постройкой. Это не единственная канатная дорога Торреса-и-Кеведо. В 1907 г. была запущена пассажирская канатная дорога на горе Улия (Доностия-Сан-Себастьян, Испания) (в некоторых источниках она называется первой в мире пассажирской канатной дорогой, но в данном случае приоритет, по всей видимости, всё-таки принадлежит или гибралтарской, или гонконгской канатной дороге, построенным в конце XIX в.[641]). Другие канатные дороги, спроектированные Торресом-и-Кеведо, были построены в Шамони (сегодня — Шамони-Мон-Блан, Франция) во Французских Альпах и в Рио-де-Жанейро (Бразилия)[642].

К числу других изобретений Торреса-и-Кеведо относится пульт дистанционного управления. Удивительный гений испанского Леонардо был столь велик, что ему удалось изобрести пульт задолго до изобретения телевизора. Ну а если серьёзно, то «телекин» (Telekine), запатентованный Торресом-и-Кеведо в 1903 г., стал одной из первых разработок в этой области. При помощи телекина Торрес-и-Кеведо без использования проводов успешно управлял дирижаблями[643], трёхколёсным мотоциклом и лодкой[644], [645].



В 1913 г. из-под пера Торреса-и-Кеведо вышла статья под названием «Очерки об автоматике» (Ensayos sobre Automática), в которой, собственно, впервые был употреблён термин «автоматика». В статье Торрес-и-Кеведо приводит краткую историю трудов Чарльза Бэббиджа по созданию разностной и аналитической машин. Леонардо пишет об аналитической машине как о проекте, раскрывающем потенциальные возможности машин, и рассматривает задачу её постройки как вызов своим навыкам конструктора электромеханических устройств. Статья содержит полное описание конструкции машины, способной вычислять значение выражения ax(yz)2 для последовательности наборов значений переменных.

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

В 1920 г. на конференции, посвящённой столетию создания арифмометра де Кольмара, Торрес-и-Кеведо представил электромеханический арифмометр собственной конструкции. Оператор печатал на пишущей машинке числа, разделённые знаком арифметической операции, после чего арифмометр выполнял вычисление и подавал машинке команду напечатать ответ и перевести каретку на следующую строку для осуществления очередной операции[646].

3.5.2 Шахматные программы… без шахматных машин

Первая машина, способная играть в шахматы в полном соответствии со всеми правилами, появилась на свет почти через полвека после создания «шахматного игрока».

Но, что ещё интереснее, первая программа для игры в шахматы появилась задолго до того, как появилась машина, способная её выполнять! И ответственен за столь необычную веху в истории ИИ — Алан Тьюринг.

После окончания Второй мировой войны Тьюринг работал в Национальной физической лаборатории (NPL), где занимался разработкой одного из первых компьютеров — «Автоматического вычислительного механизма» (Automatic Computing Engine, ACE) — предшественника Manchester и Ferranti Mark I. В 1945 г. в отчёте Тьюринга под названием «Предлагаемый электронный калькулятор» упоминается десять задач, которые могли бы быть решены при помощи ACE; последней в списке значится программа для игры в шахматы[647]. Идея была развита в 1948 г. в следующем отчёте под названием «Интеллектуальная техника», в котором Тьюринг упоминает проведённые им эксперименты в этом направлении[648]. Считается, что первые идеи Тьюринга в отношении компьютерных шахмат относятся к 1941–1942 гг.[649]

В конце лета 1948 г. Тьюринг вместе со своим коллегой Дэвидом Чемпернауном разработали алгоритм определения хода в шахматной игре на основе перебора вариантов. Однако он был слишком сложен для того, чтобы воплотить его в виде программы для ACE или любого другого компьютера того времени. Программа получила название «Тьюрочемп» (Turochamp), составленное из первых букв фамилий авторов. Вооружившись карандашом и бумагой, авторы выполняли необходимые расчёты за машину вручную — на выбор одного хода уходило около 30 минут. Этот аттракцион получил название «бумажной машины». «Бумажная машина» оказалась способна обыграть начинающего игрока — жену Чемпернауна, но проиграла Алику Гленни, создателю первого в истории компилятора — Autocode. Партия «бумажной машины» против Гленни продолжалась 29 ходов и сохранилась до наших дней[650].

Хотя Чемпернаун в 1980 г. и описал алгоритм работы программы в письме в редакцию журнала Personal Computing, некоторые детали за три десятилетия стёрлись из памяти учёного[651]. К счастью, до нас дошло достаточно подробное описание алгоритма Turochamp, подготовленное самим Тьюрингом для вышедшего в 1953 г. сборника «Быстрее мысли: симпозиум по цифровым вычислительным машинам» (Faster than Thought: A Symposium on Digital Computing Machines) под редакцией Бертрама Баудена[652]. Текст, набранный на печатной машинке, содержит собственноручные пометки и исправления Тьюринга. Выбор хода в программе Тьюринга и Чемпернауна был основан на переборе вариантов на фиксированную глубину. При этом варианты со взятиями рассматривались в глубину вплоть до позиций, в которых ни одно взятие было невозможно. Оценочная функция Turochamp оценивала материал (конь оценивался в три пешки, слон — в три с половиной, ладья — в пять и ферзь —в десять пешек), мобильность фигур, а также некоторое количество других позиционных признаков[653].

В 2004 г., основываясь на имеющихся материалах, Фредерик Фридель — известный научный журналист, многолетний редактор журнала Computerschach und Spiele (Компьютерные шахматы и игра) и сооснователь компании ChessBase, — заручившись поддержкой одного из ведущих разработчиков ChessBase Матиаса Файста, воссоздал Turochamp в виде работающей программы. Таким образом, спустя более чем полстолетия программа Тьюринга наконец обрела компьютерное «тело».

В процессе работы над Turochamp команда ChessBase столкнулась с проблемой: программа отказалась повторять все ходы, записанные Тьюрингом в игре против Гленни. Исследователи потратили несколько недель на повторное изучение материалов Тьюринга и обсуждение особенностей их реализации. К работе команды подключился Кен Томпсон, который написал собственный код на основе инструкций Тьюринга. Но и его программа вела себя сходным образом и повторяла большую часть ходов программы ChessBase, отличавшихся от ходов Тьюринга в партии.

В чём же было дело? Были ли это ошибки Тьюринга или неточности реконструкторов?

Фридель связался с Дональдом Мичи, работавшим с Тьюрингом в Блетчли-парке, описал суть проблемы и рассказал о наиболее существенных расхождениях между ходами в партии и ходами программы. «Возможно, мы делаем что-то не так, — писал Фридель, — но я сомневаюсь в этом, поскольку очень часто, особенно в начале игры, мы получаем те же ходы с одинаковыми оценками. Думаю, вполне возможно, что Тьюринг устал после пятнадцати ходов, когда вдобавок ко всему позиция стала достаточно сложной?!» Реакция Мичи была следующей: «Вы ищете ошибку в программе, Фредерик? Нет-нет, вы должны искать её у Алана Тьюринга! Алан не заботился о деталях; его интересовал общий принцип». Он также привёл слова Чемпернауна, который помогал Тьюрингу в создании «бумажной машины»: «В натурном эксперименте, я подозреваю, мы были слегка небрежны и наверняка наделали множество ошибок, поскольку расчёты были чрезвычайно утомительны при использовании карандаша и бумаги».

Результаты работы по воссозданию Turochamp были представлены на конференции, прошедшей в Блетчли-парке 23 июня 2012 г. и посвящённой столетию со дня рождения Алана Тьюринга. Вместе с Фриделем на конференции выступил тринадцатый чемпион мира по шахматам Гарри Каспаров, который провёл короткую демонстрационную партию против Turochamp — играя чёрными, он выиграл её за 16 ходов[654].

До своей трагической смерти в 1954 г. Тьюринг так и не успел реализовать Turochamp в виде программного кода, но эстафету подхватили другие исследователи. Вообще говоря, шахматы с самого начала рассматривались в качестве своеобразного священного Грааля машинного интеллекта — эта традиция берёт истоки ещё в работах Бэббиджа. Конрад Цузе, работая над своим языком программирования Plankalkül, анализировал задачу определения валидности шахматных ходов и разработал для этого ряд программных процедур[655], [656]. В 1950 г. опубликована написанная двумя годами ранее программная статья Клода Шеннона «Программирование компьютера для игры в шахматы», в которой сформулированы основные подходы к созданию шахматных программ, в значительной мере определившие развитие шахматного программирования в последующие полстолетия.

В целом идеи, изложенные Шенноном в статье, во многом пересекаются с идеями Тьюринга. Шеннон также предлагает использовать оценочную функцию, принимающую в расчёт материал, мобильность, отдельные элементы пешечной структуры: слабые, изолированные и сдвоенные пешки, нахождение ладей на открытых вертикалях и некоторые другие широко известные признаки, используемые шахматистами при оценке позиции. Интересно, что Шеннон предлагает немного отличающиеся значения для оценки фигур (у Тьюринга слон стоит три с половиной пешки, а у Шеннона — три, как и конь). Шеннон также пишет о том, что перебор в узле дерева можно прерывать только в «спокойных» [quiescent] позициях, поскольку значение оценочной функции бессмысленно в середине цепочки разменов. Если при переборе в глубину на три полухода белые третьим полуходом взяли чёрного ферзя, то программа может посчитать результатом соответствующего варианта выигрыш ферзя, хотя в действительности чёрные заберут «лишнего» ферзя белых следующим ходом, тем самым уравняв позицию. Термин quiescent, употреблённый Шенноном, и в наши дни используется для обозначения в шахматных программах функций, отвечающих за анализ форсированных вариантов, например: quiescence_search() или просто quiescence(). Шеннон по сути приводит в статье свой вариант этой функции: он предлагает продолжать перебор в течение нескольких дополнительных полуходов, если хотя бы одна фигура на доске атакована более слабой фигурой, либо атакована недостаточно защищённая фигура, либо существует возможность дать шах на незащищённое поле.

Вообще статья Шеннона интересна в первую очередь как раз анализом задачи перебора вариантов. Шеннон описывает две программы — тип A и тип B. Программа типа A просматривает дерево игры на фиксированную глубину, при этом в каждом узле дерева (соответствующем позиции на доске) рассматриваются все возможные ходы соответствующей стороны. Такой подход гарантирует нахождение любой игровой комбинации, если глубина рассмотрения дерева достаточна для этого. Однако дерево шахматной игры, особенно в миттельшпиле, ветвится чрезвычайно быстро. В среднестатистической шахматной позиции возможно примерно 35 различных полуходов, что более чем в десять раз превосходит аналогичный показатель для английских шашек. Оценив вычислительные возможности машин, Шеннон делает неутешительный вывод: программа типа A вряд ли когда-либо сможет сравниться с лучшими шахматистами, ведь некоторые комбинации чемпионов мира насчитывают 15–20 ходов в глубину! В качестве альтернативы программе типа A Шеннон предлагает программу типа B, которая будет рассматривать в каждом узле дерева игры не все, а только некоторые альтернативы — это позволит увеличить глубину рассмотрения дерева за счёт уменьшения его ширины. Похожим образом действуют и профессиональные шахматные игроки — включают в рассмотрение только те варианты, которые считают осмысленными.

Дьявол, однако, как обычно, кроется в деталях. В 1950 г. в арсенале методов ИИ ещё не было инструментов, позволявших получить оценку «осмысленности» того или иного варианта, сопоставимую по качеству с человеческой. Да что уж говорить — даже самого ИИ как направления ещё не существовало. Программа типа B, руководствуясь примитивными способами отсеивания вариантов, неизбежно часто допускала бы грубые ошибки, эту проблему видел и Шеннон. Последовавшие десятилетия развития шахматных программ во многом стали поиском разумного компромисса между полным и селективным, избирательным перебором вариантов, а также поиском быстрых и в то же время умных оценочных функций.

В своей работе Шеннон рассматривает возможность ограничения количества вариантов, анализируемых на каждом из уровней дерева перебора. Например, на картинке ниже изображено дерево с ограничениями числа рассматриваемых вариантов в 3, 2, 2, 1, 1 для глубины соответственно в 1, 2, 3, 4 и 5 полуходов. Сплошными линиями показаны «разрешённые» к рассмотрению ходы, штриховыми — «запрещённые».



Рис. 65. Дерево перебора с ограничением числа рассматриваемых вариантов в каждом узле (программа типа B)

Количество рассматриваемых вариантов на этой схеме зависит только от глубины и не зависит от качества соответствующей позиции и самих ходов — это, конечно, серьёзное упрощение. В действительности Шеннон предлагал разработать некоторую функцию h(P, M), где P — позиция, а M — ход, для определения того, достоин ли ход рассмотрения в данной позиции. Шеннон даже выполнил некоторые наброски такой функции: предложил присваивать большие значения шахам, развивающим ходам, взятиям, атакам на фигуры, угрозам мата и так далее[657].

В статье Шеннона обнаружилось достаточно деталей для того, чтобы уже знакомый нам Матиас Файст создал на её основе «программу Шеннона». Инго Альтхофер из Йенского университета в 2012 г. организовал демонстрационный матч из десяти партий, в котором «программа Тьюринга» сразилась с «программой Шеннона». Итогом матча стала ничья — каждая из программ выиграла по одной партии, а остальные восемь завершились миром. До последней партии «Тьюринг» лидировал, но последнюю выиграл «Шеннон», сравняв счёт. Причиной поражения «Тьюринга» стал эффект горизонта. Также в ходе матча выяснилось, что ни одна из программ не способна поставить «голому» королю мат ни ладьёй, ни даже ферзём[658].

Сегодня исходные коды «воссозданных» программ Тьюринга и Шеннона, так же как и, например, исходные коды программы, основанной на отдельных идеях Конрада Цузе, размещены в открытом доступе. Однако важно понимать, что все они содержат некоторый произвол со стороны реконструкторов, ведь ни одна из этих программ не существовала в действительности, а дошедшие до нас документы допускают в ряде случаев весьма широкое пространство для трактовок и домыслов.

Интересно, что Turochamp не была единственной «бумажной машиной» того времени. В 1947–1948 гг. уже знакомый нам Дональд Мичи совместно с другим криптоаналитиком из Блетчли-парка Шоном Уайли создали программу, а точнее, алгоритм, получивший название «Макиавелли» (Machiavelli). Это имя он получил в честь знаменитого итальянского мыслителя, писателя и политического деятеля эпохи Возрождения Никколо Макиавелли. В начале 1950‑х гг. Тьюринг вёл работы по превращению Turochamp и Machiavelli в программы для манчестерских компьютеров, но эта работа так и осталась незавершённой. Исторические Machiavelli и Turochamp так и не сыграли ни одной партии, пока до них не добрались неутомимые реконструкторы.

В статье «Машины, которые играют в игры», увидевшей свет в 1961 г., Джон Мейнард Смит и Дональд Мичи описали оценочные функции своих алгоритмов — SOMA (Smith One-Move Analyzer, «Одноходовый анализатор Смита») и Machiavelli. Обе «бумажные машины» предполагали анализ вариантов всего на один полуход в глубину, поэтому вряд ли могли обыграть кого-то, кроме шахматных новичков. Функции оценки включали в себя подсчёт материала, контроль над центром доски и полями, соседствующими с королём, атаки на фигуры, оценки разменов и ряд других стратегических и тактических факторов. Позже Смит создал гибрид SOMA и Machiavelli, получивший название SOMAC. Этот алгоритм при переборе в глубину на два полухода обеспечивал уровень игры, соответствующий среднему шахматному игроку-любителю.

3.5.3 Алекс Бернстайн и первая полноценная шахматная программа

В 1951 г. ещё один коллега Тьюринга, Дитрих Принц, создал первую программу для Ferranti Mark I, способную решать задачки типа «мат в два хода». Было ясно, что созданию полноценной шахматной программы мешает недостаточный объём памяти машины.

Манчестерская команда не была единственной группой программистов, работавших над созданием шахматных программ в 1950-е. За океаном собственную разработку вели физики-атомщики из Лос-Аламоса под руководством самого фон Неймана.

Шахматная программа для компьютера MANIAC I (Mathematical Analyzer, Numerical Integrator, and Computer или Mathematical Analyzer, Numerator, Integrator, and Computer, «Математический анализатор, числовой интегратор и компьютер» или «Математический анализатор, счётчик, интегратор и компьютер»), спроектированного и построенного командой из Лос-Аламоса, была готова к 1956 г. и умела играть в так называемые антиклерикальные шахматы — вариант шахмат на доске 6 × 6 и без слонов (дело в том, что эта фигура в английском языке называется словом bishop — епископ). Также в антиклерикальных шахматах не было рокировки и ходов пешек через одно поле.



Позже эта программа получила название Los Alamos Chess.


Рис. 66. Учёные из Лос-Аламоса Пол Штейн (слева) и Ник Метрополис (справа)
играют в шахматы с MANIAC I (на заднем плане)

Интерес к шахматному программированию проявляли и исследователи социалистических стран. В 1953 г. в ГДР в журнале Funk und Ton (Радио и звук) была опубликована работа Гюнтера Шлибса с описанием алгоритма работы шахматной программы. Идеи Шлибса в целом повторяли идеи Шеннона и Тьюринга: он воспроизводит в своей работе оценочную функцию из статьи Шеннона, включающую оценку материала (девять единиц за ферзя, пять — за ладью, по три — за коня и слона), наличие отсталых, изолированных и сдвоенных (штраф по 0,5 балла) пешек, а также мобильности (по 0,1 балла за каждое поле). Перебор в программе Шлибса, как и в программе Шеннона, должен был осуществляться на фиксированное число полуходов в глубину, а оценка — производиться только в стабильных позициях. В общем, Шлибс почти полностью воспроизводит в своей работе статью Шеннона, внося ряд замечаний и уточнений[659].

Работа Шлибса не упоминается в современной западной литературе, но была хорошо известна советским исследователям. Краткий пересказ идей Шеннона и Шлибса мы впервые находим в книге «Электронные цифровые машины» Анатолия Ивановича Китова — руководителя головного вычислительного центра Министерства обороны СССР. Эта книга стала первой «открытой» книгой по вычислительной технике в Союзе, была позднее переведена на ряд иностранных языков и опубликована в Китае, Польше, Чехословакии. Пересказывая идеи Шлибса и Шеннона, Китов не удержался от того, чтобы скорректировать величину штрафа за изолированную и сдвоенную пешку: в его книге они составляют 0,4 и 0,3 балла соответственно (вместо 0,5 за оба дефекта у Шеннона и Шлибса)[660].

Два года спустя увидела свет новая книга Китова, написанная в соавторстве с Николаем Криницким, — «Электронные вычислительные машины» (в этой книге, вышедшей в «тёплые ламповые времена», слово «алгоритм» пока ещё пишется через Ф — «алгорифм»), в которой уже упоминаются первые проекты советских программистов. Например, созданная В. М. Курочкиным программа, способная решать шахматные задачи, а также созданная В. Д. Кукушкиным программа, способная ставить мат одинокому королю двумя разнопольными слонами[661], [662]. Откровенно говоря, первой моей мыслью, когда я увидел эти фамилии в книге Китова, было то, что за птичьими псевдонимами в данном случае скрывались засекреченные сотрудники ИТМиВТ, во главе которого стоял ещё один, уже известный нам исследователь с «крылатой» фамилией — Сергей Алексеевич Лебедев. В мемуарах его коллег упоминается программа для БЭСМ, которая решала двух- и трёхходовые задачи намного быстрее, чем лучшие шахматисты института[663]. Но красивая версия не выдержала проверки: по крайней мере Владимир Михайлович Курочкин — вполне реальный человек, известный российский учёный в области информатики, стоявший у истоков отечественного программирования. С 1950 по 1955 г. Курочкин работал под началом Лебедева в ИТМиВТ, а затем возглавил отдел систем математического обеспечения Вычислительного центра РАН.

Несмотря на все усилия исследователей, первая полноценная шахматная программа появилась только в 1957 г. Её создала команда под руководством сотрудника компании IBM Алекса Бернстайна.

Написание шахматной программы в конце 1950-х гг. было сложной задачей. Во-первых, языки программирования находились в зачаточном состоянии. Язык программирования фортран (FORTRAN) был огромным шагом вперёд по сравнению с машинным кодом, но первые компиляторы имели ограниченный набор функций, глючили и генерировали неоптимальный код. Во-вторых, у машин было мало памяти. Машина со 100 000 байтов памяти была большой редкостью, при этом значительная часть этого драгоценного ресурса была отдана операционной системе и программному коду. В-третьих, инструментов отладки не существовало. Если что-то пошло не так или вы подозревали, что что-то не так, арсенал средств поиска проблемы был крайне ограничен. Наконец, компьютеры стоили дорого и доступ к ним был сложен. Большая часть ранних работ в области шахматного программирования сильно страдала из-за сложностей в получении доступа к дорогостоящему компьютерному оборудованию. В этих сложных условиях прогресс в разработке сильных шахматных программ был ожидаемо медленным.



Неудивительно, что большую часть пионерских проектов в области компьютерных шахмат осуществили люди, которые либо были сотрудниками компаний, производящих компьютерное оборудование, либо работали в университетах. И у тех и у других был пусть и ограниченный, но всё-таки какой-никакой доступ к драгоценному компьютерному времени (особенно посреди ночи). IBM была компанией, обладавшей ключевым ресурсом для создания шахматной программы: современными компьютерами. Однако одних только машин было недостаточно: чтобы создавать программы, нужны ещё и программисты, а людей с необходимыми навыками было в то время трудно найти (как, впрочем, нередко бывает и сейчас). На что были похожи практики поиска сотрудников в ИТ в 1950-е?

В декабре 1956 г. IBM разместила объявление в журнале Scientific American и в газетах New York Herald Tribune и Los Angeles Times, в котором сообщала, что ищет тех, кто интересуется программированием компьютеров. В рекламе использовалось изображение чёрного шахматного коня и говорилось, что «эта работа понравится тем, кто любит играть в шахматы или разгадывать головоломки».

В ответ на объявление компания получила ровно семь ответов, и этот результат был сочтён отличным. Пятеро из откликнувшихся были опытными программистами, работавшими у конкурентов, — кадровое браконьерство всегда было в той или иной мере свойственно компьютерной индустрии. Двое других были новичками, и только один из них оказался полезным в долгосрочной перспективе. Первым был шахматист, который «интересовался только игрой в шахматы», и вскоре IBM «позволила ему вернуться к своей доске». Второй «почти ничего не знал о вычислительной технике», но, как утверждалось, его IQ равнялся 172 баллам, и, по словам сотрудника компании, ответственного за наём программистов, кандидат «обладал тем типом ума, который нам нравился… [Он] научился играть на пианино, когда ему было десять лет, пребывая в уверенности, что нота фа в действительности является нотой ми. Так он и играл в течение многих лет. Бог знает, через что прошли его соседи. Однако, следует отметить, эта история показала наличие прекрасного независимого таланта к систематической работе по преобразованию значений». В конце концов первоначальная рекламная кампания и её последующее продолжение в еженедельнике The New Yorker привели к появлению многообещающих «джуниоров». В их число входили кристаллограф, получивший образование в Оксфорде, доктор философии в области английского языка из Колумбийского университета, экс-модель из модной индустрии, протохиппи и многочисленные шахматисты.

Одним из откликнувшихся на объявление стал победитель чемпионата США (U. S. Open) по шахматам Артур Бисгайер. Также среди связавшихся с компанией были Алекс Бернстайн, бывший капитан шахматной команды Высшей научной школы Бронкса (The Bronx High School of Science, среднее учебное заведение с высоким уровнем преподавания)[664], Дон Шульц, который позднее стал президентом Шахматной федерации США, а также Сид Нобл, самопровозглашённый «чемпион по шахматам Французской Ривьеры». Единственное, что объединяло этих начинающих программистов, — это, пожалуй, только их выдающиеся результаты в серии тестов, основанных на интеллектуальных головоломках, да достаточная самоуверенность для того, чтобы откликнуться на расплывчатые, но интригующие объявления IBM[665], [666].

Долгое время о биографии Алекса Бернстайна, несмотря на его весомый вклад в историю развития шахматного программирования, было известно немного. Некоторые подробности удалось установить в результате переписки с его ныне здравствующими родственниками. Отец Бернстайна — математик Владимир Бернштейн, уроженец Санкт-Петербурга, был учеником профессора Якова Успенского. В 1919 г. Владимир решает покинуть разорённую Гражданской войной Советскую Россию. Во время пересечения советско-финской границы в районе Выборга он получил серьёзное пулевое ранение, которое стоило ему потери лёгкого. В эмиграции Владимир Бернштейн сменил несколько стран пребывания. Какое-то время он жил в Лондоне, а в середине 1920-х перебрался во Францию, где поступил в Сорбонну и в 1930-м защитил докторскую диссертацию, посвящённую проблеме единственности для рядов Дирихле. Опубликованная в 1933 г. монография Бернштейна, посвящённая этим рядам, получила очень высокую оценку от знаменитого французского математика Жака Адамара. В 1931 г. Бернштейн получил итальянское гражданство и преподавал аналитическую геометрию в Павии и математический анализ в Милане. Именно в Милане и родился Алекс Бернстайн. К сожалению, здоровье Владимира было серьёзно подорвано из-за ранения, и в 1936 г. он скоропостижно скончался в Милане от пневмонии, не дожив до своего 36-летия. Примерно в 1940 г. юный Алекс с матерью и её вторым мужем перебираются в Нью-Йорк. Здесь он окончил школу, колледж, а затем Колумбийский университет, где изучал математику и средневековую французскую литературу[667], [668]. Во время Корейской войны его призывают в армию. Благодаря познаниям в области математики он попадает в специальное техническое подразделение, где получает первые знания в области компьютерной техники. Сын Алекса, Макс Бернстайн, так описывает историю знакомства своего отца с компьютерами: «Когда его призвали в армию (это была война в Корее), он упомянул свои познания в области математики, и его пригласила на собеседование женщина, которая создавала специальное техническое подразделение и искала новобранцев, хорошо разбирающихся в математике. Сама она была русской и когда увидела его фамилию, то спросила: „Бернштейн? Вы случайно не в родстве с Владимиром Бернштейном?“ Когда он сказал, что является сыном Владимира, она ответила: „Пойдём, я научу тебя компьютеру“. Таким образом, именно армия дала ему образование в области компьютеров. Я не знаю подробностей его работы в армии, но она была весьма разнообразной, мне смутно помнится, как он рассказывал о попытках оптимизировать оборонительные позиции США на континенте (в случае авианалётов? ракетных атак?) и про использование полиномов Чебышёва для чего-то связанного с кораблями для военно-морского флота»[669].

Идея создания шахматной программы принадлежала изначально товарищу Алекса Бернстайна Хэлу Джадду и была поддержана Чарльзом ДеКарло — главой отдела прикладной науки компании[670]. Бернстайн в итоге возглавил команду по созданию шахматной программы, в которую помимо него вошли Майкл де Ван Робертс, Тимоти Арбакл и Мартин Бельски. Артур Бисгайер стал шахматным советником проекта. Разработанная программа относилась к типу B по терминологии Шеннона, выполняя перебор на четыре полухода в глубину и рассматривая по семь наиболее перспективных альтернатив на каждом уровне дерева перебора.

Эти ограничения были связаны со временем, необходимым для выбора хода: обычно машина затрачивала на принятие решения около восьми минут, а если на каждом уровне дерева перебора анализировалось не семь, а восемь вариантов, то этот интервал возрастал бы до 15 минут. При этом увеличение глубины перебора на один полуход приводило бы к увеличению времени расчёта до шести с половиной часов. Современному компьютеру на те же вычисления потребовались бы доли секунды[671], [672].

Несмотря на то что команда Бернстайна получила уникальные результаты, знаем мы о ней сегодня очень мало. Биографические данные участников команды крайне скудны, неизвестны даже годы жизни авторов первой в мире шахматной программы. О самом Бернстайне известно, что он научился играть в шахматы в девять или десять лет. Он не проиграл ни одной партии своей программе, но, отзываясь о её игре, однажды заметил, что «один или два раза она сыграла так хорошо, что это вызвало у меня волненье»[673]. Многие источники по истории программирования сообщают, что Бернстайн был межуниверситетским чемпионом страны, но в шахматных источниках отсутствуют подтверждения этого факта. Хотя Бернстайн начал работу над шахматной программой только в 1956 г., он успел поучаствовать в знаменитой Дартмутской конференции, куда прибыл вместе со своими коллегами по IBM — уже знакомым нам Артуром Сэмюэлом и Эдвардом Муром[674]. «Алекс Бернстайн, приехавший из Нью-Йорка, чтобы поговорить о шахматной программе, сразился в шахматы с Маккарти, что эквивалентно индивидуальному поединку (mano-a-mano) в мире науки. Бернстайн победил, несмотря на то, что предоставил противнику фору, играя вслепую. После этого, по возвращении в Нью-Йорк, он создал программу, чтобы окончательно победить Маккарти. Поскольку его визит в Дартмут не совпал с визитом Ньюэлла и Саймона, Бернстайн лишь позже узнал о том, что они независимо пришли к некоторым идеям в отношении одной и той же задачи», — пишет упоминавшаяся нами в первой части писательница и специалистка по истории ИИ Памела Маккордак[675]. Сам Маккарти в своих воспоминаниях немного более скуп: «Алекс Бернстайн из IBM представил свою шахматную программу на стадии разработки. Моей реакцией было изобрести и порекомендовать ему альфа-бета-отсечение. Его это не убедило»[676]. Работа Бернстайна так и не получила продолжения, и эстафета перешла к другим командам. Шахматный проект изначально развивался по остаточному принципу, во всяком случае в интервью The New Yorker Бернстайн сетовал на занятость в других проектах IBM[677]. Изначальным или по крайней мере официальным оправданием менеджеров IBM, позволивших Бернстайну использовать первые IBM 704 для столь несерьёзной вещи, как программирование шахмат, была надежда на то, что в случае успеха это послужит демонстрацией того, что компьютеры могут решать задачи, сопоставимые по сложности с теми, с которыми сталкивается бизнес. Однако акционеры не оценили достижения Бернстайна и Сэмюэла и были не в восторге от того, что ресурсы фирмы тратились на игры[678].

В наследие от Бернстайна нам осталось несколько статей, фотографий и даже короткое видео, демонстрирующее игру Бернстайна со своим детищем.


Рис. 67. Алекс Бернстайн демонстрирует, как компьютер IBM 704 играет в шахматы


4.5.4 СССР и США — творческая атмосфера созидания

В 1958 г. уже упоминавшиеся нами Аллен Ньюэлл, Герберт Саймон и Клифф Шоу разработали собственную шахматную программу в Институте технологий Карнеги (Carnegie Institute of Technology, CIT). Обычно её называют NSS — по первым буквам фамилий создателей, либо просто CP (Chess Program, «шахматная программа»), или даже CP-1. Это была первая шахматная программа, написанная на языке высокого уровня. Этим языком был язык IPL (Information Processing Language, «язык обработки информации»), созданный Шоу и ставший одним из предшественников языка Lisp.

Как и программа Бернстайна, NSS относилась к шенноновскому типу B, однако число рассматриваемых вариантов на каждом из уровней дерева перебора не было фиксированным. Вместо этого программа содержала несколько генераторов ходов, каждый из которых предлагал список ходов, соответствующих определённой цели. Важным нововведением стало использование одного из ранних вариантов альфа-бета-отсечения. NSS работала на компьютере JOHNNIAC (JOHn von Neumann Numerical Integrator and Automatic Computer, «Численный интегратор и автоматический компьютер Джона фон Неймана») и была способна обыграть в шахматы новичка.

В 1959 г. первокурсники Массачусетского технологического института Алан Коток, Элвин Берлекэмп, Майкл Либерман, Чарльз Ниссен и Роберт Вагнер, будучи студентами Джона Маккарти, начали собственный шахматный проект. В качестве отправной точки они выбрали программу Бернстайна, добавив к ней альфа-бета-отсечение. Программа Котока — Маккарти была написана на фортране, работала на мейнфрейме (мощном сервере) IBM 7090 и была способна анализировать около 1100 позиций в минуту. Программа была готова в 1962 г. и легла в основу дипломной работы Котока.

Примерно в то же время задачей создания полноценной шахматной программы озаботились советские программисты. Как и в США, в конце 1950-х — начале 1960-х гг. такие проекты появлялись в первую очередь в коллективах, связанных с разработкой вычислительных машин, и так же, как и в США, выполнялись энтузиастами в условиях, когда руководство не испытывало большого восторга от подобного нецелевого использования дефицитных вычислительных ресурсов. Однако стоило таким проектам получить хотя бы минимальную поддержку со стороны руководства, хотя бы в форме непротивления, как увлечённые программисты были готовы буквально свернуть горы.

Одним из покровителей шахматного программирования в это время стал Михаил Шура-Бура — один из ведущих проектировщиков машины М-20. С 1953 г. Шура-Бура работал в отделении прикладной математики Математического института АН СССР (МИАН), на основе которого в середине 1950-х гг. был создан Институт прикладной математики АН СССР (сокращённо — ИПМ). Под руководством академика Келдыша Шура-Бура работал во главе отдела программирования ИПМ над задачами расчёта траекторий искусственных спутников Земли. Первые программы для решения этих задач были разработаны для ЭВМ «Стрела», а позже расчёты продолжились на вступившей в строй в 1958 г. машине М-20.

По одной из распространённых легенд, Шура-Бура стал прототипом персонажа романа братьев Стругацких «Понедельник начинается в субботу» по имени Роман Петрович Ойра-Ойра. Существовали и иные предположения. Например, авторы русскоязычной «Википедии» считают (без указания источника), что этим прототипом был другой известный советский учёный — математик Сергей Новиков[679]. Борис Стругацкий, однако, отрицал обе версии, сообщив, что Роман Ойра-Ойра — герой без прототипа[680].

Братьям Стругацким, безусловно, удалось создать на страницах «Понедельника» целый ряд архетипических образов советских учёных. Их произведение передаёт дух, настроения, привычки и проблемы, характерные для научно-технической интеллигенции середины XX в., именно поэтому людей и коллективы, которые теоретически могли бы быть прототипами персонажей «Понедельника», мы можем найти где угодно. Быть может, НИИЧАВО — это лебедевская Феофания? В конце концов, она находилась неподалёку от Лысой Горы, а отчество смотрительницы музея Наины Киевны Горыныч является отсылкой к Киеву, в предместьях которого и располагалась обитель создателей МЭСМ! Высказываются и такие предположения[681], [682].



Смелые эксперименты в области ИИ, которые ставились как в СССР, так и в США в 1950−1970-е гг., проходили в удивительной среде и совершенно особой атмосфере. В США в области компьютерных разработок сформировалась субкультура хакеров[683], в Советском Союзе её приблизительным аналогом можно считать субкультуру кибертонцев.

В 1957 г. на базе лаборатории вычислительной математики и техники Института математики АН УССР — той самой лаборатории Лебедева — был создан Вычислительный центр АН УССР, преобразованный в 1962 г. в Институт кибернетики АН УССР. Его директором стал советский математик и кибернетик Виктор Глушков, будущий академик АН СССР. В то время средний возраст сотрудников Института кибернетики составлял примерно 25 лет, Глушков был самым старшим — ему было «целых» 39 лет[684]. Одним из многочисленных шуточных изобретений молодых сотрудников института стала виртуальная страна Кибертония, «обнаруженная» «нашими фантастами и художниками» в ходе подготовки к новогоднему вечеру в декабре 1962-го.

Первое заседание-презентация страны прошло в помещении Киевского театра юного зрителя, которое арендовали для проведения новогоднего вечера. Веселье начиналось уже на входе: чтобы попасть в Кибертонию, требовалось пройти через лаз в деревянном заборе. В Кибертонии имела хождение собственная валюта — кибертина (или просто «киба») из «Кибербанка». Поначалу каждую купюру вырезали из картона, присваивая ей уникальный номер и заверяя печатью комсомола. Позже кибертины стали изготавливать из перфокарт. Кибертинами гости оплачивали различные аттракционы: «Киберзагс», «Кибермаг», «Кибермахерская», «Киберробот», «Бар Дель Рио» (конечно, это название обыгрывалось как «бордель „Рио“»), «Предсказатель судьбы — Зодиак-13».


Рис. 68. Объявление о представлении страны Кибертонии на новогоднем вечере в декабре 1962 г.

Весьма популярным был аукцион, на котором разыгрывались всевозможные предметы, начиная от булыжника в обёрточной бумаге и заканчивая абстрактными картинами художника-любителя Георгия Донца из «Киберландской академии антихудожеств». Проходили конкурсы «Выборы дона Кибертона и синьорины Кибертины», «Мисс Кибертонии», в ходе которых претендентам, дабы заслужить симпатии жюри и зала, нужно было отвечать на различные каверзные вопросы.

Слава о Кибертонии распространилась по всему околокавээновскому молодёжному Киеву. Компания кибертонцев привлекала элитарностью и близостью к технологиям будущего — искусственному интеллекту и роботам. В декабре 1963 г. кибертонцы выступали уже в Октябрьском дворце — самом большом культурном центре Киева[685]. Кибернетики выпускали собственные газеты — «Импульс», «Вечерний Кибер», а любительская киностудия института снимала фильмы[686]. В одном из них иностранный шпион тайком проникает в Советский Союз, чтобы добыть секреты Института кибернетики. Поскольку здание института в те годы ещё не было достроено, коллектив временно размещался в небольшом доме на улице Лысогорской. Из-за нехватки места машинисток посадили в помещении, в котором до недавнего времени находился туалет. Киношный шпион проникает в институт и обнаруживает, что девушки работают за печатными машинками, устроившись на унитазах. Потрясённый этим открытием, иностранный агент немедленно пошёл сдаваться майору Пронину[687].


Рис. 69. Номер газеты «Вечерний Кибер»

Посетителям новогодних вечеров «Советом Роботов Кибертонии» выдавался паспорт Кибертонии (а парам — брачное свидетельство), в котором были приведены пять статей Конституции Кибертонии, принятой 28 декабря 1963 г.


Рис. 70. Паспорт Кибертонии

Кибертония не исчерпывалась новогодними праздничными вечерами и репетициями. В течение года в Кибертонии проходили шуточные научные семинары. Их участники под псевдонимами выступали со смешными докладами и печатали сборники тезисов. К примеру, симпозиум «Смеховедческие проблемы кибернетики», который прошёл в апреле 1969 г., включал такие темы докладов: «К вопросу об экономической эффективности смеха», «Проблема в системе „человек — машина“», «К теории простецких автоматов». Помимо шуточных симпозиумов, Советом молодых исследователей Института кибернетики проводились и серьёзные молодёжные конференции, а также научно-популярные мероприятия, посвящённые кибернетике и ЭВМ[688].

В общем, при Глушкове околокомпьютерная культура, ростки которой дали первые всходы в украинской лаборатории Лебедева, создавшей МЭСМ, расцвела буйным цветом. А в это время в Москве под руководством самого Лебедева, ставшего теперь директором ИТМиВТ, велась разработка новых вычислительных машин. Одной из машин стала М-20, главным конструктором которой был сам Лебедев, а его заместителями два Михаила — Сулим и Шура-Бура.

Под руководством последнего двое молодых учёных — Марат Евграфов и Игорь Задыхайло — вели работу над созданием одной из первых советских шахматных программ. В обсуждении алгоритмов, положенных в основу программы, также принимал участие Вольдемар Смилга — впоследствии известный физик и популяризатор науки, автор ряда научно-популярных статей о шахматном программировании[689], [690]. В своей статье в журнале «Проблемы кибернетики» № 15 за 1965-й Евграфов и Задыхайло не только описывают некоторые алгоритмы, лежащие в основе их программы, но и приводят фрагменты машинного кода программы для М-20[691]. За их успехами с интересом следят не только программисты, но и шахматное сообщество. В 1961 г. в «Бюллетене Центрального шахматного клуба СССР», посвящённом матчу-реваншу за первенство мира между Михаилом Талем и Михаилом Ботвинником, вышла статья под названием «„Лучший ход“ — за 58 секунд», в которой рассказывалось о программе, созданной советскими программистами, и были приведены две партии, сыгранные программой против людей — «Новичка» (анонимной сотрудницы института, только что научившейся играть в шахматы) и «Любителя». В первой партии программа одержала победу, во второй — потерпела поражение. Из статьи мы узнаём, что программа пока что не обучена делать рокировку, а также о принципах оценки позиции, которые включают в себя оценку материала (девять с половиной пешек за ферзя, пять — за ладью и три с половиной — за лёгкую фигуру), мобильности, атаки на фигуры и пешки, а также их защищённость, степень продвинутости пешек, положение в центре, связки и пешечное прикрытие короля[692].

4.5.5 Первые матчи шахматных программ и история «Каиссы»

И всё-таки самым известным советским проектом в области компьютерных шахмат стала программа, созданная другим творческим коллективом. В начале 1960-х гг. одна из машин М-20 оказалась в распоряжении Института теоретической и экспериментальной физики (ИТЭФ). Математическим отделом института руководил в то время Александр Кронрод — ученик знаменитого академика Лузина. Участник боёв под Москвой в 1941 г., Кронрод получил на фронте два ранения и за проявленную храбрость был награждён орденом Красной Звезды. Вернувшись с фронта, Александр Семёнович продолжил своё обучение на механико-математическом факультете МГУ, где под руководством Лузина создал теорию функций двух переменных. Эта работа легла в основу его кандидатской диссертации, блестяще защищённой в 1949 г. По итогам защиты Кронроду присуждена степень доктора физико-математических наук, минуя степень кандидата. Официальными оппонентами Кронрода на защите были академики Мстислав Келдыш и Андрей Колмогоров, а также профессор Дмитрий Меньшов.

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

Карьера Кронрода в области вычислительной математики началась в 1945 г., когда он, будучи студентом четвёртого курса, устроился на работу в вычислительный отдел Лаборатории № 2 АН СССР (сейчас — Национальный исследовательский центр «Курчатовский институт»). Кронрод был женат, в 1943 г. у него родился сын, и молодая семья нуждалась в жилье и дополнительных источниках дохода. По воспоминаниям коллег, Кронрод ничего не делал спустя рукава, поэтому занялся вычислительной математикой всерьёз и вскоре обнаружил, что это весьма интересная область‚ во многом отличная от чистой математики.

Арсенал вычислительной техники, доступный советским учёным во второй половине 1940-х гг., включал в себя электрические арифмометры, табуляторы и механизмы для сортировки перфокарт. Вскоре Кронрод познакомился с талантливым инженером Николаем Бессоновым, который из нескольких табуляторов и сконструированного им релейного умножающего устройства создал своеобразный «комбайн», способный решать более сложные вычислительные задачи. Успех этого проекта натолкнул Бессонова и Кронрода на мысль о создании универсальной цифровой вычислительной машины с программным управлением. Проект такой релейной вычислительной машины (РВМ-1) был принят к производству. В конструкцию машины были заложены оригинальные и весьма передовые идеи, например каскадный метод для осуществления параллельных расчётов. При этом важно учитывать, что Бессонов и Кронрод ничего не знали ни о работах Эйкена, ни о работах Цузе: первые западные публикации о вычислительных машинах стали известны в СССР только в конце 1940-х гг. Если бы РВМ-1 была построена в сжатые сроки, то, вероятно, могла бы соревноваться в скорости вычислений с первыми электронными машинами или даже превзойти их.

В 1949 г. Курчатов и Ландау порекомендовали Кронрода Алиханову, руководившему в тот момент созданием нового атомного института (позже получившего название ИТЭФ). Получив от последнего предложение возглавить математический отдел, Кронрод принял его и, перейдя во вновь сформированное учреждение, привёл с собой и Бессонова. Здесь они начали работы по постройке РВМ, которые, однако, продвигались мучительно медленно.

Существует мнение, что одной из главных причин медленного прогресса было недостаточно серьёзное отношение к проекту, вызванное его сравнительной дешевизной. Более умудрённые в управленческой магии коллеги советовали Кронроду ускорить производство, выполнив, например, контакты из золота: это не сильно улучшило бы качество машины, но сделало бы её дороже, что в итоге могло изменить отношение к ней. Однако Кронрод со смехом отвергал подобные советы. В результате, когда РВМ была построена, на сцену уже вышли электронные машины, и хотя РВМ и была способна состязаться с первыми из них, но у неё, конечно, уже не было будущего.

Кронрод был не из тех людей, которые рефлекторно цепляются за отжившие, пусть и дорогие лично им, идеи. Он быстро оценил преимущество электронных элементов перед релейными и активно включился в обсуждение конструкций первых ЭВМ. И всё же РВМ глубоко в душе осталась любимым его детищем — когда её демонтировали, на глазах Кронрода были слёзы[693]. Впрочем, век РВМ был не таким уж коротким — полностью завершённая в 1957 г. машина оставалась в строю до 1965-го. Благодаря исключительной надёжности машина оказалась весьма полезной для решения экономических задач, требовавших обработки больших массивов информации. В частности, именно на РВМ-1 выполнялись в 1961–1962 гг. расчёты цен по новой системе ценообразования[694].

За работы по численному решению физических задач, выполненные в 1950–1955 гг., Кронрод был удостоен Сталинской премии и награждён орденом Трудового Красного Знамени.

В 1955 г. отдел Кронрода получил в своё распоряжение первую ЭВМ, которой стала машина М-2, сконструированная коллективом под руководством Исаака Брука. Первые опыты с М-2 привели Кронрода к мысли, что вычислительные задачи — это не главное, для чего может быть употреблена ЭВМ. Главное — научить машину думать, решать творческие задачи. С этого момента одним из главных увлечений Кронрода становится область, получившая название «эвристического программирования». Вокруг Кронрода быстро формируется кружок учеников и единомышленников из числа математиков и физиков. В комнате, соседней с той, в которой стояла машина М-2, начал работать «кружок Кронрода». Здесь обсуждались методы распознавания образов‚ транспортная задача, задачи теории автоматов и многие другие. Кронрод предложил выбрать эталонную задачу‚ продвижение в решении которой позволяло бы сделать выводы о прогрессе, достигнутом в области эвристического программирования. Первой такой задачей стала карточная игра в подкидного дурака. Несмотря на кажущуюся несерьёзность, это — сложная игра, не имевшая разработанной теории и в то же время допускающая простое описание позиции, что было крайне важным в условиях дефицита памяти и вычислительной мощности машины. В процессе создания программы авторы выработали ряд общих принципов создания игровых систем ИИ.

И всё же программа для игры в подкидного дурака была слишком локальным явлением. Кронрод предложил использовать другую игру — шахматы, которые пользовались всемирной популярностью[695]. Но для реализации такого амбициозного для того времени проекта мощностей М-2 было явно недостаточно. Поэтому проект стартовал только вслед за появлением в ИТЭФ новой машины — М-20. Созданием шахматной программы занялись Владимир Арлазаров, Георгий Адельсон-Вельский, Александр Животовский и Анатолий Усков.

В 1965 г. в порядке международного обмена группа западных учёных посетила СССР. В составе весьма представительной делегации был и автор термина «искусственный интеллект» Джон Маккарти. Визит начался с участия в III Всесоюзном совещании по автоматическому управлению (технической кибернетике), которое было открыто 20 сентября в Одессе и продолжилось на борту парохода «Адмирал Нахимов»[696]. Затем был организован тур по советским научно-исследовательским институтам. Делегация посетила Киев, где состоялась встреча с академиком Глушковым и профессором Ивахненко, а также с директором Киевского института автоматики Борисом Тимофеевым. Также состоялись поездки в Тбилиси, где западных гостей встречал директор Института систем управления Академии наук Грузинской ССР Арчил Элиашвили. Грузинские учёные продемонстрировали зарубежным коллегам экспериментальную систему, способную распознавать произносимые вслух цифры, а также робота с голосовым управлением. Затем последовали визиты в Баку, Минск, Ленинград и Москву[697].

В Москве Джона Маккарти встретил его старый знакомый — академик Андрей Ершов. Ершов и Маккарти познакомились в декабре 1958 г. в Теддингтоне (Великобритания) на конференции по автоматизации мыслительных процессов. Вместе с Ершовым Маккарти отправился в Новосибирск, в Академгородок (Ершову стоило больших трудов согласовать этот визит), откуда через Москву вернулся домой[698]. О тёплых отношениях, сложившихся в ходе этой поездки между Ершовым и Маккарти, свидетельствует их переписка. Например, Маккарти пересылает Ершову слова одной из песен Боба Дилана, а сам просит Ершова прислать ему запись песни «Шла машина из Тамбова»[699]. Спустя три года Маккарти повторно посетит Академгородок, где проведёт два месяца в качестве сотрудника Вычислительного центра, прочитав курс по верификации программ в Новосибирском государственном университете[700].

За время поездки Маккарти познакомился с Кронродом и узнал о советских усилиях в области шахматного программирования, тогда же и родилась идея об организации первого международного матча: программа ИТЭФ против детища Маккарти.

Позже Маккарти вспоминал крылатую фразу Кронрода: «Шахматы — это дрозофила искусственного интеллекта». Рассуждая об этой фразе, он заметил, что, с одной стороны, шахматы совершенно очевидно не являются «дрозофилой» для всех областей ИИ, но, с другой стороны, и дрозофила не является «дрозофилой» для всех исследований в области генетики[701].

Матч между советской и американской шахматными программами начался в ноябре 1966-го и продлился около года: четыре партии игрались одновременно, а ходы программ передавались по телеграфу. Программа ИТЭФ одержала победу в матче со счётом 3 : 1 (две победы и две ничьих).

По оценкам гроссмейстеров Бронштейна и Таля, программа ИТЭФ играла в силу третьего шахматного разряда[702].

До наших дней сохранился интереснейший документ — исходный код шахматной программы ИТЭФ для машины М-20[703]: 121 страница бланков, заполненных машинными кодами, снабжёнными загадочными комментариями типа «Таня не журись», «шлёп», «дребедень», «пуп» и даже «ухуду пешки», в полной мере даёт представление о секретных техниках советских программистов 1960-х. На самом деле за этими словами нередко скрывались аббревиатуры названий соответствующих подпрограмм. Например, УХУДУ — подпрограмма упорядочения ходов, удовлетворяющих данному условию, ПУП — подпрограмма переупорядочения ходов[704], [705].



Команда Кронрода придерживалась подхода, который получил название «программирование в содержательных обозначениях». Этот метод, предложенный в 1953 г. Александром Брудно, предполагал использование для написания программ специальных бланков, в правой части которых записывались машинные коды, а в левой — соответствующие им команды в содержательной, удобной для чтения человеком форме[706]. Естественными противниками этого подхода были сторонники языков высокого уровня, таких как алгол, к числу которых относились уже знакомые нам академик Ершов, Владимир Курочкин (между прочим, автор знаменитой реализации Алгол-60 для машин БЭСМ, получившей прозвище «Алгол Курочкина»), а также Константин Семендяев, соавтор «Справочника по математике для инженеров и учащихся втузов», в народе называвшегося не иначе как «Бронштейн — Семендяев».

В 1960-е между сторонниками обоих лагерей разразилось эпическое сражение, выплеснувшееся на страницы периодических изданий в виде ряда писем, рецензий и статей[707]. Сторонники «программирования в содержательных обозначениях» настаивали на неэффективности кода, производимого компиляторами алгола, неудобстве отладки (важно понимать, что в 1960-е отладка программ, написанных на алголе, всё равно происходила в машинных кодах) и на том, что экономия, достигаемая за счёт автоматизации перевода программы из человеко-читаемой формы в машинный код, является эфемерной. Гораздо проще нанять кодировщиц, месячная заработная плата которых сопоставима с себестоимостью часа работы машины, которые будут переводить в машинный код «содержательные обозначения»[708]. В конечном счёте победа досталась сторонникам языков высокого уровня, хотя программирование в машинных кодах иногда применяется и в наши дни там, где важно добиться максимальной производительности программ. В частности, современные шахматные программы нередко содержат вставки на языке ассемблера[709] или напрямую в машинных кодах.

К сожалению, в развитие шахматного проекта ИТЭФ вмешалась политика, и в этот раз, увы, вовсе не в позитивном ключе. В 1968 г. Кронрод стал одним из подписантов «Письма девяноста девяти» — коллективного открытого письма советских математиков в защиту своего коллеги Александра Есенина-Вольпина, принудительно помещённого в психиатрическую больницу в связи с его диссидентской деятельностью. Вероятно, это и стало причиной увольнения Кронрода и ряда его коллег из ИТЭФ. Адельсон-Вельский, Арлазаров и Усков перешли в Институт проблем управления АН СССР, где спустя некоторое время стартовала работа над новой шахматной программой, основанной на исходных текстах программы ИТЭФ. В её разработке участвовали Михаил Донской, Александр Битман, Андрей Леман, А. М. Бараев и Марианна Розенфельд. Последняя и предложила рабочее название программы: КВО, то есть программа, которая всех обыгрывает[710].

Аппаратной платформой для новой программы стал один из британских мейнфреймов ICL 4/70, закупленных СССР в начале 1970-х. Эта машина была совместима с IBM 360, при этом на неё не распространялись экспортные торговые ограничения времён холодной войны[711]. В те годы активно обсуждалась возможность широкой программы кооперации с компанией ICL, которая предлагала передачу СССР технической документации на машины, совместную работу над программным обеспечением, а также общий проект по созданию ЭВМ четвёртого поколения[712].

В 1972 г. программа, разработанная сотрудниками Института проблем управления, играла уже весьма неплохо, и газета «Комсомольская правда» предложила организовать на своих страницах товарищеский матч машины против читателей. Именно в ходе подготовки к этому матчу шахматный обозреватель «Комсомолки» Виктор Хенкин предложил дать программе имя «Каисса» в честь богини-покровительницы шахмат[713].

Забавно, что в некоторых источниках Каиссу называют «древнегреческой богиней шахмат» или «древнегреческой музой шахмат». Разумеется, это нонсенс. Прототип современных шахмат — индийская игра чатуранга (санскр. चतुरङ्ग; caturaṅga, от названия боевого построения, упоминающегося в Махабхарате), она возникла в Индии во времена правления династии Гуптов примерно в V в., то есть спустя шесть веков после завершения древнегреческого периода. На территории Греции эта игра под названием «затрикион» (zατρίκιον) появляется в византийский период, ещё несколькими веками позже[714]. Каисса — героиня одноимённой поэмы английского писателя-востоковеда Уильяма Джонса, написанной в 1763 г. и опубликованной в 1772 г. Сюжет поэмы незатейлив: Марс, пленённый красотой дриады Каиссы, смог добиться её взаимности лишь благодаря изобретению шахмат[715]. Вполне вероятно, что имя Каисса восходит к имени нимфы Скаккии (Scacchia) — героини опубликованной в 1527 г. поэмы Марко Джироламо Виды «Игра в шахматы» (Scacchia, Ludus) (шахматы в средневековой латыни обозначались словом scacci)[716]. Так что, вероятно, «Каисса» — это всё та же многострадальная «чатуранга», совершившая полное приключений лингвистическое путешествие.

Но вернёмся к матчу на страницах «Комсомольской правды». Его регламент был прост: матч состоял из двух партий, игравшихся с переменой цвета. На совершение хода уходила одна неделя. Ходы читателей выбирались путём голосования. В субботу в газете публиковалась очередная позиция, до вторника редакция получала письма, в четверг ночью «Каисса» «обдумывала» свой ответ. Матч продлился почти год — с января по ноябрь 1972 г. — и завершился победой людей со счётом 1,5 : 0,5[717].

Быстрое развитие вычислительной техники в 1970-е гг. на фоне высокого интереса к шахматам привело к стремительному расцвету шахматного программирования. С 1970 г. стартовал ежегодный Северо-Американский чемпионат по шахматам среди компьютерных программ. В первом чемпионате приняли участие шесть программ, а в 1973 г. — уже 12. Четыре первых года чемпионом становится программа под незамысловатым названием Chess, созданная студентами Ларри Аткином и Дэвидом Слейтом из Северо-Западного университета (Northwestern University, штат Иллинойс, США). Разработка программы была начата в 1968 г. Первоначально в число разработчиков входил также Кейт Горлен, но в 1970 г. он покинул команду. Первые версии программы (включая 3.6 от 1972 г.) относились к шенноновскому типу B, как и программа Маккарти. Обаяние идей Шеннона, который рассматривал тип B в качестве более совершенного подхода, похоже, владело умами американских разработчиков, в то время как ранние советские программы относились к более прагматичному на тот момент типу A.

Впрочем, весной 1973 г. Аткин и Слейт решаются на смену парадигмы. «Версия 3.6 стала окончательным результатом серии эволюционных изменений оригинальной программы и содержала в себе большую часть недостатков её первоначального дизайна. Chess 3.6 была, как динозавр, представителем вымирающего вида, — писали авторы. — Являясь по своей сути программой Шеннона типа B, она была основана на переборе „в глубину“ с альфа-бета-отсечениями и рассматривала более-менее фиксированные по длине варианты. Примитивная функция оценки позиции использовалась для оценки терминальных узлов дерева и для выбора n лучших ходов для дальнейшего изучения. Элементарных оценки и перебора Chess 3.6 было достаточно для того, чтобы в большинстве случаев совершать ходы, выглядящие разумно, и не подставлять фигуры под одно-двухходовые угрозы. По всей видимости, этого хватало для того, чтобы играть в силу слабого третьего разряда [class C player] и какое-то время обыгрывать другие программы». Chess 4.0 и его наследники получили более простую модульную архитектуру и относились к шенноновскому типу A[718].

Матч 1967 г. и последующие публичные выступления советской шахматной программы подогревали желание организовать международные соревнования, и в августе 1974 г. Международная федерация по обработке информации (International Federation for Information Processing, IFIP) организовала первый чемпионат мира по шахматам среди компьютерных программ. Он состоялся в стокгольмском отеле «Биргер Ярл». Директором турнира был Дэвид Леви.

Из шестнадцати «приглашённых» программ за звание чемпиона мира в итоге сразилось тринадцать — четыре из США (Chess 4.0, CHAOS, Tech 2 и Ostrich), три из Великобритании (Master, Beal, A16chs) и по одной из СССР («Каисса»), Канады (Ribbit), Австрии (Frantz), Швейцарии (Tell), Норвегии (Freedom) и Венгрии (Papa).

Транспортировка мейнфреймов для участия в соревнованиях в 1974 г. представлялась не слишком реалистичной задачей — не только из-за высокой стоимости и сложности перевозки, но и из-за политических и бюрократических проблем. Использовать имевшуюся в Стокгольме машину ICL авторы «Каиссы» не могли из-за особенностей отечественной операционной системы, поэтому советская программа, как и многие другие, участвовала в соревновании по телефону. Работу операторов программ в машинных залах контролировали представители IFIP, они должны были следить за тем, чтобы никто не вмешивался в ход партий. В турнирном зале за шахматными досками с телефонными трубками в руках сидели авторы программ — регламент чемпионата требовал присутствия в зале одного из авторов программы. Оператором «Каиссы» в Стокгольме был Михаил Донской, а в Москве — Владимир Арлазаров. Ходы программ по громкой связи транслировались в конференц-зал ИПУ, где собирались болельщики.

Позже Донской вспоминал, что был единственным участником, претендовавшим на второе место в чемпионате (именно его он обещал тем, кто отправил его на соревнования), в то время как остальные претендовали только на первое. В результате всё обернулось ровным счётом наоборот: именно «Каисса» заняла первое место, выиграв все четыре турнирные партии (турнир проходил по швейцарской системе) и опередив на одно очко программы Chess 4.0, CHAOS и Ribbit. Поскольку «Каисса» и Chess 4.0 не пересеклись в ходе турнира, было решено организовать между ними отдельную игру, которая завершилась вничью. Донскому была вручена для «Каиссы» золотая медаль чемпиона мира среди шахматных программ, сданная потом на хранение в ИПУ. В годы перестройки её след затерялся в музеях шахматных клубов[719] (дорогой читатель или читательница, если вы случайно найдёте её, обязательно дайте нам об этом знать).

С чисто шахматной точки зрения первый чемпионат мира представлял не слишком впечатляющее зрелище — партии были полны ошибок, заметных даже шахматным любителям. В последнем туре «Каисса» встретилась с программой Ostrich. В ходе партии американская программа дважды упустила возможность выигрыша (в одном из вариантов она могла дать мат в шесть ходов) и в итоге потерпела поражение. В демонстрационной игре против Chess 4.0 «Каиссе» вновь повезло — противник также упустил победу[720].

Всё это было вполне ожидаемо: «Каисса» в ту пору играла, по оценке Донского, в силу слабого первого разряда[721]. Однако с научной точки зрения прогресс был огромным. Написанная на смеси фортрана и ассемблера «Каисса» была способна на своей машине просматривать лишь около 200 позиций в секунду (в миллион раз меньше, чем Deep Blue, созданный спустя 20 лет). Однако уже тогда её авторы смогли реализовать в ней алгоритмы, ставшие затем фундаментом шахматного программирования на многие десятилетия. «Каисса» была способна обдумывать ходы во время хода противника, рационально распределять время на обдумывание, использовала представление позиции на доске в виде набора 64-битных масок[722], использовала динамические эвристики для упорядочения ходов в дереве перебора (так называемая «служба лучших ходов» — прообраз современных методов сортировки вариантов), была оснащена дебютной библиотекой, в которой содержалось в общей сложности около 10 000 ходов для различных дебютных позиций, и использовала революционную технику сокращения числа перебираемых вариантов, получившую название «эвристика пустого хода»[723].

Суть этого метода заключается в следующем: если в некоторой позиции внутри дерева перебора передать очередь хода сопернику и проанализировать его ответы при помощи перебора с урезанной глубиной, то, если в результате обнаружится, что противник, несмотря на возможность выполнить ход дважды, всё-таки не смог найти ход-опровержение с достаточной оценкой, перебор в данной позиции можно завершить, вернув оценку, равную верхней границе. Конечно, в шахматах бывают ситуации, когда любой из возможных ходов хуже, чем отсутствие хода. Подобное положение называется цугцванг (от нем. Zugzwang — принуждение к ходу). Однако возникают они достаточно редко, и их возможное появление можно в ряде случаев предсказать при помощи дополнительных правил (например, не применять эвристику пустого хода в пешечных эндшпилях с блокированными пешками) или с использованием ещё одного «проверочного» шага перебора с ещё более урезанной глубиной рассмотрения вариантов.

Впрочем, сохранить лидерство в области компьютерных шахмат, как и в космической гонке, Советскому Союзу не удалось. В 1977 г. в Торонто Chess 4.6 берёт реванш и становится чемпионом мира. «Каисса» делит второе место с другой американской программой, уже знакомой нам Duchess из Университета Дьюка. В первом туре чемпионата в партии Duchess против «Каиссы» разыгралась настоящая драма: «Каисса» на ровном месте отдала ладью и проиграла, что многие зрители в зале посчитали проявлением ошибки в программе. Однако, когда после партии «Каиссе» предъявили позицию после ожидаемого от неё «правильного» хода, она продемонстрировала головокружительную комбинацию противника с жертвой ферзя, ведущую к неминуемому мату[724]. Ценой этого красивого поражения стала утрата чемпионского титула.

Третье и последнее выступление «Каиссы» на чемпионате мира состоялось в 1980 г., где она поделила 6–11-е места. Примечательно, что первое место в чемпионате досталось не Chess 4.9, которая была, наряду с «Каиссой», одной из двух главных претенденток на победу, а программе Кена Томпсона — Belle. Из 18 участников III чемпионата восемь были из США, трое из Великобритании и трое из Канады. Социалистический лагерь был представлен одной лишь «Каиссой»[725], [726].

В 1990 г. команда из девяти программистов, возглавляемая Донским, выпустила новую версию «Каиссы», написанную на языке Си для операционной системы MS-DOS. Обновлённая программа участвовала во Второй компьютерной олимпиаде, разделив 4–6-е места (из 11 участников)[727], [728].

Сегодня сложно дать однозначный ответ на вопрос о том, почему «Каисса» не смогла сохранить лидерство. Сами авторы считали, что дело было в отставании аппаратной базы: машина, которую использовала «Каисса», была медленнее, чем у конкурентов[729]. Кроме того, команда «Каиссы» щедро делилась алгоритмическими находками с сообществом шахматных программистов — принципы работы программы были детально описаны в ряде статей[730], [731], [732], [733], [734], а затем и в книге[735], посвящённой методам шахматного программирования. Нельзя исключать и влияние субъективных факторов: интересы разработчиков со временем меняются, на смену творческим подъёмам приходят творческие кризисы, разработчики могут свернуть на неправильный путь, теряя время на попытки развития непродуктивных идей, в конце концов, люди стареют и утрачивают энергию и задор, поэтому смену лидеров в том или ином направлении можно считать во многом естественным процессом.

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

4.5.6 Рассуждения о теоретической основе шахматного программирования и идеи Ботвинника

С 1970-х гг. создатели шахматных программ постепенно отходят от парадигмы, предложенной Шенноном. Можно ли сказать, что «Каисса» была программой шенноновского типа A, как её предшественница из ИТЭФ, или же она относилась к типу B? Ответ на этот вопрос не так прост.

С одной стороны, благодаря эвристике пустого хода или «модели активной игры», при использовании которой в некоторых узлах дерева перебора анализировались только «активные» ходы, программа исключала часть ветвей дерева из рассмотрения. В принципе, исключение ветвей происходит и при альфа-бета-отсечении, но оно, в отличие от упомянутых ранее эвристик, является «безопасным», то есть не может изменить оценку программой позиции по сравнению с полным перебором вариантов. Казалось бы, в силу селективности перебора «Каиссы» её следовало бы отнести к типу B, однако использование метода «итеративного углубления» приводит к тому, что ходы, отброшенные при анализе позиции на n-й итерации, могут быть изучены на (n+1)-й. В зависимости от особенностей реализации эвристика пустого хода может исключить некоторые ходы из перебора «безвозвратно», но это происходит не всегда. Словом, программы второго поколения, такие как «Каисса», активно использовали подход, при котором более перспективные варианты рассматривались более глубоко. Целый сонм правил управлял в таких программах принятием решений о сокращении или же, наоборот, продлении перебора для тех или иных ходов. Например, шахи, ходы пешек на предпоследнюю горизонталь, размены, взятия, приводившие к переходу в пешечный эндшпиль, иногда даже просто взятия могли увеличивать глубину перебора на один полуход или даже на нецелое количество полуходов, скажем на ½ полухода (к примеру, два взятия приводят к продлению перебора на один полуход). С другой стороны, для бесперспективных ходов глубина рассмотрения уменьшалась — под «сокращение» могли попадать «тихие» ходы в позициях с нехваткой материала (обычно трудно отыграть материал, совершая пассивные ходы — не совершая взятий, шахов или ходов проходных пешек), просто предположительно слабые ходы (например, помещённые в конец списка ходов эвристиками, отвечающими за упорядочивание ходов на основе статистических данных о том, как часто те или иные ходы становились лучшими в процессе перебора) и так далее. Второе поколение шахматных программ стало золотым веком изобретателей эвристических правил. Их создание часто ограничивалось только полётом фантазии: творческое озарение, поспешная реализация, несколько десятков (в лучшем случае) тестовых партий — и вот уже программа оснащена новым, доселе невиданным знанием. Этот подход не был уникальной чертой шахматного программирования — он был распространён в самых разных областях ИИ вплоть до конца 1980-х или даже до 1990-х. Сегодня мы часто называем этот период временем GOFAI — Good Old-Fashioned Artificial Intelligence (Старого доброго искусственного интеллекта). Этот термин был предложен профессором Джоном Хогландом в книге «Символьные вычисления. Искусственный интеллект: сама идея» (Symbolic Computation. Artificial Intelligence: The Very Idea, 1985) для обозначения символьного подхода в ИИ, доминировавшего в эти годы[736]. Сторонники этого подхода стремились изложить человеческие знания в виде наборов правил и алгоритмов.

На заре шахматного программирования бытовало забавное заблуждение о том, что программист не может создать программу, которая будет играть в шахматы сильнее своего создателя. Тьюринг сравнивал это с утверждением, что ни одно животное не может проглотить животное тяжелее себя[737]. Возражения Тьюринга, в его время разумеется, могли носить только теоретический характер — на протяжении многих десятилетий машины играли в шахматы на любительском уровне, выполняя для шахматных экспертов роль безропотных учеников, в точности следующих рекомендациям учителей. Проблема, как и в случае процесса обучения людей, заключается в том, что рассказ эксперта о своём методе вовсе не равен самому методу. Обычно человек способен отличить на картинке хрен от пальца, но стоит вам попросить его объяснить, как именно он это делает, а потом начать следовать описанному способу, как вы немедленно запутаетесь и в хрене, и в пальцах.



Однако вплоть до 1990-х гг. преимущество «человеческого» способа игры в шахматы было очевидным, а возможность изобретения принципиально иного подхода — нет. Именно поэтому, создавая шахматные программы, их авторы в той или иной мере пытались подражать в них игре людей. Шахматный мастер тоже просчитывает варианты, оценивает позиции. Более того, люди попытались разложить эту оценку на отдельные элементы задолго до появления даже проектов первых шахматных программ. Уже в XVII–XVIII вв. в работах мастеров итальянской шахматной школы, таких как Пьетро Каррера[738] и Джамбаттиста Лолли[739], мы встречаем попытки численной оценки относительной силы шахматных фигур. Задачу формализации оценки позиции и способа отбора вариантов для анализа нужно было выполнить для того, чтобы обучать начинающих шахматистов, и неудивительно, что наработанные методы легли в основу алгоритмов первых шахматных программ. Однако пионеры шахматного программирования немедленно столкнулись с тем, что многие, казалось бы, самоочевидные для людей понятия были определены недостаточно строго. Если с материалом всё было более-менее ясно, то понятия слабого поля, слабой пешки, защищённости короля, активности фигур было непросто переложить на язык строгой математической логики. Ещё хуже дело обстояло с отбором перспективных вариантов для анализа. Как выяснилось, этот процесс шахматные мастера осознают весьма слабо — выбор основывается на интуиции, являющейся порождением опыта, и эта самая интуиция оказалась совершенно неуловимой и каждый раз, подобно солнечному зайчику, ускользала от попыток описания на не терпящем неоднозначностей и сомнений языке математических формул. Впрочем, в те годы никто не знал наперёд, что эти отважные донкихотские попытки обречены на неудачу. Тем более что во главе этого направления стоял один из патриархов советской шахматной школы — Михаил Ботвинник, шестой чемпион мира по шахматам.

Интерес к компьютерным шахматам развился у Михаила Моисеевича довольно рано. В 1958 г. по приглашению гроссмейстера Макса Эйве, пятого чемпиона мира по шахматам, Ботвинник посетил Нидерланды, где стал гостем телепередачи, посвящённой компьютерам и перспективам их применения. На вопрос Эйве «Будет ли машина играть в шахматы сильнее человека?» Ботвинник не задумываясь ответил: «Да!»[740], [741]

Эйве был не только блестящим шахматистом, но и специалистом в области компьютерных технологий. В 1956 г. он занял пост консультанта в нидерландском отделении компании Remington Rand — одного из ведущих разработчиков первых ЭВМ[742]. Тремя годами позже Эйве стал директором Исследовательского центра по автоматической обработке данных, а ещё через два года — главой созданной Евратомом[743] комиссии, изучавшей шахматный потенциал компьютеров[744].

Вспоминая в книге «От шахматиста к машине» телеинтервью 1958 г., Ботвинник писал: «Известно, что всё начинается от Евы… Но в моей творческой деятельности многое начиналось не от Евы, а от Эйве. Именно он осенью 1934 года выхлопотал приглашение на рождественский турнир в Гастингс — это был мой первый международный турнир. И вот теперь после вопроса Эйве я стал думать, как же обучить компьютер хорошо играть в шахматы?»

В ноябре 1960 г. с подачи директора XIV шахматной олимпиады Герберта Гретца Ботвинник прочитал лекцию в Университете Гумбольдта[745], которая позже была опубликована в советской прессе под названием «Люди и машины за шахматной доской»[746]. В начале 1960-х активно обсуждался вопрос о том, можно ли создать машину, способную играть в шахматы на гроссмейстерском уровне. Первые программы играли на уровне слабых любителей, и было неясно, что именно нужно сделать для того, чтобы преодолеть этот разрыв. Было ясно, что задачу нельзя решить при помощи полного перебора (пусть даже и с альфа-бета-отсечениями) — количество рассматриваемых вариантов нужно было сокращать самым радикальным образом. При этом было понятно, что подобное агрессивное сокращение дерева перебора возможно лишь ценой заведомо «некорректных», потенциально опасных отсечений. Именно такого рода ошибки допускают люди-шахматисты, упуская в своём анализе тот или иной важный вариант. Гроссмейстер, рассчитывающий комбинацию из двадцати полуходов, анализирует разве что несколько десятков позиций. Но это значит, что его анализ включает лишь порядка одной из 1028 возможных альтернатив. Лучшие шахматные программы начала 2010-х гг., несмотря на все достижения в области селективного перебора, рассматривали примерно в миллион раз больше позиций для достижения того же результата.

Впрочем, в этих сравнениях есть достаточно много условностей. Под рассмотрением шахматистом той или иной позиции в ходе расчёта вариантов мы понимаем только сознательное рассмотрение, дипломатично умалчивая о том, что часть анализа происходит и на бессознательном уровне. Если шахматист оценил последовательность из нескольких взятий на некотором поле, значит ли это, что он рассмотрел соответствующее число позиций? Так же и при подсчёте количества позиций, принятых в рассмотрение машиной, существует множество разночтений в способах такого подсчёта. В зависимости от принятых соглашений число вариантов, рассматриваемых машиной, можно уменьшить или увеличить на несколько порядков. Кроме того, в определённых ситуациях оценочная функция может успешно подменять собой рассмотрение конкретных вариантов. Оценочные функции шахматных программ второго поколения могли включать в себя, например, «правило квадрата» — простой геометрический принцип, позволяющий оценить, успевает ли король перехватить проходную пешку в пешечном эндшпиле. Тот же результат мог быть получен анализом конкретных вариантов, причём в ряде случаев этот анализ нужно было бы осуществить на достаточно большую глубину. То же самое можно сказать о таблицах окончаний: программа просто извлекает из базы точную оценку позиции без всякого перебора. Обладая некоторой фантазией, можно представить себе сложную оценочную функцию, позволяющую эффективно заменить перебор вариантов. Например, в современных программах оценочная функция может ценить сильную атаку на короля или сильные проходные пешки куда выше, чем несколько лишних пешек или даже лишнюю фигуру, благодаря чему программа способна без глубокого перебора принять решение об осуществлении вполне «талевской жертвы» (Михаил Таль, восьмой чемпион мира по шахматам, любил острую игру и часто осуществлял некорректные жертвы. Однако при этом Таль часто побеждал, потому что противнику при ограниченном временном контроле и волнении опровергнуть такую жертву было непросто. Тогда говорили: «У соперников Таля всегда находится выигрыш, причём всегда… лишь в анализе после партии!»). Сам Таль относился к этому с присущим ему юмором: «Есть два вида жертв: корректные и мои!»[747] Также программы второго поколения могли включать в рассмотрение довольно длинные цепочки «форсированных» ходов, например шахов, взятий, превращений пешек и так далее. Поэтому даже программа ИТЭФ вполне могла найти сравнительно длинную выигрывающую комбинацию при глубине перебора всего в три полухода, если, например, после трёх «тихих» ходов следовала цепочка из десяти форсированных[748].

Однако Ботвинник был сторонником более решительного подхода. Будучи шахматным профессионалом высочайшего уровня, он был убеждён в том, что сможет изложить методы, применяемые шахматными мастерами, в виде соответствующих алгоритмов. Однако уже после первых шагов, сделанных в этом направлении, Ботвинник натолкнулся на целый ряд сложностей. Одной из первых его идей стало выделение «главного участка боя» (ГУБ) — множества фигур и полей, на которых идёт игра. Эту идею Ботвинник изложил Баширу Рамееву, главному конструктору ЭВМ «Урал», и в ответ на свои соображения получил убийственный вопрос: «А как вы будете определять этот самый ГУБ?»

Несмотря на первое разочарование, Ботвинник не был намерен сдаваться — предмет исследований решительно увлёк его. Ознакомившись с принципами работы ранних шахматных программ, он выдвинул ряд нетривиальных идей. Первой стало замечание о том, что шахматные программы ведут перебор вариантов, не имеющих определённой цели. Программа обрывает перебор варианта механически, достигая его максимальной длины, в то время как анализ варианта шахматным мастером обычно завершается позицией, в которой была достигнута или не достигнута изначально сформулированная промежуточная цель. В качестве такой промежуточной цели Ботвинник предлагал использовать выигрыш материала (т. е. фигур или пешек). Соответственно, идея в общих чертах заключалась в том, чтобы анализировать варианты, представляющие собой траектории перемещения атакующих фигур и «фигур-мишеней».

В 1965 г. во время визита в Москву Клода Шеннона, ставшего к тому времени знаменитостью среди советских математиков, Ботвинник встретился с американским учёным и сыграл с ним партию в шахматы[749]. Переводчиком на этой встрече был Лотфи Заде — американский математик и логик азербайджанского происхождения, автор термина «нечёткая логика» и один из основателей теории нечётких множеств. Москва 1965-го была полна американских информатиков.


Рис. 71. Встреча Шеннона (за шахматной доской слева) и Ботвинника (за шахматной доской справа), 1965 г.


Вот как вспоминал сам Ботвинник состоявшийся между ними диалог: «Цель игры — выигрыш материала. Это хорошо, — сказал Заде. — Но ведь целей и траекторий, по которым можно пробиться к этим целям, превеликое множество! Как же вы собираетесь ограничить информацию об этом?..

Я сказал Заде, что давно уже об этом думаю, даже знаю, как назвать это ограничение — „горизонт“ (Заде одобрил термин), но ещё его не формализовал…»[750]



Идея траекторий всерьёз увлекла Ботвинника. Вскоре он дал формальное определение «горизонта» (не путать с «эффектом горизонта»!) как предельно допустимого времени (в полуходах), которое дано для взятия неприятельской фигуры. Статья Ботвинника с описанием его идей после долгих споров была опубликована в «Бюллетене Центрального шахматного клуба СССР» в порядке обсуждения[751]. Идеи Ботвинника встретили достаточно жёсткую оппозицию со стороны математиков и программистов. Позже в своих воспоминаниях Михаил Донской назовёт поставленную Ботвинником задачу научить компьютер мыслить как человек безумной и неконструктивной[752]. Градус споров был вполне понятен — речь шла о том, на что следует расходовать машинное время, ценившееся в те годы на вес золота. Недостаточно формализованные идеи Ботвинника вызывали раздражение у большинства программистов: им было понятно, что для того, чтобы превратить идеи Ботвинника в чёткий алгоритм и работающий машинный код, нужно потратить много времени и сил, причём положительный исход этого вовсе не гарантирован.

Впрочем, сам Ботвинник был полон энтузиазма. Вот как вспоминает свою первую встречу с ним будущий двенадцатый чемпион мира по шахматам Анатолий Карпов:

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

— Не волнуйтесь, ребята! Сама по себе моя машина не заработает. В неё надо вдохнуть жизнь, вложить душу, а сделать это смогут только талантливые шахматисты — программисты. Вот вы и будете первыми[753].

В 1968 г. в издательстве «Наука» вышла книга Ботвинника, название которой — «Алгоритм игры в шахматы» — звучало как ответ критикам, однако, вопреки заголовку, книга не содержала законченного алгоритма шахматной программы. В предисловии к английскому изданию книги её переводчик Артур Браун, научный обозреватель газеты The New York Times, высказался о содержании следующим образом: «Я думаю, что эта книга является фундаментальной [seminal] работой. Как и все начала [seeds], она компактна, безотлагательна [urgent] и загадочна [cryptic]»[754]. Впрочем, в среде математиков и программистов нашлись и те, кто по крайней мере с осторожным энтузиазмом встретил идеи Ботвинника. К ним относились, например, выступивший в роли редактора книги уже знакомый нам Николай Криницкий[755], соавтор Анатолия Китова, а также новосибирский программист Владимир Бутенко, позже создавший собственную шахматную программу «Эврика»[756].

В числе тех, кто проявил интерес к идеям Ботвинника, был также член-корреспондент АН СССР Алексей Ляпунов, один из основоположников кибернетики, который пригласил Ботвинника выступить на семинаре в Новосибирском государственном университете. Вот что пишет об этой истории сам Ботвинник:

Каким образом узнал Алексей Андреевич о моей работе по шахматной программе — не знаю, скорей всего, от нашего общего друга Н. А. Криницкого. После того как в 1968 году вышла книжка «Алгоритм игры в шахматы», Ляпунов прислал письмо, где настаивал, чтобы я сделал доклад на его семинаре.

Это было весьма неожиданно. Большинство математиков относилось к моей работе с вполне обоснованным скепсисом: личность как шахматиста-профессионала, так и «электротехника-любителя» казалась им неподходящей для исследований в области кибернетики, а необычные идеи — более чем сомнительными. Лишь профессор Криницкий занимал чёткую и благожелательную позицию, но сколько часов мы затратили с ним на жаркие споры, прежде чем стали единомышленниками!.. И вот сам Ляпунов приглашает приехать в Новосибирск!

Доклад на семинаре был в сентябре 1969 года.

Дальнейшее развитие идей Ботвинника было связано (во многом под влиянием замечаний Ляпунова, сделанных им на семинаре) с введением понятия зоны игры[757]. Она включала в себя атакующую фигуру (для неё был придуман специальный термин — «комлевая», «комель» — это часть растения, рога, пера или волоса, прилегающая к корню), перемещающуюся по комлевой траектории с целью забрать фигуру-мишень, а также две команды «отрицающих фигур», действующих по «траекториям отрицания» и старающихся соответственно помочь либо помешать комлевой фигуре выполнить её задачу.

Как и в случае со многими другими эвристиками, расставить точки над i при оценке разумности применения эвристики может только вычислительный эксперимент. Конечно, при скрупулёзном анализе эвристик Ботвинника у программиста-практика неизбежно возникнет ряд вопросов. Например: если вариант в усечённом дереве игры заканчивается взятием фигуры-мишени, можем ли мы быть уверены в стабильности терминальной позиции? Что, если за этим взятием следует ответное взятие фигуры или даже хуже — мат? Как быть, если комлевая фигура в процессе перемещения по своей траектории перестала, например, защищать другую фигуру, будет ли взятие этой фигуры противником включено в зону игры? Работы Ботвинника не содержат ответов на эти вопросы, как и на многие другие. Но, быть может, при попытке практической реализации подхода Ботвинника можно было найти на все эти вопросы вполне разумные ответы?

В январе 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-х эра персональных компьютеров принесла с собой многократное удешевление машинного времени и во много раз увеличила число программистов. Это привело к двум важным последствиям. Во-первых, значительный прогресс был достигнут в области совершенствования средств разработки: появились удобные инструменты отладки, новые оптимизирующие компиляторы, общедоступные библиотеки функций — всё это позволило повысить качество программного кода, уменьшить количество рутинного труда при написании программ, облегчить процесс последующей их доработки. Во-вторых, программисты 1990-х уже могли себе позволить принятие решений на основе статистически значимых экспериментов. Добавив в программу новую эвристику или изменив значения того или иного параметра, программисты уже могли позволить себе тестовый турнир, в котором новая версия программы могла сыграть несколько сотен или даже тысяч партий. Этого было всё ещё недостаточно в ряде случаев, но по крайней мере позволяло избежать грубых ошибок.

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

Одновременно с развитием программ продолжалось совершенствование микропроцессорной техники. Закономерным продуктом симбиоза программных и аппаратных технологий 1990-х стал амбициозный проект компании IBM — шахматный суперкомпьютер Deep Blue.

История Deep Blue началась в 1985 г. с конфликта, возникшего между Хансом Берлинером и строптивым аспирантом по имени Фэнсюн Сюй по прозвищу Си-Би (англ. CB, сокращение от Crazy Bird — сумасшедшая птица)[763]. Казалось бы, что за пустяк? У кого только не было проблем с Берлинером? Даже президент Кеннеди пострадал от него: в своей знаменитой речи 26 июня 1963 г. он, произнеся по-немецки фразу «Я — берлинец» [Ich bin ein Berliner], якобы вставил в неё ненужный в данном случае артикль ein, тем самым превратив её в заявление «Я — берлинский пончик». Жаль, что это всего лишь городская легенда. А деятельного Ханса Берлинера уж точно никто не назвал бы пончиком. Этот человек сделал для компьютерных шахмат очень много.

Берлинер родился в 1929 г. в Берлине в еврейской семье. После прихода Гитлера к власти семья была вынуждена бежать из страны и переселиться в Вашингтон (Федеральный округ Колумбия, США). Проявивший незаурядный талант к шахматам, Ханс в 20 лет стал чемпионом округа, а спустя три года выиграл в чемпионате штата Нью-Йорк. В 1965 г. Берлинер победил в V Всемирном чемпионате по шахматам по переписке. В 1974 г. Ханс защитил диссертацию по информатике в Университете Карнеги — Меллона под руководством Аллена Ньюэлла (одного из создателей шахматной программы NSS). Диссертация была посвящена шахматному программированию и озаглавлена «Шахматы как решение проблем: разработка тактического анализатора».

Главным шахматным детищем Берлинера была программа HiTech[764]. Берлинер занимался шахматным программированием с начала 1960-х гг., когда работал в IBM, и, оказавшись в стенах университета, предложил проект по созданию новой продвинутой шахматной программы.

Первая версия программы демонстрировала неплохой уровень игры, однако испытывала трудности в момент перехода игры из одной стадии в другую (например, из миттельшпиля[765] в эндшпиль[766]). Это привело Берлинера к выводу, что слабость HiTech заключалась в недостаточной гладкости оценочной функции. Например, в миттельшпиле плохо защищённый король в центре доски — существенная слабость позиции, в то время как в эндшпиле централизованный король обычно является преимуществом. Но где проходит граница между миттельшпилем и эндшпилем? Программа, играющая за сторону, король которой хорошо защищён, в отличие от короля противника, будет стараться максимально оттянуть размен фигур, формально определяющий переход в эндшпиль, и тем самым может критически ухудшить свою позицию. Это было похоже на уже упоминавшийся нами «эффект горизонта» (этот термин, кстати говоря, ввёл Берлинер).

Берлинер уже применял идею повышения гладкости оценочной функции при создании программы для другой игры — нардов. Коэффициент ветвления игрового дерева в нардах существенно выше, чем в шахматах: в каждом из его узлов существует порядка восьми сотен альтернатив[767], причём многие из них равнозначны, так как связаны с различными равновероятными вариантами выпадения игральных костей. При таком обилии вариантов их перебор не может заметно улучшить качество выбора ходов программой, поэтому наличие эффективной оценочной функции является одним из ключевых факторов успеха. Программа для игры в нарды, созданная Берлинером в конце 1970-х, предназначалась для компьютера DEC PDP-10 и получила название BKG. Ранние версии BKG (вплоть до 8.0) играли в целом довольно неплохо, но всё же не могли соперничать с сильнейшими игроками-людьми. В очередной версии Берлинер решил применить новый подход, использующий нечёткую логику для определения фаз игры. Этот подход получил название SNAC (Smoothness, Nonlinearity, and Application Coefficients — «Гладкость, нелинейность и коэффициенты применения»). Использование этого подхода усилило программу в достаточной мере, чтобы Берлинер смог бросить перчатку действующему чемпиону мира по нардам Луиджи Вилле.


Рис. 72. Ханс Берлинер (на переднем плане) и Карл Эбелинг, разработчики программы HiTech, 1985 г.

В состоявшемся в 1979 г. матче BKG 9.8 выиграла у Виллы со счётом 7 : 1, став первой компьютерной программой, победившей чемпиона мира в какой-либо игре. Впрочем, Берлинер позже утверждал, что победа была в значительной степени обусловлена случаем, поскольку машине больше везло с выпадениями костей. По крайней мере, более поздний анализ показал, что игра Виллы была практически безупречной, в то время как программа в ряде случаев допускала ошибки (которыми Вилле не посчастливилось воспользоваться)[768].

В середине 1980-х Берлинер пребывал в расцвете своего творческого периода. В конце 1985 г. его программа HiTech заняла первое место на Шестнадцатом Северо-Американском чемпионате по шахматам среди компьютерных программ, в 1986 г. победила со счётом 2 : 0 международного гроссмейстера по шахматам среди женщин Яну Майлс, а двумя годами позже одержала победу в товарищеском матче со счётом 3,5 : 0,5 над 74-летним гроссмейстером Арнольдом Денкером.

Так какие проблемы могли возникнуть у всемирно известного специалиста с простым тайваньским аспирантом?..

В начале 1985 г. профессор Кунг, куратор (faculty advisor) Фэнсюна Сюя, попросил юношу помочь Берлинеру с одной из технических проблем. Обсуждаемое решение не нравилось ни Берлинеру, ни самому Сюю, который после некоторых раздумий пришёл к выводу, что корень проблемы кроется в самом подходе Берлинера. Фэнсюн предложил радикально новую конструкцию, основанную отчасти на идеях конкурентов мэтра, однако последний отверг подобную новацию. В ответ Фэнсюн Сюй в недипломатичной форме раскритиковал подход Берлинера и заявил, что утратил интерес к проекту. Мудрый Кунг постарался вразумить юношу, объяснив, что ему следовало бы проявить побольше такта. С учётом предшествующих проступков академическая карьера Фэнсюна Сюя была под угрозой, и Кунг настоял на том, чтобы Сюй подготовил детальное обоснование своей идеи в виде технического отчёта и устроил по нему презентацию. Так Фэнсюн Сюй очутился в дивном новом мире компьютерных шахмат[769].

3.5.8 Появление и развитие проекта Фэнсюна Сюя

Несмотря на исключительный авторитет Берлинера в области компьютерных шахмат, Фэнсюн Сюй осмелился вступить в спор с мэтром, и с этого момента в Университете Карнеги — Меллона появился второй шахматный проект — программа, получившая название ChipTest. Вместе с Фэнсюном над проектом работали Томас Анантараман и Мюррей Кэмпбелл. Основой ChipTest стал аппаратный генератор ходов — микросхема, разработанная Фэнсюном на базе СБИС-технологии (сверхбольшие интегральные схемы, Very-large-scale integration, VLSI). В отличие от HiTech, в котором за генерацию легальных ходов отвечали 64 микросхемы (по одной на каждое поле шахматной доски), Фэнсюну удалось запихнуть эту функцию в один CMOS-чип (Complementary metal-oxide-semiconductor, комплементарная структура металл — оксид — полупроводник), благодаря чему шахматная программа, выполнявшаяся на рабочей станции Sun-3/160, могла просматривать около 30 000 позиций в секунду[770]. Персональные компьютеры смогли достичь подобных скоростей лишь во второй половине 1990-х гг.

Публичный дебют ChipTest на XVII Северо-Американском чемпионате по шахматам среди компьютерных программ в 1986 г. оказался довольно скромным — 2,5 очка из 5 и 11-е место среди 16 участников[771]. Но Фэнсюн Сюй и его коллеги не собирались сдаваться. В августе 1987 г. после ряда доработок ChipTest был переименован в ChipTest-M (M означало «микрокод»). Новая версия не только содержала исправление ошибок, найденных в ChipTest, но и была в десять раз быстрее, просматривая 400 000 позиций в секунду на рабочей станции Sun-4. Заслуженной наградой для команды стала победа в Северо-Американском чемпионате по шахматам среди компьютерных программ 1987 г. со впечатляющим результатом — четыре очка из четырёх возможных.

Опыты с ChipTest открыли множество новых возможностей. Взвесив все pro et contra, Фэнсюн Сюй и коллеги приняли решение о разработке новой машины. Она получила название Deep Thought (произносится близко к «Дип Сот», переводится как «Великий думатель» или «Глубокомысленный») — в честь одноимённого компьютера из фантастического романа Дугласа Адамса «Путеводитель хитч-хайкера по Галактике». Первая версия Deep Thought — 0.01 — была готова в мае 1988 г., а версия 0.02 — в ноябре того же года. Новая версия имела два настраиваемых шахматных процессора на базе СБИС, аппаратную оценочную функцию, реализованную на основе FPGA-чипа (Field-Programmable Gate Array, программируемая пользователем вентильная матрица), и была способна просматривать 720 000 ходов в секунду. Именно эта версия в 1989 г. выиграла чемпионат мира по шахматам среди компьютерных программ, набрав пять очков из пяти (обогнав на полтора очка HiTech, разделившую 3−5‑е места)[772], [773].

Хотя за Deep Thought и закрепилась репутация машины, побеждающей благодаря «грубой силе», её алгоритмы вовсе не были примитивными. Более того, одна из немногих заметных алгоритмических инноваций в компьютерных шахматах, появившихся в 1980-е, — метод сингулярного поиска (singular search) — была изобретена именно командой Сюя. Идея заключалась в том, чтобы увеличивать глубину анализа для ходов, не имеющих сравнимой по оценке альтернативы. Благодаря этому методу, использующемуся и по сей день, машины способны более эффективно находить сложные тактические комбинации. Например, в одной из турнирных партий 1988 г. Deep Thought нашёл за доской форсированный мат в 19 ходов (что требовало нахождения варианта глубиной в 37 полуходов).

Прогресс в силе игры машин был очевиден. В январе 1988 г. чемпион мира по шахматам Гарри Каспаров, обладатель самого большого в мире рейтинга Эло в 2750 пунктов[774], отвечая в ходе своей конференции на вопрос о том, сможет ли компьютер до 2000 г. победить гроссмейстера в турнирной игре, был весьма категоричен: «Ни в коем случае, и, если у какого-нибудь гроссмейстера возникнут трудности с игрой против компьютера, я буду рад дать совет» (речь, разумеется, шла о классическом контроле времени — два часа на сорок ходов, поскольку в более быстрых форматах машины к этому моменту уже не раз одерживали победы над гроссмейстерами). Но если победа HiTech против Денкера в том же году ещё могла вызывать вопросы, то поражение Бента Ларсена в игре с Deep Thought, вкупе с многочисленными победами компьютеров над международными мастерами, обнажило очевидную истину — машины достигли гроссмейстерского уровня игры. Под влиянием неопровержимых свидетельств мнение чемпиона мира об игре компьютеров менялось в течение всего 1988 г. Если в начале года оно было в духе «компьютеры никогда не победят гроссмейстеров», то в середине уже — «компьютеры никогда не победят сильных гроссмейстеров», а в конце — «ну да, хорошо, Бент [Ларсен] — сильный гроссмейстер, но компьютеры никогда не победят Карпова или меня»[775].

И всё же в конце 1980-х Deep Thought ещё не был готов к сражению за шахматную корону. Состоявшийся в 1989 г. товарищеский матч из двух партий с Гарри Каспаровым был проигран машиной всухую (0 : 2). Этот же счёт был повторён в матче по переписке с международным мастером Майклом Вальво[776].

Успехи машин в игре против людей привлекали всё большее внимание прессы. Конфликт — отличный инструмент для привлечения медийного внимания. Из пыльного чулана был вновь извлечён старый, уже немного набивший оскомину жупел: противостояние Человека и Машины. Освещение первого демонстрационного матча с Каспаровым в этом смысле также не блистало оригинальностью.

В коротком интервью, предшествовавшем матчу, Каспаров сказал: «Значение этого матча простирается далеко за пределы шахмат. Это противостояние Человека и Компьютера. Сегодня, наблюдая стремительное развитие компьютеров, я думаю, многие люди испытывают страх, очень глубокий, но страх. Что-то вроде того: кто знает, возможно, в будущем компьютеры заменят нас, они будут контролировать нашу жизнь. И шахматы, вероятно, на сегодняшний день единственная область человеческой деятельности, где мы можем сравнить наши возможности и возможности компьютеров»[777].

Позже Сюй так описывал свои впечатления от этой речи: «Прямой эфир прошёл гладко. Гарри и Deep Thought сделали несколько символических ходов. Неудивительно, что оставшаяся часть интервью была посвящена Гарри. В конце концов, мы с Мюрреем были просто неприметными студентами, только что окончившими аспирантуру. Из слов Гарри у меня сложилось впечатление, что он видит себя в роли защитника человечества от машин. Но когда я посмотрел на своих коллег по команде, то увидел человеческие лица. Мы просто подходили к задаче игры в шахматы с, скажем так, нетрадиционной стороны. Возможно, Гарри требовалась накачка перед предстоящим матчем. Что ж, меня это устраивало»[778].

У Фэнсюна Сюя и его коллег были все основания для нелюбви к медиа. В декабре 1988 г. Deep Thought разделил с гроссмейстером Тони Майлсом первое место в Открытом чемпионате на приз компании Software Toolworks (The Software Toolworks Open Championship). Пресса отозвалась серией не слишком лестных отзывов на это событие. Доминик Лоусон из британского еженедельника The Spectator откликнулся статьёй, озаглавленной «Пентагон играет в шахматы» (The Pentagon plays chess). В ней автор безапелляционно заявлял, что проект Deep Thought финансируется DARPA (Defense Advanced Research Projects Agency, Управление перспективных исследовательских проектов Министерства обороны США) и преследует военные цели. Материал был проиллюстрирован изображением ракеты в форме шахматного ферзя[779]. Статья Чарльза Краутхаммера в The Washington Post начиналась словами «Новости из XXI века плохие» [The news from the 21st century is not good][780]. Обе статьи цитировали паническое высказывание английского гроссмейстера Найджела Шорта: «О боже! Может быть, мне стоит начать подыскивать себе вторую профессию. Почему эти люди пытаются испортить нашу игру? Это очень грустно и вгоняет в депрессию».


Рис. 73. Иллюстрация к статье Доминика Лоусона «Пентагон играет в шахматы»

Сюй считал, что поражение Deep Thought в мини-матче с Каспаровым в 1989 г. было вызвано двумя обстоятельствами. Во-первых, в программе обнаружилась ошибка, которая заставляла её оттягивать совершение рокировки: если рокировка была первой в цепочке анализируемых ходов, то все позиции в соответствующем поддереве оценивались как позиции с отсутствием рокировки, что снижало их оценку. Во-вторых, у Deep Thought оказалась слабая дебютная подготовка — сразу на выходе из дебюта машина оказывалась в невыгодных для себя позициях.

Вдохновлённые успехом Каспарова, попытать счастья с машиной Сюя захотели и другие шахматные профессионалы. Результаты оказались довольно любопытными. Из трёх смельчаков наиболее удачливым оказался двенадцатый чемпион мира Анатолий Карпов. Он сыграл с Deep Thought одну партию белыми фигурами и выиграл, хотя и не без труда. Матч из двух партий с немецким гроссмейстером Гельмутом Пфлегером завершился миром — две ничьи. Меньше всего повезло давнему обидчику шахматных программ — Дэвиду Леви. Его фирменная «антикомпьютерная» стратегия «ничего не делать, но делать это хорошо» [do nothing, but do it very well] не раз позволяла ему, не ввязываясь в тактические осложнения, переигрывать электронных соперников позиционно. В 1984 г. Леви с разгромным счётом 4 : 0 обыграл Cray Blitz, теперь же, спустя пять лет, с тем же разгромным счётом он сам потерпел поражение от Deep Thought.

В 1988 г. проектом Deep Thought заинтересовалась компания IBM. Создание компьютера, который смог бы победить чемпиона мира по шахматам, послужило бы компании дополнительной рекламой. IBM предложила Сюю, Кэмпбеллу и Анантараману должности в исследовательском центре компании для продолжения работы над проектом, и в 1989 г. разработчики перешли в IBM.

Вскоре после этого проект сменил своё название. О причинах переименования Сюй красноречиво рассказал на страницах своей книги: «Первый намёк на потенциальную проблему возник на турнире по компьютерным шахматам, в котором дебютировал Deep Thought, задолго до того, как мы начали переговоры о трудоустройстве с IBM. Это было на чемпионате, организованном ACM в 1988 году. Тони Марсланд, профессор Университета Альберты, вёл панельную сессию во время чемпионата, а я был одним из участников дискуссии. По какой-то неведомой причине, представляя меня, Тони использовал название Deep Throat [Глубокая глотка] как минимум три или четыре раза, хотя каждый раз сразу же исправлял себя»[781].

После матча Гарри Каспарова и Deep Thought жалобы на название программы поступали как изнутри, так и извне IBM. Оказалось, что существует множество людей, которые не могли не думать о «глубокой глотке», когда слышали название Deep Thought. Становилось всё хуже. Жена Мюррея Кэмпбелла Джина работала в католическом колледже. Президентом колледжа была пожилая монахиня, и во время разговора с Джиной она постоянно использовала название Deep Throat.

В качестве нового названия проекта было выбрано Deep Blue. Сам Сюй предпочитал вариант Blue Chips, но это название уже использовалось в одном из проектов IBM[782]. Новое название сохраняло преемственность по отношению к Deep Thought (позже слово deep нередко использовалось в названиях многопроцессорных версий различных шахматных программ — Deep Fritz, Deep Shredder, Deep Junior и т. д.) и в то же время удачно перекликалось с неофициальным прозвищем фирмы IBM — Big Blue.

Однако «настоящий» компьютер Deep Blue, основанный на платформе IBM RS/6000 SP2 и СБИС третьего поколения, сыграл свою первую официальную партию лишь в 1996 г.[783], а для первой появившейся в IBM стараниями Сюя и его коллег машины обычно использовалось название Deep Thought II (иногда — Deep Blue Prototype, а во время матча с датской национальной командой в 1993 г. — Nordic Deep Blue). Позже Сюй считал создание Deep Thought II отчасти ошибкой, поскольку эксперименты с ним оттянули на себя время и ресурсы, необходимые для создания главной машины, что, по оценке Сюя, привело к примерно двухлетней задержке в её создании. С другой стороны, именно благодаря Deep Thought II в составе команды появился Джо Хоан — разработчик программного обеспечения Deep Blue, пришедший на смену Томасу Анантараману и внесший очень важный вклад в последующий успех проекта[784].

В 1991 г. в немецком Ганновере на компьютерной выставке CeBIT был организован шахматный турнир из восьми участников: семь немецких гроссмейстеров и Deep Thought II. Это был сильнейший турнир, где участвовала компьютерная программа. Результат Deep Thought II оказался ниже среднего — только 2,5 очка из 7 возможных.

На той же выставке Гарри Каспаров давал сеанс одновременной игры. Принимавший участие в организации соревнований Фредерик Фридель решил воспользоваться случаем и устроить чемпиону мира забавный экзамен. Он показывал Каспарову записи партий каждого из первых пяти туров, а задачей чемпиона мира было находить среди других участников турнира партии Deep Thought. На изучение двадцати партий было отведено 30 минут. По словам Фриделя, Каспаров верно определил игры Deep Thought против Ханса-Ульриха Грюнберга и Вольфганга Унцикера, но не смог распознать его игры против Клауса Бишоффа, Эрика Лоброна и Уве Бёнша. Правда, Фридель заметил, что для партии программы из третьего тура Каспаров почти угадал: вначале он уменьшил число возможных вариантов до Deep Thought или Рая Тишбирека, но потом всё-таки сделал неправильный выбор в пользу партии Тишбирека. Этот случай Фридель счёл за «половину очка» и тем самым решил, что Каспаров угадал в 50% случаев. Хотя Каспаров не был хорошо знаком с игрой немецких гроссмейстеров, но он уже был очень хорошо знаком с Deep Thought. Таким образом, этот эксперимент показал, что, несмотря на часто встречавшиеся в прессе утверждения о «нечеловеческом» стиле игры компьютеров, отличить игру лучшего компьютера от игры лучших шахматистов стало довольно трудно даже Каспарову[785].

В том же 1991 г. на XXII международном чемпионате по шахматам среди компьютерных программ в Альбукерке (Нью-Мексико, США), организованном ACM (всё тот же старый добрый Северо-Американский чемпионат, который переименовали, чтобы подчеркнуть его международный характер), Deep Thought II стал безоговорочным победителем, набрав пять очков из пяти[786]. Скорость просмотра вариантов у Deep Thought II увеличилась по сравнению с его предшественником примерно в десять раз и примерно в те же десять раз превосходила скорость второго по производительности шахматного компьютера — Cray Blitz.

Надо отметить, что всё это происходило в тяжёлое для IBM время. В конце 1980-х развитие персональных компьютеров и сетевых технологий подорвало основной бизнес компании в области мейнфреймов, и, например, за шестилетний период, с 1987 по 1993 год, стоимость акций IBM упала на 77%. Ввиду этого компания запустила процесс масштабной реорганизации. Возглавлявший тогда компанию Джон Экерс рассматривал возможность продажи различных подразделений компании, включая IBM Research. Каждый исследовательский проект подвергался переоценке, и шахматы занимали весьма низкое место в списке приоритетов. Только в 1993 г., когда Экерса на посту генерального директора сменил Лу Герстнер, радикальные меры были отвергнуты. Шахматному проекту удалось выжить.

Дальнейшие результаты Deep Thought II были неоднозначными.

С одной стороны, победы над гроссмейстерами уже не были редкостью: помимо успехов в игре против немецких гроссмейстеров, машина набрала три очка из четырёх в матче против датской шахматной сборной, набрала полтора очка из четырёх в матче против Бента Ларсена, завершила со счётом 1 : 1 матч с австралийским гроссмейстером Дэррилом Йохансеном, обыграла в одной партии гроссмейстера Майкла Роде и со счётом 1,5 : 0,5 одолела Юдит Полгар — сильнейшую женщину-шахматистку. «Мне нужно немного попрактиковаться, и тогда я разберусь с этим!» — заявила Полгар после матча (дословно: I will kill it — «я убью это», но в английском языке kill it звучит не так агрессивно, как в русском, так что, возможно, не стоит подозревать Юдит в кровожадном настрое по отношению к машине).

С другой стороны, доминирование не было безусловным. Было ясно, что без доработок прототипу Deep Blue пока что рано претендовать на шахматную корону.

Ситуация также осложнялась успехами конкурентов. В первой половине 1990-х продолжалось совершенствование алгоритмов шахматных программ, благодаря этому победы над сильнейшими игроками-людьми стали под силу не только суперкомпьютерам. Например, в 1993 г. в Гарвардском кубке (Harvard Cup, турнир типа «человек против машины») игравшая на персональном компьютере программа Socrates Exp одержала победу над гроссмейстерами Майклом Роде и Александром Ивановым. Правда, партии игрались с ускоренным контролем (50 минут на партию), и всё же это был впечатляющий результат[787]. В том же соревновании программа MChess одержала победу над гроссмейстером Патриком Вольффом, а ChessSystem R30 выиграла у гроссмейстеров Майкла Роде и Ильи Гуревича[788], [789]. Таким образом, конкуренты наступали команде Сюя на пятки, что и показал в 1995 г. VIII чемпионат мира по шахматам среди компьютерных программ в Гонконге. Победу в нём одержала программа Fritz, игравшая на обычном персональном компьютере с 90 МГц процессором Pentium, а Deep Blue Prototype пришлось довольствоваться дележом 3­–5-го мест[790]. Команда, отправленная IBM в Гонконг для киносъёмки очередного триумфа сильнейшего в мире шахматного компьютера, была вынуждена снять фильм о его оглушительном фиаско.

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

Критически важным для команды Deep Blue было успеть получить новые СБИС, которые позволили бы многократно увеличить скорость машины, поскольку стало ясно, что Deep Thought II в его нынешнем виде вряд ли мог наравне состязаться с чемпионом мира. Это вскоре подтвердилось ещё одним обидным поражением — на этот раз от испанского гроссмейстера Мигеля Ильескаса со счётом 0,5 : 1,5. Причиной поражения стала ошибка в алгоритме распределения времени.

Предшествовать выяснению отношений с Каспаровым должен был ещё один матч с участием машины Сюя: на открытии нового исследовательского центра IBM в Пекине 25 сентября 1995 г. Deep Thought II должен был сыграть с Се Цзюнь — чемпионкой мира среди женщин.

Изначально предполагалось, что в этом матче будет принимать участие полноценная система Deep Blue, состоящая из тридцати компьютеров RS/6000, однако этому помешали задержки с изготовлением новых чипов. Когда по мере приближения даты матча стало ясно, что система не будет готова в срок, команда Сюя решила собрать упрощённый вариант системы, состоящий из одного компьютера. В итоге машина выступала в матче под названием Deep Blue Prototype, но на этот раз это был настоящий прототип будущего Deep Blue. Компьютер использовал одну плату шахматного ускорителя, оснащённую двумя шахматными СБИС.

Новые микросхемы и плата ускорителя были доставлены в исследовательский центр IBM имени Томаса Дж. Уотсона всего за несколько недель до начала матча. Новые СБИС были выполнены по технологии 0,6 микрона — в пять раз меньше, чем в микросхемах, использованных Сюем десятилетием ранее. Однако первые тесты показали наличие в чипах ряда дефектов. Чтобы компенсировать их, Сюй был вынужден перепрограммировать плату ускорителя, что стоило примерно двукратного замедления системы. Все изменения совершались в последний момент. В первой партии матча в системе произошёл сбой, и команда Deep Blue была вынуждена признать поражение. К счастью, во второй партии технических проблем не возникло, и Deep Blue Prototype смогла сравнять счёт — матч завершился с результатом 1 : 1. Трудно представить себе, какое количество седых волос прибавилось на головах участников команды Deep Blue в ходе этих событий.

Вдобавок ко всему организаторов матча заставил понервничать и сам чемпион мира. 11 сентября 1995 г. в здании Всемирного торгового центра в Нью-Йорке начался матч на первенство мира между действующим чемпионом мира Гарри Каспаровым и претендентом — Вишванатаном Анандом. После первых восьми партий, закончившихся вничью, Ананд выиграл девятую партию и захватил лидерство в матче. Каспарову, однако, удалось справиться с ситуацией, и матч завершился его победой со счётом 10,5 : 7,5.

В декабре того же года Каспаров сыграл матч из двух партий с Fritz — обидчиком Deep Thought II на чемпионате в Гонконге. Из-за ошибки оператора (в программу был введён неправильный ход Каспарова) Fritz проиграл первую партию, а вторая завершилась миром.

Больше ничто не препятствовало предстоящей схватке титанов[791].

3.5.9 Первый матч против чемпиона мира

Матч в Филадельфии (США) под эгидой ACM (1996 ACM Chess Challenge), намеченный на февраль 1996 г., должен был стать первым в истории состязанием, в котором человек и машина сойдутся за шахматной доской за звание чемпиона мира. Он состоял из шести партий, а правила были максимально приближены к тем, которые используют люди в аналогичных матчах. Игры должны были пройти при классическом временно́м контроле: каждому из игроков отводилось по два часа на первые 40 ходов партии, по часу на следующие 20 ходов и по 30 минут на оставшуюся часть партии, при этом неизрасходованное время на каждой из стадий игры переносилось в последующие стадии[792].

К моменту начала матча 32-летний Каспаров находился на вершине своей шахматной карьеры — став чемпионом мира в 1985 г., он за десять лет несколько раз успешно защитил свой титул, одержав, в частности, победы в матчах против Анатолия Карпова (1990), Найджела Шорта (1993) и Вишванатана Ананда, а его рейтинг Эло двумя годами ранее достиг рекордного значения среди всех шахматистов в истории — 2815 пунктов (хотя к моменту матча и снизился до 2775)[793].



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

Каспаров рассматривался ведущими шахматными экспертами в роли бесспорного фаворита матча. Троекратный чемпион Украины и США Лев Альбурт считал, что матч завершится со счётом 6 : 0 в пользу Каспарова[795]. В статье Майкла Антонова, опубликованной в третьем номере журнала Popular Science за 1996 г., было приведено мнение Дэвида Леви, который также считал, что Каспаров может выиграть матч со счётом 6 : 0. «Я бы поставил свою жизнь на это», — сказал Леви. В этой же статье цитировалось более осторожное предположение самого Каспарова, который предсказал счёт 4 : 2 в свою пользу. Менеджер проекта Deep Blue в IBM Си-Джей Тань, напротив, считал наиболее вероятным исходом матча 4 : 2 в пользу машины. Самым большим оптимистом в отношении силы игры Deep Blue был Монти Ньюборн — профессор Колумбийского университета, автор шахматной программы Ostrich и председатель Шахматного комитета ACM. Он считал, что компьютер победит со счётом как минимум 4,5 : 1,5[796].

Четвёртого февраля Каспаров прибыл в Филадельфию. Он только что закончил матч против сборной Бразилии и собирался отдохнуть несколько дней, прежде чем приступить к делу. В Филадельфии Каспарова сопровождала солидная группа поддержки, в которую входил среди прочих компьютерный консультант чемпиона мира Фредерик Фридель. ChessBase и Каспарова связывали довольно тёплые отношения. Программа Fritz, недавний обидчик Deep Thought II, — один из продуктов ChessBase, должна была играть в матче роль «компьютерного комментатора». Для демонстрации оценок Fritz в зале было установлено специальное табло[797].

История Fritz весьма примечательна. Создатель программы Франц Морш стал известен в мире компьютерных шахмат после того, как его первая программа — Nona — дебютировала в 1983 г. в III чемпионате Нидерландов по компьютерным шахматам (Dutch Computer Chess Championship), где заняла почётное четвёртое место среди четырнадцати участников. Год спустя Nona заняла на этом же чемпионате второе место, а в 1985 г. — первое. В 1989 г. очередная версия программы получила новое имя — Quest. В 1991 г. началось сотрудничество Морша с ChessBase. Код программы, изначально предназначенный для процессоров, совместимых с MOS Technology 6502, был перенесён на платформу Intel 8086, и появилась первая версия программы для MS-DOS, получившая название Fritz (или Knightstalker в США; по всей видимости, из-за опасения, что слово fritz имеет в США негативную окраску, поскольку использовалось для обозначения немецких солдат во время Второй мировой войны). Дальнейшее развитие программы осуществлялось при деятельном участии разработчика ChessBase Матиаса Файста, и в 1995 г. программа Fritz достигла максимума — описанной выше победы на VIII чемпионате мира по компьютерным шахматам. Сотрудничество Морша и ChessBase продолжалось 22 года, за это время было выпущено тринадцать версий Fritz для MS‑DOS, а затем и для MS Windows. После ухода в 2013 г. Морша в отставку под брендом Fritz выходят другие шахматные программы, не имеющие ничего общего с детищем Морша[798].

От лица людей в качестве комментаторов матча были выбраны международный гроссмейстер Яссер Сейраван и международный мастер Морис Эшли. Сейраван, сириец по происхождению, к этому моменту трижды становился чемпионом США (1981, 1986, 1989). В 1986 г. на XXVII шахматной олимпиаде в Дубае Сейраван одержал победу над Гарри Каспаровым, благодаря чему стал членом символического «клуба Михаила Чигорина», состоящего из шахматистов, выигравших хотя бы одну партию с классическим контролем в официальном соревновании у чемпиона мира в период обладания им этого звания[799].

Эшли — другой яркий американский шахматный талант. Уроженец Ямайки, перебравшийся в США в 12 лет, он проявил себя не только в роли сильного игрока, но и в качестве незаурядного шахматного педагога и одарённого комментатора. Спустя три года Эшли выполнит норму международного гроссмейстера и станет первым афроамериканским шахматистом, получившим это престижное звание[800].

Годом ранее Сейраван и Эшли успешно комментировали матч Каспарова против Ананда, и ACM решила привлечь их и к матчу Deep Blue.

Национальные флаги, которые часто размещают на столах во время крупных шахматных матчей, в данном случае были в общем-то необязательны, поскольку данный матч не был состязанием людей, представляющих за доской свои страны. Тем не менее, когда Каспаров запросил российский флаг, у команды Deep Blue не было иного выбора, кроме как запросить американский.

Ведущим мероприятия был Монти Ньюборн. Главным арбитром был назначен Майкл Вальво, а его помощником — Кен Томпсон. Каспаров опасался, что во время игры кто-либо может вмешаться в работу компьютера с целью оказать ему помощь, поэтому попросил Фриделя запросить у ACM наблюдателя для осуществления соответствующего контроля. Тань парировал это, высказав предположение, что Каспаров также может получать в ходе матча нежелательную помощь. В ходе последующих переговоров все согласились поручить Томпсону надзор над обеими сторонами.

Восьмого февраля команда Deep Blue прибыла на соревнования вместе с Джо ДеБласи — исполнительным директором ACM и бывшим сотрудником IBM, а также вездесущим Дэвидом Леви. На следующее утро состоялись официальная церемония открытия матча и пресс-конференция. И Гарри Каспаров, и Си-Джей Тань, выступавший от имени команды Deep Blue, выразили оптимизм по поводу собственных шансов. Затем Леви осуществил розыгрыш права выбора цвета в первой партии, который выиграл Каспаров, выбрав после этого чёрные фигуры.

В субботу, 10 февраля, началась первая партия. Впрочем, не обошлось без досадной заминки. Каспаров прибыл на игру за несколько минут до её начала и, проверив, всё ли в порядке, сел за стол, чтобы собраться с мыслями. Когда в три часа дня Майкл Вальво пустил часы Deep Blue, то время пошло, а компьютер — не заработал! Главной проблемой Deep Blue была новизна системы: программа не была в достаточной мере протестирована, и, по всей видимости, в её нутре роилось множество ошибок, затаившихся в ожидании удачного момента. Сюю, впрочем, удалось быстро решить проблему, и игра началась ходом e2—e4. В ответ Каспаров выбрал свою любимую сицилианскую защиту. Машина была хорошо подготовлена к этому дебюту благодаря усилиям главного шахматного консультанта команды Deep Blue — гроссмейстера Джоэля Бенджамина. Каспаров быстро разыграл длинный дебютный вариант, но к 17-му ходу выглядел расстроенным. По слухам, глава Профессиональной шахматной ассоциации (ПША) Боб Райс сказал: «Теперь мы знаем, что Каспаров не нарочно корчит эти рожи, чтобы раздражать своих противников».

К 25-му ходу позиция была приблизительно равной. На 26-м ходу ферзь Deep Blue отправился в опасную экспедицию за пешками, ухватив пешку Каспарова на поле b6. На 29-м ходу Deep Blue прибрал к своим электронным рукам ещё одну пешку, что выглядело весьма сомнительно. Тем временем Каспаров готовил мощную атаку на, казалось бы, совершенно покинутого короля противника. Следующие десять ходов напоминали смертельный танец Холмса и Мориарти на краю Рейхенбахского водопада — малейшая ошибка каждой из сторон могла привести к неминуемому поражению. Победителем из схватки вышла машина, и на 37-м ходу Каспаров был вынужден капитулировать, при этом на его часах оставалось около шести минут до двухчасового контроля, в то время как у Deep Blue был ещё почти час в запасе: мало того что Deep Blue выиграл партию, он ещё делал ходы в среднем примерно в два раза быстрее, чем чемпион мира.

Исход игры ошеломил как самого Каспарова, так и весь шахматный мир. История свершилась. Deep Blue стал первым в мире компьютером, который заставил чемпиона мира признать поражение в официальном соревновании по классическим шахматам[801].

Пресса откликнулась на это событие в привычной для неё технофобской манере — статья в The Atlanta Journal-Constitution начиналась словами: «HAL был бы горд» [HAL would have been proud][802], [803].

Сайт матча не выдерживал нагрузки из-за притока посетителей. Вопреки первоначальным ожиданиям он стал на некоторое время самым популярным сайтом интернета, превзойдя даже веб-сайт игры за звание чемпиона Национальной лиги американского футбола (НФЛ)[804].

Победа вызвала невероятный эмоциональный подъём внутри команды Deep Blue. Но все понимали, что впереди было ещё пять игр. Будет ли удача сопутствовать компьютеру и впредь? Был ли Deep Blue действительно сильнее Каспарова? Поскольку игра должна была продолжиться на следующий день и времени на размышления было не так уж много, команда Deep Blue заняла позицию «давайте подождём и посмотрим ещё одну игру, прежде чем делать какие-либо выводы и предаваться чрезмерному оптимизму»[805].

Совсем другая атмосфера царила в лагере Каспарова. По словам Фредерика Фриделя, Каспаров, несмотря на мороз, решил поздно вечером прогуляться по улицам Филадельфии и во время прогулки спросил: «Фредерик, а что, если эта штука непобедима?»[806]

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

Обрадованный победой, Каспаров вышел к публике, которая встретила его стоя и с криками «браво!». Впечатлившись победой Каспарова во второй игре, некоторые наблюдатели пришли к выводу, что первая партия была счастливой случайностью, однако сам чемпион не относился к их числу. Он высказал ряд комплиментов игре Deep Blue: «Мы впервые играем не с компьютером, а с чем-то, что обладает собственным интеллектом». И затем добавил: «Мы столкнулись с новым качеством. Раньше мы играли с маленькими компьютерами, такими, как наши ноутбуки… это похоже на то, как если бы вы играли с пятилетним ребёнком, а теперь вдруг пришёл большой папочка».

Третья и четвёртая партии, несмотря на упорную борьбу, завершились вничью. Вслед за четвёртой партией, под конец которой чемпион выглядел выдохшимся, в расписании матча был предусмотрен однодневный перерыв. Каспаров хорошо понимал, что одним из его главных врагов является человеческая усталость: «Я действительно устал. Эти игры отняли много энергии. Если бы я играл в обычном человеческом матче, мой оппонент был бы так же измотан. Здесь же я имею дело со штукой, которая не выдыхается, а просто играет с постоянной силой. Она не становится сильнее, но не становится и слабее. И единственное, что я могу сделать, — это просто отдохнуть завтра, хорошо отдохнуть и поспать».

Внимание СМИ к матчу продолжало расти. Тань и Сейраван выступили в популярной телепрограмме «Час новостей с Джимом Лерером» (The NewsHour with Jim Lehrer). Карикатурист Дуг Марлетт из газеты Long Island’s Newsday изобразил битву Каспарова и Deep Blue, использовав отсылку к поединку между Джоном Генри и паровой дрелью из американского фольклора:


Джон Генри пробил пятнадцать футов,

Лишь девять прогрызла дрель.

Но, долбя что есть сил, сердце он износил

И слёг в земляную постель.

[John Henry, he drove fifteen feet

The steam drill only made nine.

But he worked so hard that it broke his poor heart

And he laid down his hammer and he died.]


Пятая партия стала переломной в матче. В ней Каспаров, игравший чёрными, отказался от сицилианской защиты и предпочёл разыграть русскую партию (известную также под названием «защита Петрова»), которая после ответа машины перетекла в дебют четырёх коней. Игра развивалась довольно спокойно, пока после 23-го хода Каспаров, неожиданно для команды Deep Blue, не предложил ничью. После непродолжительного совещания Тань принял решение последовать совету Бенджамина и отвергнуть предложение. Игра продолжилась, однако Каспаров быстро захватил инициативу и смог довести партию до победы. Счёт 3 : 2 в пользу Каспарова означал, что компьютер уже не сможет выиграть матч: в запасе оставалась последняя партия, которую машина должна была играть чёрными, и при наилучшем для неё раскладе команда Deep Blue могла рассчитывать максимум на ничейный результат в матче. Однако чуда не произошло — Каспаров выиграл и последнюю партию, позиционно переиграв противника в славянской защите[807].

Итак, матч завершился с точно предсказанным самим Каспаровым счётом — 4 : 2. Каковы были его результаты и последствия? Несмотря на поражение Deep Blue, акции IBM за время матча выросли на $5,62 — с $113,50 до $119,12, демонстрируя значительно лучшую динамику, чем ценные бумаги конкурентов: Intel и Microsoft. Разработчики машины постарались извлечь максимум пользы из поражения, сконцентрировавшись на устранении обнаруженных слабостей системы, — команде хотелось во что бы то ни стало выиграть следующий матч. Сюй считал, что тактические способности машины в ходе прошедшего матча были на высоте, а основной причиной поражения стала оценочная функция Deep Blue, в которой обнаружилось несколько дефектов. Например, штраф за «пойманного» в углу доски слона был слишком мал, а бонус за слона, находящегося на особом «слабом поле» противника, в некоторых случаях непомерно велик. Однако эти проблемы оценочной функции были, вероятно, лишь вершиной айсберга — кто знал, сколько ещё подобных дефектов скрывалось в недрах логики оценки? Ещё до матча в Филадельфии Сюй сделал ставку на автоматическую подстройку параметров оценочной функции. Этот подход был предложен Шенноном, и впоследствии разработчики ИИ для настольных игр неоднократно пытались воплотить его в жизнь, впрочем без видимых результатов. Возможно, дело было в нехватке вычислительных мощностей, а может быть — в недостатках конкретных алгоритмов или неточности их реализации. Так или иначе, команде Deep Blue хватило смелости для того, чтобы пойти по дороге, на которой никто до них не достиг существенных успехов. Идея заключалась в том, чтобы модифицировать параметры оценочной функции таким образом, чтобы программа при переборе на небольшую глубину успешно «угадывала» как можно больше ходов профессионалов из большой базы шахматных партий. После матча с Каспаровым Сюй провёл множество вычислительных экспериментов, в ходе которых обнаружил, что некоторые из параметров оценочной функции заметно отличались от экспертных оценок их значений. Последующий анализ этих находок совместно с гроссмейстером Бенджамином открыл путь к пересмотру некоторых элементов оценки.

3.5.10 Второй матч против чемпиона мира

Второй матч с Каспаровым должен был состояться в мае 1997 г. в Нью-Йорке, и у команды было не так много времени, учитывая необходимость создания новой версии СБИС. Поскольку у Deep Blue оценочная функция была реализована «в железе», её переработка требовала создания нового чипа. Кроме того, Сюй нашёл возможность выполнять отсечение некоторых «бессмысленных» ходов на этапе генерации их списка «внутри» чипа. Разработка улучшенной микросхемы в столь короткие сроки была весьма рискованным предприятием. У команды не было возможности как следует протестировать новый чип, поскольку программная эмуляция была чрезвычайно медленной — чтобы симулировать всего одну минуту работы чипа требовалось около двух лет вычислительного времени! В итоге не обошлось без косяков. В режиме генерации ходов с отсечениями, в некоторых позициях, где было возможно взятие на проходе, чип генерировал фантомных ферзей, размещая их на полях A1 и A8. Подобные ошибки всегда вызывают ассоциацию с анекдотом про человека, у которого при ударе монтировкой по голове развязывались шнурки[808]. Решение этой проблемы потребовало знатных плясок с бубном, но в итоге всё закончилось хорошо[809].

Призовой фонд матча 1997 г. был в два с лишним раза больше прошлогоднего: 1,1 млн долларов против разыгранных в Филадельфии 500 тысяч. Изменились и правила его распределения. Перед матчем 1996 г. Каспаров предлагал схему «победитель получает всё», но в результате переговоров стороны сошлись на варианте 4 : 1 (400 тысяч долларов победителю, 100 тысяч долларов побеждённому). В матче же 1997 г. призовой фонд разделялся в пропорции 7 : 4 — это свидетельствовало о том, что Каспаров уже не рассматривал своё поражение как крайне маловероятное событие[810].

Несмотря на весьма сжатые сроки, команде Deep Blue удалось достичь существенного прогресса. Экспериментальная версия машины, “Pico” Deep Blue Junior, основанная на одиночном шахматном чипе, работавшем в замедленном режиме и с отключенным режимом отсечения, была способна анализировать всего от 100 до 300 000 позиций в секунду, что соответствовало скорости самых быстрых персоналок того времени. Несмотря на это, по словам Сюя, она уверенно обыгрывала лучшие коммерческие шахматные программы. Оба мини-матча Deep Blue Junior (версия машины, обладавшая 1/10 скорости полной системы) против гроссмейстеров Ларри Кристиансена и Майкла Роде окончились со счётом 1,5 : 0,5. Причём в матче с Кристиансеном проявилась ошибка, из-за которой машина в один прекрасный момент выбрала случайный ход вместо сильнейшего — и в результате на ровном месте лишилась пешки. Однако благодаря своим тактическим умениям Deep Blue Junior удалось свести игру к ничейному результату[811].

Благодаря произведённым доработкам частоту шахматного чипа Deep Blue удалось увеличить с 16–20 МГц в версии, использовавшейся в Филадельфии, до 24 МГц. В январе 1997 г. IBM анонсировала новый процессор, Power Two Super Chip (P2SC) для RS/6000 на основе архитектуры RISC, с частотой 130 МГц, что сделало компьютеры, составляющие основу Deep Blue (всего их было 30), примерно в два раза быстрее по сравнению с теми, которые использовались годом ранее. Каждый компьютер был оснащён гигабайтом оперативной памяти.

Общим результатом всех усовершенствований стало увеличение скорости машины примерно в два раза, за счёт чего скорость перебора достигла примерно 200 млн позиций в секунду.

Эксперименты, проведённые Робертом Хайаттом, показывали, что для его программы, Crafty, удвоение скорости означало прибавку примерно в 100 пунктов рейтинга Эло. По всей видимости, эффект для Deep Blue должен был быть примерно таким же[812].

Каспаров, впрочем, тоже не сидел сложа руки. Если в 1996-й он вступил с рейтингом Эло, равным 2775 пунктам (Владимир Крамник имел такой же рейтинг, а Анатолий Карпов отставал всего на пять пунктов), то в январе 1997-го Каспаров со своими 2795 пунктами стал единоличным лидером рейтинг-листа FIDE, оторвавшись от ближайшего преследователя Вишванантана Ананда на целых 30 пунктов.

Перед началом матча-реванша было дано множество прогнозов. Знаменитый шахматный комментатор Шелби Лиман заявил, что «поставил бы свои деньги на Каспарова», с ним соглашался Яссер Сейраван: «Каспаров победит и выиграет быстрее и легче, чем в прошлый раз»[813]. Марк Сейлор, шахматный мастер и редактор раздела развлечений Los Angeles Times, писал: «Я прогнозирую, что Каспаров не просто победит, а победит без особого труда. Хотя об этом не говорят ни итоговый счёт, ни комментарии Каспарова о том, насколько изнурительным был матч. Он намерен в следующем году подбить IBM на ещё одну попытку с ещё одним выгодным для него призовым фондом». Он также добавил, что «до некоторых пор IBM продолжит использовать состязание человека и машины в целях пиара. Но, если компания в конце концов придёт к выводу, что Каспаров продуманно хитрит, она, вероятно, сдастся и сосредоточится на продаже большего количества RS/6000 для сетей продуктовых магазинов, чтобы компьютеры смогли вернуться к тому, для чего они предназначены». И наконец он озвучил характерное для того времени мнение, выдающее желаемое за действительное: «Современные программы в своём развитии вскоре выйдут на плато, обусловленное ограничениями вычислительной мощности при анализе игры»[814].

Дэвид Леви выдал прогноз с точностью до половины очка: «Я прогнозирую, что он выиграет по крайней мере со счётом 4,5 : 1,5. Каспарову будет легче применить на практике то, чему он научился в прошлый раз, чем команде Deep Blue»[815]. Жужа Полгар высказалась туманно: «Компьютер лучше, но Гарри тоже лучше» (The computer is better but Garry is better also)[816].

Сам Каспаров выразил уверенность в своих силах: «Я решительно намерен победить его», добавив: «Некоторое время мы ещё будем побеждать машины»[817].

Едва ли не единственными, кто считал, что у машины есть шанс, были члены команды Deep Blue.

В ходе предматчевой пресс-конференции один из репортёров спросил Каспарова, насколько сильным он считает Deep Blue по сравнению с коммерческими шахматными программами. Каспаров предположил, что Deep Blue выиграет восемь из десяти игр против лучших коммерческих шахматных программ. Однако в действительности примерно такие результаты демонстрировал “Pico” Deep Blue Jr, который был в тысячу раз медленнее полной версии машины. Услышав заявление Каспарова, Сюй пришёл к выводу, что тот серьёзно недооценивает силу игры машины[818]. В действительности дела, возможно, обстояли не столь просто. Рассуждая о силе игры человека или шахматной программы, мы неявно полагаем, что эта сила может быть представлена некоторым вещественным числом (например, рейтингом), то есть всех игроков можно расположить в виде точек на числовой прямой таким образом, что все точки левее данной будут соответствовать более слабым, а все точки правее данной — более сильным игрокам. Однако вполне возможна парадоксальная ситуация, когда игрок А будет систематически выигрывать у игрока Б, игрок Б — у игрока В, а игрок В — у игрока А.

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

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



В качестве места проведения матча-реванша был выбран AXA-Эквитебл-Центр (AXA Equitable Center) — небоскрёб в Среднем Манхэттене, расположенный неподалёку от Таймс-сквер. В этот раз организаторы уделили особое внимание вопросам безопасности — всего двумя месяцами ранее перед демонстрацией, организованной командой Deep Blue, участники конференции ACM были эвакуированы из конференц-центра Сан-Хосе из-за ложного сообщения о заложенной бомбе. Террористические атаки Унабомбера на американские университеты ещё были свежи в памяти общества, и возможная атака неолуддитов не оценивалась как совсем уж невероятное событие. У входа в комментаторский зал были установлены металлодетекторы, а все передвижения людей в здании тщательно контролировались. К счастью, самой серьёзной проблемой в области безопасности стали электронные письма злопыхателей.

Апелляционный комитет матча состоял из Томпсона, Вальво и Ньюборна, судить же матч должна была Кэрол Джарецки, которая в 1995 г. выступала в качестве арбитра в матче на первенство мира между Анандом и Каспаровым и заслужила доверие последнего.

На Кена Томпсона вновь была возложена обязанность наблюдать за обеими сторонами, чтобы гарантировать, что во время матча никто не взаимодействовал с Deep Blue или Каспаровым ненадлежащим образом.

Майкл Вальво, занимавший пост арбитра в Филадельфии, в этот раз по предложению IBM, согласованному с ACM и Каспаровым, сочетал две роли — комментатора и официального представителя матча. Таким образом, дуэт Сейравана и Эшли был превращён в трио, чтобы несколько уравновесить однобокую поддержку комментаторами Каспарова. Эшли вёл обсуждение, адресуя вопросы двум своим коллегам[819].

Как и в предыдущий раз, на игровом столе в качестве дани традиции были размещены российский и американский флажки. Новшеством стали высокотехнологичные шахматные часы, разработанные специально для Каспарова швейцарской часовой компанией Audemars Piguet. Часы позволяли использовать «фишеровский» контроль времени, то есть режим, при котором за каждый сделанный ход ко времени игрока прибавляется небольшой интервал для того, чтобы даже в цейтноте у игроков оставалось время на перемещение фигур. Впрочем, команда Deep Blue настояла на использовании того контроля времени, который был оговорён ранее, так как опасалась вносить изменения в программу в последний момент.

Цвета для вступительной игры были определены в ходе пресс-конференции за два дня до начала игры. Каспаров выбирал одну из двух идентичных коробок, в первой из которых находилась чёрная бейсболка команды New York Yankee, а во второй — белая. Каспарову досталась белая кепка и, соответственно, белые фигуры в первом раунде матча.

Первоначально предполагалось, что на пресс-конференцию придёт около ста журналистов, но пришло более двухсот, и зал был переполнен. В итоге пришлось перенести пресс-центр на другой этаж здания, в гораздо более просторное помещение. Матч был обставлен как грандиозное шоу, интерес к которому, по мнению одного из ветеранов IBM, превосходил все подобные мероприятия в истории компании, включая даже судьбоносный для неё запуск продаж IBM/360 в 1964 г.

Под проекционными экранами с правой стороны сцены была установлена полноразмерная модель одного фрейма (стойки) суперкомпьютера RS/6000 SP. Она представляла собой деревянный ящик размером с холодильник, возвышающийся примерно на два метра. Внутри такого ящика с лёгкостью мог бы поместиться и сам Каспаров. Настоящий фрейм вмещал до 16 рабочих станций RS/6000. После матча модель была на самолёте отправлена в Калифорнию для съёмки в рекламных роликах.

Первая партия матча началась в три часа дня третьего мая. Каспаров и Сюй, выполнявший роль оператора машины, обменялись рукопожатиями, позволили фотокамерам запечатлеть их улыбки и приступили к делу. В первой партии Каспаров выбрал белыми не самый популярный вариант дебюта Рети, стремясь испытать своего соперника. Чемпион придерживался типичной «антикомпьютерной» стратегии в полном соответствии с рекомендациями Леви — до 29-го хода ни одна из его фигур не покинула своей половины игровой доски. И эта стратегия принесла свои плоды. На 11-м ходу ферзь Deep Blue отправился на поле a5 — в тьмутаракань [Nowheresville], по меткому замечанию Ньюборна. Английский гроссмейстер Дэниэл Кинг назвал ход Фa5 «поистине уродливым ходом» [a truly ugly move]. Ни одна из протестированных мною современных шахматных программ не рассматривает этот ход в числе наиболее предпочтительных вариантов, но, судя по всему, после него далеко ещё не всё потеряно. Более того, позицию, сложившуюся перед 22-м ходом чёрных, современные программы оценивают скорее в пользу Deep Blue. Однако после неосторожного движения чёрной пешки на g4 и последовавших за этим нескольких ошибок спасти партию было уже довольно трудно, и после непродолжительной борьбы на 45-м ходу Кэмпбелл, сменивший после 40-го хода Сюя за доской, был вынужден признать поражение. Спустя пять лет Сюй считал критической ошибкой 36-й ход чёрных, однако современные программы полагают, что позиция была уже практически безнадёжной уже тремя ходами ранее.

Впрочем, ещё одно событие в первой партии матча, помимо проигрыша в ней, вызвало серьёзную обеспокоенность членов команды Deep Blue: 44-й ход машины, выглядевший как абсолютный нонсенс, был результатом застарелой ошибки в программе, которая, как казалось программистам, давно была исправлена. Теперь Сюю и его коллегам предстояло исправить ошибку на лету, в ходе матча, что было весьма рискованным предприятием. Однако этот ход, возможно, имел неожиданный побочный эффект. Увидев его, Каспаров озадачил свою команду вопросом: почему машина выбрала именно этот ход? Глубокий анализ показал, что имевшиеся альтернативы также вели к поражению. Каспаров предположил, что машина во время партии поняла, что все ходы проигрывают, поэтому неважно, какой именно ход будет выбран. Не исключено, что это привело к неправильной оценке им возможностей Deep Blue и повлияло на ход последующих партий.

Дебютом, разыгранным во второй партии матча, стала испанская партия. Чёрными Каспарову вновь удалось достичь закрытой позиции, и аудитория, находившаяся под впечатлением от первой игры, оценивала положение на доске как весьма невыгодное для машины. Однако в данном случае и Каспарова и комментаторов ждал сюрприз. Джоэль Бенджамин, заложивший в дебютную библиотеку Deep Blue варианты, относящиеся к испанской партии, был хорошо осведомлён о способностях машины в этом дебюте. Услышав критику позиции белых, Бенджамин решил выйти к публике, чтобы вставить шпильку Сейравану, однако пока он шёл из операторской комнаты в зал, комментаторы осознали, что не всё на доске столь уж однозначно, и начали оценивать позицию уже в пользу белых. После упорной борьбы Каспаров признал поражение, и счёт в матче сравнялся.

Интересно, что последующий анализ заключительной позиции второй партии показал, что при идеальной защите Каспаров вполне мог бы рассчитывать на ничью. Однако, по всей видимости, своё слово сказала усталость — недаром испанскую партию иногда называют «испанской пыткой».

Некоторые из ходов машины в партии вызвали у Каспарова подозрения. Почему компьютер не сыграл на 37-м ходу Фb6? Ведь этот ход, на первый взгляд, приводил к выигрышу материала и именно его предпочитали программы, используемые командой Каспарова для анализа позиций. После третьей партии Каспаров обратился к Томпсону, чтобы тот изучил файлы журналов машины для исключения версии о мошенничестве. Однако Томпсон получил затребованные данные только перед пятой партией матча. Кроме того, они включали в себя не полные файлы журналов, а лишь их фрагменты, касавшиеся ходов, которые Каспаров назвал подозрительными. Всё это ещё больше усилило подозрения Каспарова.

Большому спорту, и шахматам в особенности, всегда был присущ дух подозрительности соперников в отношении друг друга. В 1986 г. во время матча за звание чемпиона мира по шахматам между Карповым и Каспаровым последний пришёл к выводу, что один из его собственных тренеров передавал команде противника информацию о дебютных планах. Сначала он решил, что источником утечки был Геннадий Тимощенко, но, когда Тимощенко покинул команду после 12-й партии матча, по словам Каспарова, «чудеса продолжались», поэтому теперь подозрения пали на другого тренера — Евгения Владимирова. Проиграв три партии подряд, Каспаров озвучил Владимирову свои обвинения, и тот, хотя и отрицал обвинения, покинул команду. Вина Владимирова так и не была доказана.

Ещё раньше подозрения и скандалы были во время матча за звание чемпиона мира 1978 г. в Багио между Анатолием Карповым и Виктором Корчным. На игру Корчной привёз из Швейцарии своё дорогое оливково-зелёное кресло. Виктор Батуринский, входивший в команду Карпова, потребовал просветить кресло рентгеновскими лучами, чтобы убедиться, что в нём нет никаких запрещённых секретных устройств. Для воплощения этого требования в жизнь организаторам пришлось обратиться в больницу Багио, но в результате исследования не удалось обнаружить ничего, кроме поролона. Вероятно, в отместку Реймонд Кин, секундант Корчного, направил организаторам протест, когда Карпову дали йогурт во время игры, утверждая, что йогурт представлял собой закодированное сообщение. Кин писал: «Йогурт после 20-го хода может означать: мы рекомендуем вам играть на ничью; ломтики манго могут означать: мы рекомендуем вам отказаться от ничьей; блюдо с маринованными яйцами перепелов может означать: сделайте ход конём на g4 и т. д.».



Матч 1972 г. между Бобби Фишером и Борисом Спасским также не обошёлся без подозрений. The New York Times сообщила: Москва подозревает, что группа американцев использовала компьютер в Нью-Йорке, чтобы помочь 29-летней звезде США победить, — эти американцы якобы вводили ходы каждой из игр в компьютер, а затем во время матча передавали ответы машины Фишеру[820].

Возвращаясь к матчу Deep Blue — Каспаров, надо отметить, что команда Deep Blue опасалась, что Каспаров сможет, ознакомившись с отладочной информацией, выдаваемой машиной во время обдумывания ходов, лучше изучить своего противника и тем самым получить в игре решающее преимущество. Перед матчем Каспаров не раз выказывал своё неудовольствие тем фактом, что ему не дали возможности ознакомиться с тренировочными партиями Deep Blue. Осознавая тот факт, что профессиональные шахматисты умеют подбирать рецепты борьбы против конкретного соперника, команда Deep Blue стремилась минимизировать доступ Каспарова к значимой информации об игре машины, что, разумеется, лишь подпитывало подозрения. Как поэтически выразился Сюй: «Предоставление прямого доступа к игровым журналам Deep Blue было бы равносильно поднесению ему кремниевой головы Deep Blue на серебряном подносе вместе с 700 000 долларов в придачу». Сегодня, когда журналы матча с отладочной информацией Deep Blue обнародованы, причины выбора машиной смутивших Каспарова ходов вполне ясны: виной здесь был так называемый режим паники. Это ситуация, когда в процессе расчёта основного варианта наблюдается значительное падение его оценки по сравнению с первоначальной, в результате чего машина срочно переключается на менее исследованные варианты, и итоговый выбор хода машиной может оказаться необычным и странным[821]. Кроме того, ходы, вызвавшие подозрения чемпиона, не были решающими в игре.

Третья партия началась экстравагантным ходом Каспарова 1. d3 — это начало носит название «дебют Мизеса» в честь немецкого (а затем — британского) шахматиста Жака Мизеса и относится к числу так называемых неправильных начал, на долю которых приходится лишь около 0,3% партий в турнирной практике[822]. Каспаров решительно стремился избежать дебютных ловушек, подготовленных консультантами Deep Blue, и заставить машину принимать в дебюте самостоятельные решения.

Сам по себе ход 1. d3 не является катастрофически слабым и попал в число «неправильных» скорее из-за пассивности — совершая его, белые, по сути, уступают инициативу противнику. Хотя этот ход практически не встречается в играх шахматистов высокого класса, но по иронии судьбы миру компьютерных шахмат, да и самой команде Deep Blue, он был на тот момент уже хорошо известен: в 1984 г. Дэвид Леви в своём лондонском матче с Cray Blitz с успехом применил дебют Мизеса против программы Хайатта[823]. В 1991 г. машинам удалось отыграться, когда во время выставки в Ганновере Deep Thought разгромил Инго Альтхофера, опрометчиво начавшего партию ходом 1. d3[824]. Впрочем, при изучении этой партии трудно отделаться от впечатления, что белые разыграли её исключительно ради смеха. Этот мотив так и напрашивается при изучении научных работ немецкого учёного. Например, в 2013 г. он поместил ведро деталей от конструктора Lego в стиральную машину и стирал их 70 минут при температуре 40 градусов Цельсия без стирального порошка и отжима. Благодаря этому Альтхофер выяснил, какие структуры из кирпичиков образуются в этом случайном процессе. В статье «Случайные структуры на базе кирпичиков Lego и аналоговых процедур Монте-Карло» (Random Structures from Lego Bricks and Analog Monte Carlo Procedures), обобщающей результаты исследования, учёный также выдвигает предположение, что применение обычной стиральной машины к игрушкам может положить начало новому направлению в современном искусстве[825].

По словам Сюя, во времена Deep Thought его команда и сама применяла ход 1. d3 в игре против другой шахматной программы. Несмотря на всё это, комментаторы в зале были шокированы ходом чемпиона мира. Майкл Вальво воскликнул: «Боже мой!», Морис Эшли сказал: «Хитрый ход. Потрясение потрясений в этом матче. Теперь в этом матче есть всё». Яссер Сейраван сделал глобальные выводы: «Я думаю, теперь у нас есть новый дебютный ход».

Впрочем, после пятого хода Каспарова игра вернулась на проторённую дорожку дебютной теории, и на доске возникла позиция, характерная для английского начала. В середине игры Каспаров пожертвовал пешку, получив некоторое позиционное преимущество, которое ему, впрочем, не удалось реализовать. Он отыграл пешку, однако оборона чёрных устояла, и на 48-м ходу стороны заключили мирный договор[826].

Хотя результат третьей партии и не особенно повлиял на расстановку сил в матче, именно после неё конфликт между Каспаровым и командой Deep Blue перешёл в открытую фазу. На пресс-конференции, возвращаясь к событиям второй партии и рассуждая об одном из ходов машины, Каспаров сказал: «Он напоминает мне знаменитый гол, который Марадона забил в ворота сборной Англии в 1986 году»[827], [828]. Несмотря на изящную форму, реплика Каспарова прозвучала как прямое обвинение в мошенничестве. Атмосфера в матче 1997 г., в отличие от той, что сложилась в Филадельфии годом раньше, была далека от дружеской — сыграли роль и взаимные подозрения, и недвусмысленная ориентация команды Deep Blue на победу. В интервью The New York Times, предшествовавшем матчу, Тань прямо заявил: «Мы больше не проводим научный эксперимент. На этот раз мы просто будем играть в шахматы»[829].

Спустя двадцать лет после событий матча в Нью-Йорке Каспаров писал: «Меня спрашивали „Мошенничал ли Deep Blue?“ несчётное число раз, и я всегда честно отвечал: „Я не знаю“. После двадцати лет самокопания, анализа и изучения откровений участников событий мой ответ „нет“. Что касается IBM, я считаю, что всё то, на что они пошли ради победы, было предательством честной конкуренции, и подлинной жертвой этого предательства была наука». Мать Каспарова, Клара Шагеновна, высказалась ещё более категорично: «Это напоминает мне твой первый матч с Карповым. Тогда тебе пришлось сражаться не только с Карповым, но и с советской бюрократической машиной. А теперь, спустя тринадцать лет, тебе приходится биться с суперкомпьютером и капиталистической системой, которая использует свои методы психологической войны»[830].

Четвёртая партия матча началась обычным 1. e4 и перешла в защиту Каро — Канн. Вновь, как и в предыдущей партии, Каспаров удачно пожертвовал пешку и развил устрашающую атаку. В какой-то момент многим экспертам казалось, что позиция игравшего белыми Deep Blue не устоит.

В напряжённый момент в операторской комнате появился генеральный директор IBM Лу Герстнер, решивший навестить команду. Оказавшийся рядом репортёр The New York Times Брюс Вебер не преминул воспользоваться моментом и попросил у Лу комментарий, который на следующий день был напечатан в газете: «Я просто думаю, что мы должны рассматривать это как шахматный матч между величайшим шахматистом мира и… Гарри Каспаровым»[831].

К счастью для команды Deep Blue, машина смогла найти спасение в, казалось бы, безнадёжной позиции, в противном случае пафос комментария Герстнера оказался бы в комичном противоречии с результатом игры. Каспаров так вспоминал события четвёртой партии: «Создавалось впечатление, словно Deep Blue специально манил меня близкой победой, в то время как сам реализовывал план ничьей. Фигуры на доске постепенно редели, и из-за усталости расчёты давались мне всё тяжелее»[832]. Четвёртая партия стала также единственной партией матча, в которой Deep Blue пригодились эндшпильные таблицы. Их набор включал у машины все пятифигурные окончания и некоторое количество шестифигурных. В конце партии на доске оставалось восемь фигур, и многие ходы, выбранные машиной, опирались на оценки позиций из эндшпильных таблиц.

Также в данной партии случился следующий эпизод: после 43-го хода Каспарова у машины был только один возможный ход, однако произошёл автоматический перезапуск системы, и машина «задумалась». Удивлённый Каспаров поинтересовался причиной паузы, и хотя получил разъяснение, но позже он, по словам Сюя, жаловался на то, что «постоянные сбои» программы отвлекали внимание и вызывали подозрения.

Автоматический перезапуск Deep Blue был вызван специальным фрагментом кода, который отслеживал загрузку машины в ходе параллельного перебора и, если уровень загрузки падал ниже критического минимума, перезапускал машину. Этот механизм должен был предохранять систему от зависания в случае возникновения взаимных блокировок параллельных процессов. Такая ситуация уже была в третьей партии, но тогда перезапуск остался незамеченным для Каспарова и зрителей.

Предпоследняя, пятая партия матча, состоявшаяся после двухдневного перерыва, началась вариантом Кереса в староиндийской атаке. Аудиторию шокировал 11-й ход машины, когда чёрная пешка на королевском фланге внезапно бросилась в бой[833]. Комментаторы сочли это очередным нелепым компьютерным ходом, а вот Каспаров посчитал, что он как раз не был похож на компьютерный и скорее соответствовал манере игры весьма агрессивного шахматиста[834]. Последующий анализ показал, что ход не был ни особенно сильным, ни особенно «человеческим» — по крайней мере, в 1999 г., когда вопрос об этом ходе вновь всплыл в процессе публичного обсуждения, нашлась как минимум одна программа, которая предлагала в этой позиции сделать тот же самый ход[835]. Я не устоял от соблазна предложить позицию моей собственной программе SmarThink и среди первых предложений увидел тот же самый бросок пешки на h5. Правда, после более обстоятельного анализа SmarThink всё-таки склоняется к вариантам с ходом слона на поле a5 (с идеей перевести его на поле на c7 и лишь затем играть h5) или ходу пешки на поле a5, а затем переключается на ход ферзя на поле c7.

После избранного машиной Сюя хода h5 позиция долгое время оставалась примерно равной, но затем после нескольких позиционных ошибок Deep Blue вновь был вынужден обороняться. Компьютер добился ничьей благодаря угрозе вечного шаха королю Каспарова в тот момент, когда чемпион почти провёл свою пешку в ферзи. Второй раз подряд Каспаров испытал тяжёлое разочарование[836].

Итак, итог матча должен был определиться в последней, шестой его партии, которую Каспарову предстояло играть чёрными. Неслучайно споры о произошедшем в ней не утихают даже спустя два десятилетия. В варианте Стейница защиты Каро — Канн Каспаров на седьмом ходу вместо стандартного для этой позиции хода слона на d6 делает слабый и странный ход пешкой на поле h6, в ответ Deep Blue эффектно жертвует коня на поле e6, и уже после 19-го хода белых Каспаров был вынужден признать поражение[837].

Публика выдвинула несколько в разной степени правдоподобных гипотез о причинах выбора чемпионом своего седьмого хода в партии. Согласно одной из них, Каспаров под влиянием стресса и усталости просто перепутал последовательность правильных ходов в дебюте. Вторая гипотеза была основана на предположении, что Каспаров пытался заманить противника в ловушку, основываясь на недавней публикации в журнале о компьютерных шахматах, в которой утверждалось, что чёрные могут успешно защищаться после жертвы коня. Третья заключалась в том, что Каспаров выбрал защиту Каро — Канн в последнюю минуту и не был готов к последовавшему в партии сокрушительному удару[838].

Интересно, что современные ведущие программы выбирают ход со взятием конём на e6 практически не задумываясь: и Stockfish, и Komodo, и моя программа SmarThink выдают именно этот вариант с первых же секунд обдумывания, оценивая преимущество белых после него примерно в одну пешку. Но вот для Fritz Морша этот ход оказывается неподъёмной задачкой, Fritz 13SE (последняя версия программы, созданная Моршем) на современной персоналке не может найти этот ход даже после часа обдумывания. Делая ход h6, Каспаров, активно использовавший в своей подготовке Fritz, полагал, что компьютеру нахождение за доской жертвы коня на e6 просто не под силу, а при более спокойном ходе коня на e4 позиция будет складываться в пользу чёрных. Впрочем, мы не знаем, был ли способен Deep Blue найти этот ход во время матча, поскольку жертва коня на поле e6 была просто «домашней заготовкой» и содержалась в дебютной библиотеке машины.

Этот ход компьютера серьёзно подлил масла в огонь споров о том, была ли победа Deep Blue честной и бесспорной. Мигель Ильескас, входивший в команду Deep Blue, в своём интервью 2009 г. сказал: «Мы изучили все посредственные ходы, подобные 1. е4 а6 или 1. е4 b6, и постарались заложить в машину как можно больше заранее заданных ходов. Мы также добавили удар конём на е6 в защите Каро — Канн, причём сделали это как раз утром перед шестой партией. Да, тем утром мы сказали компьютеру: если Гарри сыграет 7…h6, отвечай 8. К:е6 и не смотри в базу данных. Просто играй, не думай… Это было трагедией для Гарри. Он перемудрил, решив, что машине в теоретической позиции предоставлена свобода выбора хода, который ей нравится, и что ей не понравится жертва фигуры. Он поставил на то, что машине ни за что не понравится жертва фигуры за пешку. И действительно, если бы мы дали ему свободу выбора, компьютер никогда бы так не сыграл. Но Гарри забыл, что в соответствии с контрактом мы имеем право вносить изменения в машину ежедневно. Поэтому машина взяла на e6 немедленно, и я помню лицо Каспарова: он был в шоке».

В том же интервью Ильескас упоминает, что IBM наняла русскоязычных охранников, которые должны были пересказывать команде Deep Blue разговоры на публике между Каспаровым и его тренером[839]. Каспаров утверждал, что, будучи в гостиничном номере, обсуждал со своей командой вариант, сыгранный позже в партии. Что, если и там кто-то мог подслушивать?

Впрочем, позже Джоэль Бенджамин опроверг утверждение Ильескаса в отношении шестой партии. По утверждению Бенджамина, он собственноручно добавил в дебютную библиотеку Deep Blue ход К:e6 ещё за месяц до матча, а вовсе не «в то самое утро» перед партией, как утверждал в своём интервью Ильескас[840].

Так или иначе, у Каспарова были вполне резонные поводы для подозрений.

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

Deep Blue больше ни разу не участвовал в соревнованиях, не сыграв более ни одной публичной партии ни против людей, ни против других компьютеров. В 2001 г. машина была окончательно отключена и затем разобрана, а её части были переданы музею Смитсоновского института и Музею компьютерной истории.

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

В ответ на слова Монти Ньюборна, сравнившего победу Deep Blue с полётом на Луну, Фредерик Фридель в интервью The New York Times сказал: «Победа Deep Blue над Каспаровым стала важной вехой развития искусственного интеллекта, но IBM совершила преступление, не позволив компьютеру играть дальше. Это всё равно что высадиться на Луне и сразу же вернуться домой, не оглядевшись вокруг»[841].

3.5.11 Компьютерные шахматы после Deep Blue

К счастью, IBM не была единственным создателем шахматных машин и программ, и после ухода Deep Blue со сцены прогресс не останавливался ни на секунду. Надежды некоторых шахматистов на то, что машины близки к выходу на плато уровня игры, не оправдались. Вскоре выяснилось, что для того, чтобы соревноваться с сильнейшими игроками-людьми, вовсе не нужны специализированные устройства, вполне достаточно обычных персональных компьютеров. В 1997 г. программа Rebel, созданная голландским программистом Эдом Шрёдером, со счётом 10,5 : 6,5 победила в матче гроссмейстера Артура Юсупова[842], а год спустя одолела одного из лучших шахматистов — самого Ананда — со счётом 5 : 3. Программа играла на обычном персональном компьютере, правда не все игры велись со стандартным турнирным контролем времени. Из восьми игр четыре были сыграны при блиц-контроле (5 минут каждому игроку плюс 5 секунд за каждый совершённый ход) — здесь программа победила со счётом 3 : 1. Ещё две партии были сыграны при ускоренном контроле (15 минут на партию у каждого игрока) — здесь преимущество программы также оказалось троекратным: 1,5 : 0,5. И наконец, оставшиеся две партии были сыграны при стандартном турнирном контроле (два часа на 40 ходов, затем час на доигрывание), здесь Ананду удалось склонить чашу весов в свою пользу — он выиграл одну партию, а вторая завершилась миром[843].

В 2002 г. новый чемпион мира по классическим шахматам — Владимир Крамник — сыграл вничью матч с Deep Fritz 7 (4 : 4)[844], при этом код программы был заморожен за пару месяцев до проведения матча, и копия программы была предоставлена Крамнику для подготовки. То есть Крамник получил возможность в течение двух месяцев практиковаться в игре против будущего противника[845].

В 2003 г. Каспаров сыграл два матча против шахматных программ. Первым стал январский матч против программы Deep Junior, созданной израильскими программистами Амиром Баном и Шаем Бушински. Он завершился счётом 3 : 3 — Каспаров выиграл первую партию, Deep Junior третью, а остальные игры завершились вничью[846]. Заметим, что скорость перебора Deep Junior во время матча составляла порядка 3 млн позиций в секунду, то есть почти в 70 раз меньше, чем у Deep Blue. В ноябре состоялся второй матч, в котором Каспаров в четырёх партиях сразился с X3D Fritz — версией Fritz, оснащённой интерфейсом, основанным на специальных очках, отображавших трёхмерный вид доски, а также голосовым интерфейсом для ввода ходов. Матч также завершился вничью — двумя результативными партиями и двумя ничейными[847].


Рис. 74. Каспаров в специальных очках, отображавших трёхмерный вид доски

В 2004 г. команда гроссмейстеров в составе Руслана Пономарёва, Весели́на Топалова и Сергея Карякина сразилась против команды машин в составе Hydra, Fritz 8 и Deep Junior. Матч закончился разгромом для команды людей: 8,5 : 3,5, единственной победой, записанной людьми на свой счёт, стала победа самого молодого участника, Сергея Карякина, над Deep Junior[848]. Год спустя попытать счастье против той же команды машин решила команда из трёх бывших чемпионов мира по шахматам по версии FIDE: Александра Халифмана, Рустама Касымджанова и уже знакомого нам по матчу 2004 г. Руслана Пономарёва, который в этот раз стал автором единственной победы людей. Итог матча — 8 : 4 в пользу машин[849].

В 2005 г. Hydra разгромила гроссмейстера Майкла Адамса со счётом 5,5 : 0,5[850], а в 2006 г. жертвой Deep Fritz со счётом 4 : 2 пал Крамник[851]. В конце нулевых годов лучшие программы достигли гроссмейстерского уровня игры на мобильных устройствах. В 2008 и 2009 гг. мобильная версия движка[852] Hiarcs, игравшая под управлением оболочки Pocket Fritz на мобильном телефоне, становилась победителем турнира Copa Mercosur в Буэнос-Айресе (Аргентина), причём по итогам турнира 2009 г., средний рейтинг участников которого составил 2389 пунктов, программа продемонстрировала «перформанс» (турнирный рейтинг) в 2898 пунктов, завершив турнир с девятью победами и единственной ничьей. В этом турнире поражение от программы потерпели оба участвовавших в нём гроссмейстера — Андрес Родригес Вилья и Сергио Слипак[853]. Движок Hiarcs 13, находившийся «под капотом» Pocket Fritz 4 в турнире 2009 г., перебирал всего около 20 000 позиций в секунду, используя 528 МГц процессор телефона HTC Touch HD, то есть уступал Deep Blue примерно в 10 000 раз[854].

С конца нулевых годов в матчах с шахматными программами людям стали предоставлять фору. В 2007–2008 гг. программа Rybka сыграла несколько подобных матчей, в которых противниками машины выступали гроссмейстеры Яан Эльвест, Роман Джинджихашвили и Вадим Милов. Фора обычно включала в себя пешку и дополнительный ход в начале игры. Эльвест и Джинджихашвили проиграли свои матчи[855], а Милов вышел из борьбы победителем[856].

В 2015 г. движок Komodo провёл серию матчей с форой против ряда шахматных гроссмейстеров и мастеров. Использовались форы в одну пешку, две пешки, качество (ладья за коня) и даже коня. Komodo показал хорошие результаты во всех этих играх, завершив большую часть партий вничью, но выиграв по крайней мере одну партию в каждой из конфигураций[857].

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

3.6 Грубая сила машины: отделяем правду от вымысла (второе отступление)

И выступил из стана Филистимского единоборец, по имени Голиаф, из Гефа; ростом он — шести локтей и пяди. Медный шлем на голове его; и одет он был в чешуйчатую броню, и вес брони его — пять тысяч сиклей меди; медные наколенники на ногах его, и медный щит за плечами его; и древко копья его, как навой у ткачей; а самое копьё его в шестьсот сиклей железа, и пред ним шёл оруженосец.

Первая книга Царств 17:4-7


При изучении деталей проектов ChipTest, Deep Thought и их наследника Deep Blue первое, что бросается в глаза, — разительный контраст между публичным восприятием этих проектов и их действительным содержанием. В массовом сознании прочно закрепилось представление о проектах Сюя как о дорогостоящих монструозных машинах, очень глупых, но очень быстрых, подавляющих соперников «грубой силой».

Это представление в массовом сознании часто переносят на вообще все шахматные программы. Многие из наших соотечественников, интересовавшихся в детстве и юности шахматами, черпали представления о шахматном программировании из книг и статей Ботвинника, обладавшего в шахматной среде серьёзным авторитетом. Отстаивая собственные идеи, Михаил Моисеевич называл программы своих идейных соперников «полнопереборными». Рассуждая об успехах Deep Thought, которые не мог игнорировать, он не обошёлся без характерной для него колкости: «Здесь мы имеем не искусственный интеллект, а мы имеем очень работоспособного идиота»[858].



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

Представим на мгновение, что Deep Blue действительно был бы программой, перебирающей все возможные варианты. Взяв из шахматного учебника задачу с матом в шесть ходов, которая под силу практически любому перворазряднику, прикинем, сколько потребовалось бы времени Deep Blue, чтобы решить её методом полного перебора. В среднестатистической шахматной позиции возможно примерно 35 различных ходов. Чтобы с гарантией найти мат в один ход, нужно рассмотреть 35 возможных альтернатив, мат в два хода (т. е. в три полухода) — уже 353 = 42 875 вариантов и так далее. При глубине в 11 полуходов, необходимой для гарантированного нахождения мата в шесть ходов, машине потребовалось бы перебрать 96 549 157 373 046 875 позиций, на что при скорости перебора в 200 млн позиций в секунду понадобилось бы около 15 лет. А ведь отдельные комбинации шахматных мастеров простираются на 10–15 ходов! Если бы Deep Blue действительно был «работоспособным идиотом» такого рода, то вряд ли мог бы соревноваться даже с любителями.

Наверняка многие из вас слышали притчу о зёрнах и шахматной доске. В одной из её версий изобретатель шахмат (в некоторых источниках — Лахур Сесса или Сисса бен Дахир, древнеиндийский мудрец) в награду за своё изобретение просил правителя выдать ему зёрна пшеницы, положив одно зерно на первую клетку шахматной доски, два на вторую, четыре на третью, восемь на четвёртую и так далее. Правитель в ответ сначала смеётся над изобретателем, попросившим столь скудный приз за блестящее изобретение, а затем оказывается потрясён после того, как придворные казначеи сообщают, что общее количество зёрен во много раз превышает все запасы правителя. В итоге в различных версиях окончания притчи изобретателя либо производят в высокопоставленные советники, либо казнят[859]. Примерные подсчёты показывают, что масса зерна должна была составить около 1,2 трлн тонн, что примерно в 1500 раз больше мирового производства зерна в 2017 г.[860]

Теперь представьте себе ту же самую задачу с зёрнами, в которой на каждое следующее поле выкладывается не в два раза, а в 35 раз больше зёрен, чем на предыдущее. Клод Шеннон в своё время попытался прикинуть нижнюю границу числа возможных шахматных партий. Предположив, что один ход, составленный из двух полуходов, предоставляет порядка 1000 = 103 альтернатив, при средней продолжительности партии в 40 ходов Шеннон получил оценку в 10120 различных партий[861]. Это число сегодня называют «числом Шеннона». Позже голландский информатик Виктор Аллис уточнил эту оценку[862], увеличив её на три порядка — до 10123. Для сравнения: число атомов в наблюдаемой части Вселенной составляет порядка 1080, то есть в 1043 раз меньше[863]. Правда, различных позиций в шахматах существенно меньше: около 4,5 × 1046 (современная оценка сверху)[864], а значит, если бы мы научились хранить в одном атоме кремния информацию о том, является ли шахматная позиция выигранной, проигранной или ничейной, то нам бы потребовалось примерно два квинтиллиона тонн кремния, чтобы сохранить сильное решение шахматной игры. В принципе, это не так много, порядка 3% массы Луны. Возможно, наши далёкие потомки когда-нибудь воплотят в жизнь подобный проект ради забавы — конечно, если будут обладать соответствующим чувством юмора. Пока же ни о каком «полном переборе» говорить не приходится.

Для иллюстрации работы современных шахматных программ я проделал небольшой эксперимент. Взяв одну из позиций последней партии второго матча Каспарова с Deep Blue, я заставил свою программу анализировать эту позицию в течение часа. За это время программа успела просмотреть примерно 2 млрд позиций, и самый длинный вариант, изученный ею в процессе анализа, простирался от стартовой позиции на 62 полухода. Это означает, что в игровом дереве глубиной в 62 полухода на один изученный вариант приходилось примерно 3 × 1086 отброшенных. И это не предел: современные программы, использующие нейронные сети при построении игровых деревьев, такие как Leela Chess Zero, могут довольствоваться деревьями размером ещё в 100–1000 раз меньше[865] при том же или более высоком уровне игры.

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

Миф о «полнопереборных» программах породил и другие заблуждения, в плену которых иногда оказываются даже специалисты в области искусственного интеллекта. Например, существует мнение, что над созданием шахматных программ работают крупные коллективы наёмных программистов. Если для того, чтобы обыграть чемпиона мира, потребовалось создать уникальный суперкомпьютер, то сегодня в компьютерных шахматах осталось место только для гигантских корпораций, способных «задавить» проблему исключительно финансами и человеческим мясом, бросаемым на амбразуру шахматного программирования. Поэтому появление новых технологий в этой сфере грозит массовыми увольнениями и всеобщим потрясением основ[866]. В действительности, за редким исключением, шахматные программы сегодня — результаты усилий одиночек, для которых их детища являются обычно хобби-проектами. На вершинах рейтингов шахматных программ красуются программы с открытым исходным кодом, такие как Stockfish (и его модификации) и Leela Chess Zero, создаваемые усилиями энтузиастов. Deep Blue вырос из аспирантского проекта Сюя Deep Thought, весь бюджет которого составил 5000 долларов (не считая расходов на производство шахматного чипа, оплаченных за счёт средств образовательной программы)[867]. Да, IBM позволила себе на несколько лет выделить под шахматный проект несколько специалистов и даже нанять несколько шахматных профессионалов в помощь команде, но даже здесь речь не шла об огромном коллективе. Развитие технологий, позволяющих частично заменить человеческую экспертизу моделями, являющимися продуктами машинного обучения, приводит не к уменьшению, а скорее к увеличению количества людей, вовлечённых в шахматное программирование, так как с появлением новых моделей возрастает интерес к испытанию их возможностей.

Ещё одно связанное с мифом о «полнопереборных» программах заблуждение заключается в том, что весь прогресс, достигнутый в шахматном программировании за последние годы, являет собой результат роста вычислительной мощности компьютеров. Получается, если игра программ неизменно основана на полном переборе, то единственный способ её усилить — это ускорить этот перебор, задействовав более современное оборудование. Сила игры современных программ действительно хорошо коррелирует с ростом вычислительной мощности машин, однако наличие корреляции не говорит о наличии связи. Точно так же сила игры шахматных программ неплохо коррелирует с ростом числа фотографий котиков, накопленных человечеством, но из этого вовсе не следует, что программы становятся сильнее под влиянием всевозрастающего объёма милоты и няшности. Чтобы опровергнуть это заблуждение, достаточно сравнить силу игры старых и новых шахматных программ на одном и том же оборудовании. Deep Fritz 10, выигравший в 2006 г. матч у Владимира Крамника, на сайте CCRL сегодня имеет рейтинг 2829 пунктов Эло, лидер же рейтинга движок Stockfish 14 — 3543 пункта[868]. Разница в 714 пунктов означает, что в матче из пятидесяти партий между этими двумя программами на одинаковом оборудовании Fritz будет в среднем проигрывать со счётом 49 : 1. Весь этот прогресс был достигнут целиком и полностью за счёт совершенствования алгоритмов, лежащих в основе шахматных программ. Если же говорить об оборудовании, современным средним персональным компьютерам ещё далеко до скорости перебора, продемонстрированной Deep Blue в 1997 г. (например, компьютер, оснащённый процессором Intel i9-10885H с тактовой частотой 2,4 ГГц и 16 логическими ядрами, позволяет классической версии Stockfish просматривать в середине игры около 10 млн позиций в секунду, что всё ещё в десятки раз меньше, чем соответствующий показатель Deep Blue).

Забавно, что многие люди, будучи загипнотизированными магией миллионов позиций в секунду, просматриваемых программами, упускают из виду тот факт, что анализ шахматной позиции человеческим мозгом — это процесс, вовлекающий огромное количество не осознаваемых до конца человеком вычислений, производимых этим уникальным «биологическим компьютером». Люди действительно умеют эффективно оценивать шахматные позиции и обходиться изучением небольшого поддерева игры, но это достигается за счёт скоординированной работы гигантского ансамбля нервных клеток. Давайте попробуем примерно оценить возможности «биологической машины», заключённой в черепной коробке. Действительно ли «грубая сила» [brute force] сегодня на стороне наших рукотворных систем?

Среднестатистический человеческий мозг состоит из примерно 86 млрд нервных клеток — нейронов[869]. Соединения нейронов называются синапсами, их количество в человеческом мозге меняется в течение жизни человека и в пике составляет порядка одного квадриллиона (1015)[870], [871]. Каждый синапс представляет собой сложный электрохимический механизм, который может содержать порядка тысячи переключателей молекулярного размера[872]. В месте контакта между нейронами содержится крошечный зазор, который называют синаптической щелью. В этот зазор могут проникать молекулы веществ, называемых нейромедиаторами. В зависимости от набора молекул, оказавшихся в синаптической щели, меняются параметры передачи электрических сигналов между нейронами. Вообще говоря, для достаточно точного моделирования массива из 30 000 синапсов сегодня требуется от 30 до 400 Мб памяти, что даёт нам оценку примерно от 8400 до 112 000 битов на синапс[873], но мы возьмём консервативную оценку в тысячу транзисторов на синапс. К сожалению, мы не знаем, с какой точностью нужно моделировать синапсы нейронов, чтобы построенная из таких нейронов сеть смогла эффективно воспроизводить наблюдаемые у людей психические феномены. Как метко выразился ещё Тьюринг: «Нас не интересует, что мозг имеет консистенцию холодной каши», то есть нас интересуют не свойства субстрата, а вычислительные возможности биологической «машины». Последними экспериментами установлено, что для достижения 99% точности при моделировании поведения биологического нейрона на миллисекундном масштабе необходимо около тысячи искусственных нейронов, и хотя обычно реализация одного синапса искусственного нейрона требует более чем одного транзистора, мы можем хотя бы приблизительно оценить «производительность» отдельного биологического синапса[874], [875], [876]. Умножив квадриллион синапсов на тысячу транзисторов, получим «транзисторный эквивалент» мозга, равный одному квинтиллиону (1018) условных транзисторов.

Ни одна созданная до настоящего времени интегральная микросхема не может похвастаться таким количеством транзисторов. Действующий рекорд среди серийных микропроцессоров принадлежит GPU (graphics processing unit, графический процессор, в просторечии «видеокарта») от Nvidia под названием H100 — он содержит 80 млрд транзисторов [877] (8,00 × 1010) [878], самая большая серийная программируемая вентильная матрица (FPGA) — Xilinx Virtex UltraScale+ VU19P — состоит из 32 млрд транзисторов [879] (3,2 × 1010).

Впрочем, электроника имеет серьёзное преимущество в скорости. Продолжительность нервных импульсов в мозге составляет примерно 1–2 мс[880], и данные современной нейрофизиологии не позволяют нам утверждать, что рабочая частота мозга может превышать порог в 1 кГц, в то время как электронике доступны частоты, приближающиеся к 9 ГГц. Впрочем, самый «шустрый» процессор AMD FX-8150, работающий на частоте 8,81 ГГц, содержит всего 1,2 млрд транзисторов, в то время как частота H100 составляет скромные 1590 МГц по умолчанию и 1,98 ГГц при разгоне. Вентильная матрица Virtex UltraScale+ VU19P и вовсе предназначена для работы на частоте около 900 МГц (если исходить из величины Maximum frequency of a global clock tree[881] в документации[882]). Перемножив частоту каждого устройства на количество транзисторов, получим теоретический предел производительности в битах в секунду. Для мозга он, по нашим подсчётам, составляет порядка 1021 бит/с, а для микропроцессоров — не более 1,58 × 1020 бит/с. Таким образом, даже при крайне консервативной оценке вычислительной мощности отдельного синапса мы видим, что мозг превосходит микропроцессоры по своей «брутто-производительности» примерно на один десятичный порядок.

Конечно, сравнение это является сугубо приблизительным и основано на ряде серьёзных допущений. И всё-таки оно даёт представление о «грубой силе» человеческого мозга. Ещё более печальным для электроники сравнение становится после оценки энергоэффективности вычислений. Мозг, несмотря на свою фантастическую производительность, потребляет всего около 20 Вт, в то время как энергопотребление самых быстрых процессоров доходит до 400 Вт.

В этом месте читатель может воскликнуть: «Где же мои деньги?!» В смысле: почему же я не могу мгновенно перемножать в уме тридцатизначные числа и вытворять другие фокусы, которые так легко даются компьютерам? Ответ довольно прост: мозг не слишком приспособлен для того, чтобы выполнять сознательное умножение чисел; выполняя такую задачу, мы используем возможности нашей «аппаратной платформы» крайне неэффективно. В то же время, выполняя, скажем, задачу распознавания лица человека, мозг за доли секунды производит сложную обработку сигналов, поступающих от зрительных рецепторов. Математическим эквивалентом этой операции являются сложение и умножение больших наборов числовых коэффициентов, и мозг успешно справляется с этой задачей бессознательно, втайне от нас самих.

3.7 Го — новая цель

Заниматься игрой в го является намного лучшим делом, чем предаваться целый день праздности и угощению рисом.

Конфуций. Суждения и беседы

Го — игра, которая на протяжении многих лет исполняла роль своеобразного философского камня в области искусственного интеллекта. Число возможных позиций в го (при размере доски 19 × 19) составляет[883] порядка 2 × 10170, а число различных партий оценивается[884] и вовсе в циклопическое число 10360. Если в среднестатистической шахматной позиции возможно 35 потенциальных ходов, то в го это число — 250, то есть больше почти на порядок. Таким образом, кремниевый блок для хранения сильного решения игры го, созданный по технологии, рассмотренной в прошлой главе, был бы примерно в 3 × 1091 раза тяжелее, чем всё обычное вещество нашей Вселенной, так что от затеи по строительству подобного устройства, по всей видимости, придётся отказаться.



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

В 1965 г. британский математик, коллега Тьюринга по Блетчли-парку Ай Джей Гуд писал: «Го на компьютере? — Чтобы запрограммировать компьютер для разумной игры в го, а не просто для игры в соответствии с правилами, необходимо формализовать стратегические принципы игры или разработать самообучающуюся программу. [Стратегические] принципы [го] более качественны и загадочны, чем в шахматах, и более субъективны. Поэтому я думаю, что будет гораздо сложнее запрограммировать компьютер для игры в го, чем в шахматы»[885].

До 2015 г. программы играли в го в лучшем случае на любительском уровне. В варианте игры на доске 9 × 9 машины демонстрировали более впечатляющие результаты, некоторым программам удалось выиграть на маленькой доске некоторое количество игр против профессиональных игроков[886]. Находились исследователи, которые утверждали, что компьютеры никогда не смогут победить сильнейших игроков в го[887].

Первая программа для игры в го была написана Альбертом Зобристом в 1968 г. как часть диссертации, посвящённой распознаванию образов. Зобрист ввёл функцию влияния для оценки территории и использовал хеш-функцию, названную позже его именем, для обнаружения «ко» (правило ко — одно из правил игры го, согласно которому запрещено делать ход, если он приводит к повторению позиции, существовавшей на доске за один ход до этого; в различных вариантах правил го точная формулировка и интерпретация правила ко может различаться). Кстати говоря, хеш-функция Зобриста и по сей день используется в шахматных программах для создания хеш-таблиц перестановок/опровержений, быстрого поиска повторения позиции, поиска позиции в дебютной библиотеке и многих других задач.

В апреле 1981 г. Джонатан Миллен опубликовал[888] в журнале Byte статью, посвящённую Wally, программе для игры в го на доске 15 × 15, которая помещалась в один килобайт оперативной памяти микрокомпьютера KIM-1. В ноябре 1984 г. Брюс Уэбстер опубликовал[889] листинг собственной программы для игры в го на языке MacFORTH для компьютера Apple Macintosh.

Первым оставившим след в истории турниром по компьютерному го стал Acornsoft Computer Go Tournament, прошедший в Лондоне в марте 1984 г. при участии Британской ассоциации го (British Go Association). Все программы-участники использовали популярные микрокомпьютеры BBC Micro и вариант игры с доской 13 × 13. Победителем стала программа, созданная Брониславом Пшибылой[890], [891]. Сегодня она известна под названием Acornsoft Go и доступна для игры в онлайн-эмуляторе BBC Micro[892].

К 1980-м гг. также относится первое появление программ для игры в го в турнирах людей. По всей видимости, первым таким случаем стало участие программы Nemesis в турнирах Массачусетского клуба по го.

В 1987 г. тайваньский фонд Ing Foundation спонсировал первый из серии ежегодных турниров по компьютерному го. Победитель каждого из турниров играл партии с форой против «инсэев» (стремящихся стать профессионалами игроков в го, чей уровень игры в среднем соответствует шестому любительскому дану) и, в зависимости от результатов, мог претендовать на дополнительные призы. Размер приза зависел от размера форы, необходимой программе для победы над инсэем. Максимальный приз соответствовал победе без форы и составлял 40 млн тайваньских долларов (более миллиона долларов США). Он так никому и не достался, и спонсорство со стороны Ing Foundation прекратилось после турнира 2001 г., когда были выиграны призы за фору в 11 камней и более[893].

В 1998 г. сильнейшие игроки побеждали компьютерные программы, предоставляя им огромные форы в 25–30 камней. В ходе чемпионата мира по компьютерному го в 1994 г. программа-победитель Go Intellect проиграла все три игры против игроков-юниоров, имея фору в 15 камней[894]. Игроки, понимавшие и использовавшие специфические слабые места программ, могли выигрывать с гораздо большими форами, чем их менее искушённые коллеги.

Развитие методов Монте-Карло для перебора вариантов в игровых деревьях в комбинации с прогрессом в области машинного обучения привело к тому, что лучшие программы достигли высокого уровня на маленькой доске, а в конце нулевых годов появились первые программы, способные достигать и удерживать ранги низкого уровня на сервере KGS Go (популярный онлайн-сервис для игры в го) для доски 19 × 19[895].

В 2010 г. на Европейском конгрессе по го в Финляндии программа MogoTW смогла, имея фору в семь камней, обыграть (c разницей всего в полтора очка) Каталина Цэрану, игрока пятого профессионального дана (высший дан — девятый, существует также понятие «десятый дан» (дзюдан), но это уже не ранг, указывающий на мастерство игрока, а один из титулов), первого европейца, получившего в го профессиональный дан[896].

В 2011 г. программа Zen, игравшая на 26-ядерном компьютере, достигла уровня пятого, а немногим позже и шестого любительского дана на сервере KGS Go, играя при временно́м ограничении 15 секунд за ход[897].

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

В 2012 г. Zen победила обладателя необычного (так называемого космического) стиля игры в го Масаки Такемию (девятый дан) на 11 очков при форе в пять камней и на 20 очков при форе в четыре камня[898].

В 2013 г. программа Crazy Stone, имея фору в четыре камня, одержала победу над Йосио Исиду по прозвищу Компьютер[899] (девятый дан)[900].

В 2014 г. состоялся матч без форы Codecentric Go Challenge между Францем-Йозефом Дикхутом (6-й любительский дан) и Crazy Stone. Игра велась на доске 19 × 19 до трёх побед. Дикхут одержал победу, хотя и уступил в первой партии на полтора очка[901]. Ни один из более сильных игроков в го не соглашался до этого играть матч на равных условиях.

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

Кто бы мог подумать, что ситуация изменится в одночасье? О дальнейших событиях в мире го мы поговорим в одной из следующих глав.

3.8 Итоги и перспективы

Так как всякое настоящее состояние простой субстанции, естественно, есть следствие её предыдущего состояния, то настоящее её чревато будущим.

Готфрид фон Лейбниц. Монадология


Как описано в предыдущих главах, к началу 2010-х компьютерные программы доминировали практически во всех настольных играх: некоторые из них вообще оказались решены (например, шашки), для других решения были получены для некоторого, порой весьма внушительного, подмножества позиций, и даже в шахматах, которые часто назывались самой интеллектуальной игрой, достижения компьютерных программ не вызывали сомнений. Однако в то же время существовали игры, успех машин в которых был весьма скромным, — к ним, помимо го, относились, например, покер, бридж, игра аримаа (arimaa), созданная американским программистом индийского происхождения Амаром Саедом в качестве сложной для компьютеров игры[902].

Традиционные настольные и карточные игры по размеру поискового пространства в большинстве случаев существенно уступают стратегическим компьютерным играм, таким, например, как Civilization, Heroes of Might and Magic, не говоря уже о StarCraft или Dota. И в то же время стратегические компьютерные игры по этому показателю во много раз проще, чем ряд задач, возникающих перед интеллектуальным агентом в реальном мире. Если в арсенале методов искусственного интеллекта не было методов, позволяющих создавать ботов, способных обыгрывать человека в стратегические игры, значит, об успехах в решении стратегических задач в реальном мире можно было только мечтать. Чтобы сделать противостояние компьютерным противникам в играх более сложным, программисты нередко допускали некоторое жульничество — на сверхсложных уровнях в карточных играх компьютерные игроки могли заглядывать в карты противника (например, партнёр «Рентген» в программе «Марьяж» для игры в преферанс [903]), выполнять действия быстрее или с меньшей ценой (например, в Civilization компьютерные противники на высоких уровнях быстрее совершают открытия и выполняют улучшения[904]) и, наконец, просто управлять всеми персонажами (юнитами) одновременно и «видеть» всю игровую карту целиком. В реальном мире, однако, большая часть из подобных трюков невозможна, поэтому нужно искать другие решения.



Попробуем разобраться в причинах, по которым для одних игр удалось быстро найти методы, позволяющие машинам играть достаточно сильно, в то время как в других они надолго задержались в статусе новичков. Например, очень часто в качестве причины того, что успехи машин в го гораздо скромнее, чем в шахматах, приводилось сравнение количества позиций и возможных партий в шахматах и го. Многих удовлетворяло это объяснение, поскольку чудовищные числа 10170 или 10360 буквально гипнотизировали людей и подавляли их волю к критическому мышлению. Между тем довольно очевидно, что размер поискового пространства игры не зависит от того, кто в неё играет — человек или компьютер. Кроме того, несмотря на то что успехи машин в играх были тем скромнее, чем больше было поисковое пространство этих игр, это правило всё-таки имело некоторые исключения. Например, в игре «отелло» (её также иногда называют «реверси») программы достигли уровня игры лучших людей-игроков на границе 1970–1980-х гг.: в 1980 г. программа Moor, созданная Майком Ривом, Майклом Стином и Дэвидом Леви, смогла выиграть одну из шести партий в матче с чемпионом мира Хироси Иноуэ[905]. Количество возможных позиций в «отелло» составляет[906] порядка 1028, а игр — 1050. Аналогичные показатели для английских шашек гораздо скромнее — 1020 и 1031, однако Шефферу удалось достичь подобного успеха только в 1990-е гг. В нарды — с их огромным количеством[907] позиций (1020) и игр (10144) — программа Берлинера выиграла у чемпиона мира в 1979 г.

В шахматном программировании прогресс на протяжении многих лет был связан с совершенствованием методов оценки позиции и алгоритмов, определяющих приоритетность рассмотрения тех или иных вариантов в игровом дереве. В основе этих методов и алгоритмов были эвристические правила. Задача оценки существенно упрощается, если эту оценку можно разъять на несколько относительно независимых компонентов. Первые шахматные программы независимо оценивали материал, проходные пешки, мобильность и расположение фигур и так далее. Со временем в оценочных функциях увеличивалось количество нелинейных компонентов. Например, «цена» проходных пешек или оценки расположения фигур стали зависеть от фазы игры, со временем появились и нелинейные подходы к оценке материала — добавились компоненты, отвечающие за те или иные сочетания фигур. Усложнение оценочных функций стало возможно не только и не столько потому, что разработчики программ изобрели новые компоненты оценки, а скорее в силу того, что стали доступны масштабные вычислительные эксперименты для подбора значений растущего множества этих компонентов. В XXI в. благодаря дешевизне и доступности высокопроизводительных вычислительных машин стало возможным использование сотен тысяч и даже миллионов партий на сверхкоротких контролях времени для подстройки различных параметров шахматных эвристик. Для решения таких задач появились и общедоступные инструменты. Например, Реми Кулом, автор шахматной программы Crazy Bishop и программы для игры в го — Crazy Stone, создал утилиту CLOP (Confident Local OPtimization, уверенная локальная оптимизация) для оптимизации параметров чёрного ящика в условии наличия шумов (Noisy Black-Box Parameter Optimization). Модифицируя различные параметры вашей программы по результатам множества тестовых игр, CLOP может подобрать значения этих параметров, позволяющие программе играть лучше[908].

Создатели движка Stockfish используют для экспериментов по улучшению своей программы распределённую платформу под названием Fishtest. В вычислительных экспериментах на этой платформе периодически задействовалось свыше 2000 машин с более чем 11 000 вычислительных ядер, что позволяло играть более 10 000 тестовых шахматных партий в минуту. Всего на платформе было осуществлено свыше 110 000 тестов, каждый из которых в среднем включал несколько десятков тысяч партий[909], [910]. Несмотря на столь внушительное количество тестов, оценочная функция классической версии Stockfish базируется на наборе признаков, изобретённых людьми, хотя «цена» каждого отдельного признака и подобрана в результате автоматизированного оптимизационного процесса. Нетрудно заметить, что успех подобной стратегии во многом зависит от того, насколько удачно было произведено разделение оценки на элементарные компоненты. Поэтому одним из важных барьеров на пути достижения машинами сверхчеловеческого уровня во многих играх стала неспособность людей качественно формализовать методы, применяемые ими при оценке позиции, удачно выделить компоненты этой оценки. По мере развития методов автоматизированной подстройки параметров игровых программ многие исследователи стали задумываться над тем, чтобы автоматизировать также и задачу подбора самого множества параметров. В конце концов, если люди регулярно допускают ошибки в оценке значений тех или иных параметров, то, быть может, они неправильно выбрали и сам их набор? Благодаря созданию программ, способных играть в некоторые игры на сверхчеловеческом уровне, стало ясно, что в ряде случаев цена экспертного человеческого знания не столь уж и велика, — вспомним хотя бы игру гроссмейстера Уолтера Брауна с программой Томпсона в окончании «ферзь против ладьи» или историю со «столетней позицией» Стёрджеса.

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



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

Загрузка...