Если оглянуться назад на историю компьютеров, создается впечатление, будто, как только была изобретена первая ЭВМ, следующим же шагом стала попытка научить ее играть в шахматы. В первые десятилетия развития компьютерной техники шахматы всегда находились на переднем фронте. Причина не только в репутации игры, но и в том, что многие из отцов-основателей вычислительной науки были увлеченными шахматистами и быстро увидели в этой игре потенциал служить отличной площадкой для тестирования своих теорий и изобретений.
Как машины играют в шахматы? Базовый подход остается неизменным с 1949 года, когда американский математик и инженер Клод Шеннон описал его в своей статье «Программирование компьютера для игры в шахматы»{12}
. Он предложил вычислительный метод, или «программу», для ЭВМ общего назначения, идею которой несколькими годами ранее сформулировал Алан Тьюринг. Это было на столь раннем этапе информационной эпохи, что Шеннон взял слово «программа» в кавычки, как жаргонизм.Подобно многим его последователям, Шеннон, рассуждая об играющем в шахматы устройстве, делал оговорку, что «возможно, оно не имеет никакого практического значения». Но ученый разглядел теоретическую ценность такой машины для иных областей — от маршрутизации телефонных звонков до перевода с одного языка на другой. Шеннон объяснил, почему считает шахматы и шахматный автомат хорошей тестовой площадкой:
Проблема четко определена как с точки зрения допустимых операций (ходы), так и в плане конечной цели (мат). Шахматная машина не настолько проста, чтобы считаться примитивной, но и не слишком сложна для отыскания удовлетворительных решений. Считается, что для искусной игры в шахматы необходимо «мышление». Следовательно, решение этой задачи либо вынудит нас признать возможность механизированного мышления, либо заставит уточнить нашу концепцию «мышления». Дискретная природа шахмат хорошо вписывается в цифровую природу современных компьютеров.
Обратите особое внимание на третий пункт, где Шеннон несколькими словами преодолевает разрыв между компьютерной наукой и метафизическим миром. Поскольку игра в шахматы предполагает наличие мышления, значит, либо шахматная машина способна мыслить, либо мышление — это вовсе не то, чем мы привыкли его считать. Также следует отметить, что математик говорит об «искусной игре», — то есть простое знание правил и генерация в заданных ими рамках случайных ходов или же извлечение ходов из памяти (базы данных) не является признаком мышления.
Этот подход перекликается с идеей, высказанной Норбертом Винером в его фундаментальном труде «Кибернетика» (1948): «Вопрос в том, можно ли построить машину, играющую в шахматы, и являются ли способности такого рода существенным отличием человеческого разума от машины»{13}
.Шеннон описал различные факторы, которые потребуются для создания шахматной программы, включая правила, определение ценности фигур, функцию оценки и, самое важное, возможные методы поиска. В качестве фундаментального алгоритма поиска он использовал так называемый принцип минимакса, который первоначально был сформулирован в теории игр и впоследствии применялся во многих других сферах для принятия решений в условиях неопределенности. Говоря простым языком, алгоритм минимакса оценивает все доступные варианты и сортирует их от лучшего к худшему.
С помощью системы оценки шахматная программа ранжирует как можно больше возможных вариантов ходов в заданной позиции и определяет ценность каждой выявленной позиции. Ход, получающий максимальную оценку, помещается вверху списка как самый предпочтительный. В идеале программа должна проанализировать все возможные действия обоих игроков на столько ходов вперед, насколько позволит время.
Важным вкладом Шеннона было то, что он предложил две ключевые стратегии поиска — «тип А» и «тип Б». Попросту говоря, тип А — это всеохватывающий поиск, метод «грубой силы», предполагающий, что все возможные в рамках правил ходы и варианты исследуются все глубже и глубже с каждым ходом. Тип Б — метод «интеллектуального поиска» — опирается на относительно эффективный алгоритм, работающий во многом так же, как мозг шахматиста: он фокусируется только на нескольких хороших ходах и тщательно анализирует их, вместо того чтобы рассматривать все.
Выбор шахматного хода можно сравнить с выбором пирожного, когда вы стоите перед длинной витриной в кондитерской. Вам не нужно внимательно изучать каждый вид пирожного, чтобы сделать заказ. Вы уже знаете, какие пирожные вам нравятся, как они выглядят, из каких ингредиентов состоят, каковы на вкус. Поэтому вы быстро сужаете свой выбор до нескольких предпочтительных вариантов — и вот их-то уже оцениваете более внимательно.