«Я стал одним из… первых, кто работал в широкой области, которая позднее получила название искусственного интеллекта, – писал Сэмюэл в неоконченной и неопубликованной автобиографии. – Собственно говоря, я настолько увлекся написанием программы, которая вроде бы проявляет интеллект, что она занимала мои мысли почти в каждый свободный момент в течение всего периода работы в IBM, да и нескольких последующих лет тоже». В своей оценке он был не одинок. Как заметил один из специалистов по истории компьютеров, шашечная программа Сэмюэла, несомненно, была «первой самообучающейся компьютерной программой в мире» и «первым функционирующим искусственным интеллектом».
В IBM не возражали против ночных игр на заводе – на них смотрели как на испытание дорогостоящих машин. Но компания не опубликовала исследование Сэмюэла. Тогда, как и сейчас, многие боялись искусственного интеллекта. Продавцы IBM не говорили своим клиентам об исследованиях в этой области, проводившихся в компании, и не рассуждали о грядущих инновациях. Когда в 1959 году Сэмюэл, наконец, обнародовал свою работу, в ней был такой вывод: «Компьютер можно запрограммировать так, что он научится играть в шашки лучше того, кто написал программу». Сэмюэл мог бы пойти еще дальше. Компьютер можно запрограммировать так, что он будет играть в шашки как сам господь бог.
Так как же играет компьютер? Представьте, что вы стоите у подножия очень высокого дерева и смотрите вверх. Дерево – это совокупность всех возможных вариантов будущего игры. Ствол представляет собой ваш следующий ход, большой сук – какой-то возможный ход после этого, ветви поменьше – дальнейшие ходы, а бесчисленные мелкие веточки и листья наверху – продолжение возможных ходов в отдаленном будущем игры – эндшпили.
Люди смотрят на дерево снизу вверх и вспоминают о деревьях, на которые забирались, которые видели и о которых им раньше рассказывали друзья. У нас есть интуитивное, врожденное понимание того, какие ветви могут легко выдержать наш вес, а какие прогнутся, мы также знаем, какие веточки, судя по всему, крепкие. Мы помним, как падали и как забирались на верхушку. Мы фиксируем, какие ветви надежны, а какие опасны, и делимся этим знанием с окружающими. Мы забираемся на деревья, то есть играем в игры, опираясь на интуицию, опыт, специалистов и литературу.
А вот компьютеры не обладают такой интуицией в отношении дерева. Однако они способны добираться до всех частей кроны, причем очень быстро, точно колония муравьев. Это называется поиском. В каждой точке дерева, куда они попадают, муравьи производят небольшие вычисления, определяя качество этого места и присваивая ему баллы. Это называется оценкой. Перед тем как сделать ход в игре вроде шашек, компьютерные муравьи могут обежать миллионы мест на дереве, накапливая вычисления. Если какой-то путь наверх набирает более высокую оценку, компьютер направится именно туда. Компьютеры забираются на деревья – то есть играют в игры – с помощью поиска и оценки, поиска и оценки, поиска и оценки.
И поиск, и оценка – серьезные технические задачи. Начать с того, что в шашках существует 500 995 484 682 338 672 639 возможных позиций, то есть около 500 миллиардов миллиардов. Шеффер приводит такую аналогию: если бы Тихий океан высох и вам нужно было бы наполнить его с помощью маленькой чашки, то количество вливаемых порций было бы равно количеству возможных позиций в этой игре. Или такую: если бы площадь всей суши на нашей планете представляла совокупность возможных позиций в шашках, то каждой позиции соответствовала бы примерно одна сотая квадратного сантиметра. Таким образом, эффективность поиска имеет важнейшее значение. Если действовать путем простого перебора и смотреть на каждую из позиций в течение тысячной доли секунды примерно так, как машина Сэмюэла, то время, необходимое для просмотра их всех, превысило бы возраст Вселенной.
Оценка каждой позиции, когда мы на нее смотрим, – непростая задача. В шашках определенные особенности позиции являются желательными: хорошо иметь больше шашек, больше дамок, контролировать центральную часть доски и так далее. Есть и нежелательные особенности: расположение шашек по краям доски, незащищенная последняя горизонталь и так далее. Фокус в том, чтобы преобразовать всю эту мозаику особенностей и их сложные нелинейные математические взаимодействия в одно-единственное число, которое будет понятно вашей компьютерной программе.