Выбрать главу

Дело было не в скорости: просто Deep Blue перебирала в среднем в 50 раз больше позиций в секунду, чем Deep Junior, — 150 млн против 3 млн. Но техническая скорость — только один из факторов шахматной силы машины. Чтобы получить максимальную отдачу от аппаратного обеспечения, в первую очередь необходимо иметь эффективную программу. Как показали усилия нескольких поколений шахматных программистов, начиная с 1970-х годов, уровень шахматных способностей программы тем выше, чем чаще происходит ее оптимизация и чем «умнее» процедуры поиска.

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

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

Хотя первоначальные прогнозы не оправдались, на протяжении следующих 20 лет в компьютерных шахматах наблюдался устойчивый прогресс. Неумолимое развитие вычислительных мощностей по закону Мура и достигнутые методом проб и ошибок успехи в программировании привели к созданию в 1977 году шахматных машин, способных играть на экспертном уровне — то есть так, как играют лучшие 5 % шахматистов. Компьютеры по-прежнему делали множество вопиюще нелогичных ходов, которые никогда бы не сделал даже слабый игрок. Но они стали достаточно быстрыми для того, чтобы компенсировать эти случайные промахи грамотной обороной и выверенной тактикой.

Увеличение скорости работы аппаратного обеспечения было только одним из факторов прогресса. Значительную роль сыграли более совершенные программы, ускоряющие процесс поиска. Был разработан алгоритм «альфа-бета», который позволял программам быстрее отсекать слабые ходы и глубже просчитывать остальные. Он представлял собой улучшенную версию алгоритма «минимакс», описанного Шенноном как стратегия типа A, или метод грубой силы. Программы, которые использовали «альфа-бета», отвергали любой ход, получавший более низкую оценку, чем уже рассмотренный. Благодаря этому ключевому усовершенствованию и другим изменениям программы типа A стали доминировать над программами типа Б. Эффективное использование грубой силы перевешивало любую попытку сымитировать человеческое мышление и интуицию в шахматной машине. Некоторые шахматные знания были необходимы, но важнейшим условием победы являлась скорость.

Все современные шахматные программы основаны на применении отсекающего алгоритма «альфа-бета» к базовой концепции минимакса. На эту структуру программисты накладывают оценочную функцию и настраивают ее для достижения оптимальных результатов. Первые шахматные программы, разработанные с использованием этого метода и установленные на самых мощных компьютерах того времени, достигли довольно высокого уровня шахматного мастерства. К концу 1970-х годов программы, управлявшие первыми персональными компьютерами типа TRS-80, уже могли побеждать большинство шахматистов-любителей.

Следующий прорыв произошел благодаря компании Bell Laboratories из Нью-Джерси, давшей миру несколько изобретений и нобелевских лауреатов. Кен Томпсон создал специализированный шахматный компьютер Belle с сотней микропроцессоров. Эта машина могла перебирать 180 000 позиций в секунду, тогда как обычные универсальные суперкомпьютеры того времени справлялись лишь с пятью тысячами. При глубине расчета до девяти полуходов Belle мог играть на уровне мастера и значительно превосходил другие шахматные машины. С 1980 по 1983 год он победил почти во всех соревнованиях по компьютерным шахматам, пока его не превзошла программа, работавшая на следующем поколении суперкомпьютеров Cray.