О работах над первыми шахматными программами
М. В. Донской
Развитие шахматного программирования как часть искусственного интеллекта началось с одной проблемы, которая сегодня исчезла, и уже никто ею даже не интересуется, а окончилось другой проблемой, которая, по-моему, становится все более и более актуальной.
Первая проблема – само предназначение вычислительных машин. Компьютер – сейчас это уже русское слово, тоже от слова "вычислять", по-русски "электронные вычислительные машины" были как-то в оппозиции аналоговым вычислительным машинам, которые тогда были. И вот сама идея, что эти машины можно использовать не только для расчетов, а и для информационных задач, была, как это ни смешно сказать (т. к. год ее рождения 1948-й), серьезной проблемой. И Клод Шеннон, один из родоначальников информатики, пытался доказать, что машина, обладающая огромной вычислительной мощностью, на самом деле предназначена для информационных задач, а не для вычислений. В качестве примера такой информационной задачи он объявил шахматную программу.
Он сказал, что компьютеры могут играть в шахматы, а уж эта задача никак не вычислительная. Он ввел термин "символическое программирование" в отличие от "численного программирования" (термин не прижившийся). Эта борьба продолжалась очень недолго, но что оказалось удивительным: первая вычислительная машина, созданная на белом свете, была информационной. Она была очень засекречена, сейчас о ней стало известно, она была создана Аланом Тьюрингом, британской разведкой, для расшифровки немецких сообщений, называлась "Энигмой".
Сейчас об этом пишут романы. Она была рассекречена только в 88-м году, а до этого об ее существовании никто не знал.
Приходилось доказывать, что машины могут выполнять чисто информационные алгоритмы, искать решения и т. д.
Вторым человеком, сказавшим о шахматных программах как о примере, был тот же самый Алан Тьюринг. Загорая с Джоном МакКарти на пляже в Сан-Диего, они решили, что вообще машины могут решать задачи, которые принято считать интеллектуальными. И тогда они придумали сам термин "искусственный интеллект" на этом пляже. Тогда же возник и тест Тьюринга, который сейчас проходят в школах. И тогда же Алан Тьюринг набросал первый алгоритм шахматной программы, который не был никогда реализован как программа, но был реализован как алгоритм.
В 1958 г. донеслись слухи о создании первой, по-настоящему играющей шахматной программы. Владимир Львович Арлазаров сделал эту шахматную программу. Тут мне хотелось бы опять отойти от шахматных программ в более широкую область и указать на то, что первые центры развития шахматных программ, как нарочно, совпадают с центрами развития атомного оружия. В Москве это был Институт теоретической и экспериментальной физики, в Америке – Лос-Аламосская лаборатория, в Англии это была лаборатория Резерфорда. И понятно – почему. Потому что в то время, в начале 50-х годов, всю лучшую вычислительную технику отдавали физикам-ядерщикам. Поскольку оставалось время от основных занятий на машине, в свободное время они развлекались интересными вещами.
А что может быть интереснее, чем игровые программы? И поэтому, несмотря на начальство, прикрываясь крупными авторитетами, были сделаны такие первые шахматные программы.
В 1967 г. состоялся первый матч шахматных программ, первые соревнования шахматных программ. И с того момента начался самый длительный в истории кибернетики научный эксперимент. Сначала ежегодные турниры, североамериканские турниры, потом раз в три года – чемпионат мира среди шахматных программ. А в 1967 г. (на это тоже надо посмотреть сегодняшними глазами, я не могу себе этого представить) был матч по переписке между Стенфордским университетом, где тот же самый Джон МакКарти, отец искусственного интеллекта, автор языка Лисп, прикрывал молодого своего аспиранта Котка (Kotok), который сделал тамошнюю первую шахматную программу, с нашей стороны Институтом теоретической и экспериментальной физики, где первый советский программист (так, между нами говоря) Александр Семенович Кронрод, прикрывал своим авторитетом программы тогда еще очень молодых разработчиков Арлазарова, Ускова, Животовского, Битмана. И можете себе представить начальника почтового отделения рядом с ИТЭФом, который должен был отправлять в Америку телеграммы, где были сложные нотации шахматных ходов. Тем, кто тогда решился это представить, за это могли дать 25 лет без права переписки.
Тем не менее, это происходило. Я тогда был третьекурсником, только входил в эту команду, которая потом по политическим мотивам (Кронрод и Адельсон-Вельский подписали письмо в защиту Есенина-Вольпина) была выгнана в ИАТ. Я, слава богу, пришел в ИАТ с самого начала.
И в этот момент началась работа над очень интересной проблемой, которая и сегодня одна из самых главных проблем. Давайте посмотрим сначала на место шахмат в искусственном интеллекте. Почему они имели к нему отношение? Сейчас это уже не так очевидно.
Искусственный интеллект, грубо говоря, разбивается на две задачи. Одна задача – это представление знаний. Как можно в компьютер ввести знания и как ими пользоваться для решения задач.
А вторая часть – это принятие решения, поиск решения. Это немножко условное деление, потому что при поиске решения необходимо использовать где-то знания, в поиске решения оформлять накопленный опыт для поиска путей ускорения этого решения. Точно так же для того, чтобы найти в больших объемах знаний необходимые – это та же задача, надо использовать некоторые методы принятия решений. Но тем не менее шахматы оказались кристально ясной задачей, потому что правила игры просты и понятны. Т. е. область знаний там была тривиальна. Зато алгоритмы поиска решений очень сложны. На них и нужно было сфокусироваться.
Но оказалось, что алгоритмы поиска решений в виде перебора с сокращением начали развиваться очень бурно и оказали большое влияние на развитие искусственного интеллекта.
Между прочим, первые книги об искусственном интеллекте так и называются "Искусственный интеллект и поиск решений".
И тут возникла чисто философская проблема. Вот играет машина в шахматы. Уже в 1975 г. она играла на уровне 2-го разряда. Сегодня, как известно, она играет на уровне Каспарова. Хорошо это или плохо? Казалось бы, хорошо, она решает поставленные задачи, прекрасно решает. Но нет! Есть у людей в отношении к искусственному интеллекту два течения.
Одни говорят: "Мы должны хорошо решать сложные задачи", это так называемые прагматики, к которым принадлежу и я. Я сейчас не буду говорить, кто лучше, кто хуже, это неинтересный вопрос. Интересна сама постановка задачи.
Вторые говорят: "Нет, это неправильно, потому что человек думает по-другому. Мы должны в первую очередь сначала различить, как думает человек, а потом найти алгоритмы. И когда (а я скажу в скобках, как прагматик: "И если") мы их включим, то построим настоящую программу "грамотного" искусственного интеллекта".
Покойный Михаил Моисеевич Ботвинник, один из тех, кто внес заметный вклад в шахматное программирование (хотя я должен сказать, что это странно, он, конечно, не имел ни малейшего отношения к программированию). Вот он был ярким представителем такого теоретического крыла людей, которые говорили, что программа должна играть, как шахматный мастер... Он говорил: "Я знаю... я шахматный мастер... я знаю, как она должна играть. Вот, я буду делать такую программу". Кстати, он все-таки, чтобы получить конкретные результаты, мягко сдрейфовал в сторону прагматиков. Потому что, конечно, то, как компьютеры играют в шахматы, никакого отношения к тому, как человек это делает, не имеет и иметь, по моему мнению (поскольку я плохой шахматист) не может.
Там возникают другие способы представления знаний, другие способы поиска решений, и все это интересно. Вот этот конфликт существует, он реален. И я не знаю, чем он кончится, как и когда, но я очень хотел обратить внимание на его существование.
Вот уже 25 лет назад был первый чемпионат мира по шахматным программам. Мне как-то странно сегодня о нем вспоминать, потому что я давно ушел из этой области. Давайте по-честному, почему мы выиграли? Потому что мы придумали очень много. На Геофизическом конгрессе, который проходил в Москве в 1969 году, мой учитель Георгий Максимович Адельсон-Вельский делал доклад "Что шахматное программирование внесло в теорию программирования".
Ну, давайте считать: хэш-функции, списки, массивы, нет, массивы были придуманы раньше. Вот все остальное, как это ни странно, было впервые придумано для шахматных программ. И это понятно, почему. Потому что сложные задачи требовали исключительно умных алгоритмов, да еще при тех машинах, о которых сейчас просто больно вспоминать... Я заходил вчера в музей, посмотрел на эти машины, на которых я работал, вот для них надо было придумывать очень интересные технические решения. И шахматные программы дали большой толчок тем интересным техническим решениям. А мы, готовясь тогда к чемпионату мира, находились в очень странных условиях. Наша машина, как говорил Алекс Белл (британский журналист, кстати, и машина была британская – ICL-4-70), была сделана специально для того, чтобы русские не могли нормально работать и уж тем более не выиграли чемпионат, а мы все равно выиграли.
Нам пришлось придумывать много интересных решений. В 1974 г. это была еще наука, а не техника. Сейчас я объясню разницу. В науке результаты публикуются, в технике результаты секретятся. Сегодня шахматное программирование стало коммерческим делом. Посмотрите, кто сегодня имеет свои шахматные программы – IBM, Amdal, CDC, все крупные фирмы имеют шахматные программы как показатель вычислительной мощности их машин.
А тогда это была наука. Поэтому на чемпионат мира мы приехали с огромным багажом, которого никто не знал, и потом мы все честно опубликовали. В 1977 г. мы уже были вторыми, потому что мы использовали методы наших зарубежных товарищей, они использовали наши методы, это была нормальная научная работа.
С 80-х гг. это стало коммерцией, все стало закрыто, и после этого мой интерес пропал. Поэтому, когда меня спрашивают, почему мы выиграли чемпионат мира, я отвечаю – просто потому, что о нас еще никто ничего не знал.
В тот момент, когда был первый чемпионат, мы из узкого закутка советской науки вышли на нормальный уровень мировой науки, а дальше разница в технике начала становиться важной компонентой. Техника советская как была, так она и осталась. Вот сегодня молодое поколение этого не знает, работает на иностранной технике, а если хотите, сходите на 3-й этаж и посмотрите, на чем мы работали...
Тем не менее, вот этот научный эксперимент продолжается. Я был просто возмущен тем, что происходило год назад во время матча Каспарова с машиной. Понимаете, то, во что превратила российская пресса это соревнование, – просто неуважение к таланту. Говорить, что "белковый", "желтковый" шахматист... там была настолько принижена роль авторов программы "Deep Blue"... Это очень серьезная научная работа. Эти ребята выросли в Carnegy Mellon University (Питтсбург) как целая команда. Они шли по неисследованной области, находили такие решения... И говорить после этого, что они выиграли у Каспарова только за счет преимущества в технике, – это просто глупости и неуважение к работающим людям. Да, конечно, их результаты публикуются очень скудно, потому что они являются не собственностью их, как ученых, а собственностью фирмы IBM, которая дает на это деньги.
Но от этого эти ребята не становятся худшими специалистами, и как-то вот в советской прессе не прошла ни одна фамилия авторов "Deep Blue". Даже имя руководителя коллектива не произносилось. Для меня, как человека когда-то занятого в этой области, это очень странно. Я не хочу вдаваться в технические подробности шахматной программы, это отдельная область, это отдельный интерес, но, поверьте, в "Deep Blue" много классных алгоритмических решений.
Я мог бы удариться в воспоминания, какие были прекрасные истории, забавные истории в 1974 г. и после, тем более, я сегодня прочитал книжку воспоминаний, как проходил в 1983 г. чемпионат мира... Но мне хотелось бы закончить перечислением фамилий людей, которые были задействованы в шахматной программе, чтобы показать, насколько все-таки эта область была и остается существенной. Клод Шеннон (родоначальник теории информации), Алан Тьюринг – родоначальник теории автоматов (машина Тьюринга, искусственный интеллект), Джон Маккарти (искусственный интеллект, язык Лисп), Кен Томпсон (Юникс).
Вот, мне приятно находиться в этом ряду, когда такие люди делают шахматные программы, значит, это вещь интересная...
Сегодня эта задача себя исчерпала в том смысле, что она достаточно формализована и достаточно решена. Сегодня, наверное, время других задач. И мне хотелось бы, чтобы за их решение брались люди такого же калибра, с тем же удовольствием и с тем же успехом, с каким это делали когда-то мы.
Статья опубликована в сборнике "Политехнические чтения", выпуск 2, М., "Знание", 2002 г., стр. 89.