Именно такой метод был разработан Артуром Самуэлем в его замечательной шашечной программе. Метод Самуэля состоял в одновременном использовании динамического (с заглядыванием вперед) и статического (без заглядывания вперед) способов оценки любой данной позиции. Статический метод основывался на простой математической функции нескольких величин, характеризующих любую позицию на доске; это вычислялось практически мгновенно. В свою очередь, динамический метод основывался на создании «дерева» возможных будущих ходов, ответов на них, ответов на ответы и так далее (как было показано на рис. 38). Некоторые параметры в функции статической оценки могли варьироваться, в результате чего получались разные версии этой функции. Стратегия Самуэля заключалась в том, чтобы путем естественного отбора находить все лучшие и лучшие значения этих параметров.
Это делалось следующим образом: каждый раз, когда программа оценивала позицию, она делала это одновременно статистически и динамически. Ответ, полученный путем анализа вариантов, — назовем его Д — использовался для нахождения следующего хода. Цель С — статистической оценки — была сложнее: после каждого хода переменные параметры немного исправлялись таким образом, чтобы С возможно больше приближалось к Д. В результате знание, полученное путем динамического анализа дерева, частично включалось в параметры статистической оценки. Короче, идея заключалась в том, чтобы постепенно превратить сложный динамический метод в гораздо более простую и эффективную функцию статической оценки.
Здесь возникает изящный рекурсивный эффект. Дело в том, что динамическая оценка любой данной позиции включает просчет вперед на конечное число ходов — скажем, семь. При этом промежуточные позиции, получающиеся после каждого возможного хода, также должны получить какую-то оценку. Но когда программа оценивает эти позиции, она, разумеется, уже не может просчитывать на семь ходов вперед — иначе ей пришлось бы анализировать четырнадцать возможных позиций, затем двадцать одну и так далее, и тому подобное — что породило бы бесконечный регресс. Вместо этого программа пользуется статическими оценками позиций, возникающих при анализе. Таким образом, схема Самуэля включает сложную обратную связь, в процессе которой программа непрерывно пытается превратить оценки, основанные на просчете вариантов, в более простой статический подход; этот подход в свою очередь играет ключевую роль в динамическом взгляде вперед. Таким образом, оба этих метода тесно связаны между собой, и каждый рекурсивным путем извлекает пользу из улучшений в другом методе.
Уровень игры шашечной программы Самуэля крайне высок и сравним с уровнем лучших человеческих игроков мира. Если это так, то почему бы не приложить ту же идею к шахматам? Международный комитет, собравшийся в 1961 году, чтобы обсудить возможность компьютерных шахмат, и включавший датского международного гроссмейстера и математика Макса Эйве, пришел к печальному заключению, что использование метода Самуэля в шахматах было бы примерно в миллион раз труднее, чем в шашках. По-видимому, это закрывает данный вопрос…
Удивительно высокого уровня игры шашечных программ недостаточно для того, чтобы утверждать, что искусственный интеллект уже создан; однако этого успеха также не следует преуменьшать. Это комбинация идей о том, что такое шашки и как их анализировать и программировать. Некоторые читатели могут подумать, что эта программа ничего, кроме шашечного мастерства самого Самуэля, не доказывает. Но это неверно по крайней мере по двум причинам. Во-первых, хорошие игроки выбирают ходы, руководствуясь мысленными процессами, которых они сами полностью не понимают — они пользуются интуицией. Однако до сих пор никому не известен способ стопроцентного использования собственной интуиции; лучшее, что мы можем сделать, это задним числом использовать наши «впечатления» или «мета-интуицию» (интуицию о собственной интуиции), чтобы с их помощью попытаться объяснить природу собственной интуиции. Но это было бы только грубым приближением к действительной сложности интуитивных методов. Поэтому практически невозможно, чтобы Самуэль скопировал в своей программе собственные методы игры. Есть и другая причина, по которой не следует путать игру Самуэлевой программы с игрой ее создателя — программа его регулярно обыгрывает! Это вовсе не парадокс — не более, чем тот факт, что компьютер, запрограммированный на вычисление π, может делать это гораздо быстрее самого программиста.
Проблема компьютера, превосходящего своего программиста, связана с вопросом «оригинальности» в ИИ. Что, если программа ИИ выдвинет идею или план игры, которые никогда не приходили в голову ее создателю? Кому тогда будет принадлежать честь? Существуют несколько интересных примеров, когда именно это и происходило; некоторые примеры касаются весьма тривиального уровня, некоторые — уровня довольно глубокого. Один из самых известных случаев произошел с программой Е. Гелернтера, созданной для доказательства теорем элементарной Эвклидовой геометрии. В один прекрасный день эта программа нашла блестящее и оригинальное доказательство одной из основных теорем геометрии, так называемой «pons asinorum» или «ослиный мост».
Эта теорема утверждает, что углы, прилегающие к основанию равнобедренного треугольника, равны между собой. Стандартное доказательство проводится с помощью высоты, делящей треугольник на две симметричные половины. Элегантный метод, найденный программой (см. рис. 114), не пользуется никакими дополнительными построениями.
Рис. 114. Доказательство Pons Asinorum (найденное Паппусом (ок. 300 г. до н. э.) и программой Гелернтера (ок. 1960 г. н. э.).) Требуется доказать, что углы, прилегающие к основанию равнобедренного треугольника, равны между собой. Решение: поскольку треугольник равнобедренный, АР и АР' — равной длины. Следовательно, треугольники РАР' и Р'АР конгруэнтны (сторона-сторона-сторона). Из этого вытекает, что соответствующие углы равны. В частности, углы, прилегающие к основанию, равны.
Вместо этого программа рассмотрела данный треугольник и его зеркальное отображение как два различных треугольника Доказав, что они конгруэнтны, она показала, что углы у основания соответствуют друг другу в этой конгруэнтности — что и требовалось доказать.
Это блестящее доказательство восхитило как создателя программы, так и многих других, некоторые даже увидели в этом признак гениальности. Не умаляя этого достижения, заметим, что в 300 году до н. э. геометр Паппус нашел также и это доказательство. Так или иначе, открытым остается вопрос: «Чья это заслуга?» Можно ли назвать это разумным поведением? Или же доказательство находилось глубоко внутри человека (Гелернтера), и компьютер только извлек его на поверхность? Последний вопрос подходит очень близко к цели. Его можно вывернуть наизнанку. Было ли доказательство спрятано глубоко в программе, или же оно лежало на поверхности? Насколько легко понять, почему программа сделала именно то, что она сделала? Может ли ее открытие быть приписано какому-то простому механизму, или простой комбинации механизмов программы? Или же имело место некое сложное взаимодействие, которое, будучи объяснено, не станет от этого менее достойным восхищения?