Эти правила (во всяком случае, часть из них) легко можно найти в любом руководстве для начинающих. Ну, например, там даются такие советы: «Держите под контролем четыре центральных поля», «Прежде чем атаковать, обеспечьте безопасность своего короля», «Не атакуйте противника, пока не укрепили свои позиции». Каждый такой совет и есть, по существу, один из эвристических алгоритмов, которыми человек овладел на опыте за многие десятилетия, что играет в шахматы.
Проанализировав правила шахматной игры, трое американских психологов, Ньюэл, Шоу и Сайгон, разбили их на шесть независимых целей: безопасность короля, материальное равновесие, контроль над центральными полями, развитие фигур, осада короля и продвижение пешек.
Этот порядок намеченных целей определяет последовательность действий, которые производит машина.
Сначала она постарается всеми доступными ей средствами обеспечить безопасность короля. Если это не удастся, она будет защищать его по мере возможностей. И только если король в безопасности, машина перейдет к следующей цели — учету возможных обменов фигурами, чтобы обеспечить достаточную защиту своих фигур. Затем электронный шахматист примется бороться за центральные поля и т. д.
С каждой из этих целей связан набор правил, по которым вырабатываются нужные ходы. Скажем, машина стремится завоевать центральные поля. Тогда она сначала предложит продвинуть ферзевую пешку, затем королевскую. Потом она постарается помешать противнику сделать то же самое и уже затем начнет делать ходы, подготавливающие достижение следующей по ранжиру цели, например, укрепит защиту ферзя или короля.
Предлагаемый ход машина «прикидывает» с точки зрения всех шести целей, чтобы косвенно не навредить самой себе. Мало того. У машины может быть не один вариант каждого хода, а несколько. И тогда она должна выбрать лучший. Время для выбора ограничено, и, когда оно истекает, машина останавливается на самом приемлемом из всех обдуманных ею к этому моменту.
Работая по такой программе, машина оказалась способной разыгрывать довольно сложные партии и выходить победительницей, даже когда ее партнерами были мастера шахмат. А все потому, что не перебирала все возможные варианты, как первые электронные шахматисты, а действовала по определенному плану, проявляя при этом изобретательность и смекалку.
Шахматы вообще — идеальная модель эвристического мышления. Вот почему эта древняя игра стала сейчас чем-то вроде пробного камня для проверки новых идей эвристического программирования. А сокращать перебор вариантов можно по-разному. Свидетельство тому шахматный матч, начавшийся осенью 1966 года между советской и американской электронными машинами. Это не спортивное соревнование, а сравнение эвристических программ, составленных советскими и американскими учеными. Помимо чисто научного интереса, машина, успешно играющая в шахматы, сможет выполнять любую сложную деятельность, например плановика, диспетчера и т. п.
Электронный шахматист не был первым механизмом, работающим по эвристической, творческой программе. Просто тут нагляднее видны преимущества человеческого способа решать сложные проблемы. Да и создать машину, по-настоящему играющую в шахматы, было очень трудно. Вот почему, когда это, наконец, удалось, об успехе инженеров сразу стало широко известно, хотя еще раньше те же трое ученых разработали другую эвристическую программу, более деловую.
Благодаря ей кибернетическая машина приобрела способность доказывать математические теоремы. Не просто логически вывести из некоего данного то, что отсюда следует, как делают школьники, а предложить новое научное доказательство, а это удается уже далеко не каждому математику и само по себе всегда большое событие в науке. За что ее и назвали «Логик-теоретик».
Как же действовал «Логик-теоретик»?
Ученые вложили в его память аксиомы, взятые из известной книги англичанина Рассела «Основы математики». Затем машине сообщили несколько теорем из первой части учебника. Это было, так сказать, «сырье». После чего будущему теоретику на примере одной из теорем продемонстрировали технику доказательства.
Обучение закончилось. Теперь машине стали давать описание исходных данных совершенно новых для нее теорем (их брали из второй части той же книги «Основы математики»), и она успешно доказала тридцать восемь из пятидесяти двух теорем. Конечно, никакого открытия в математике машина не сделала и вряд ли удостоится больших почестей за найденные доказательства.
Да это и понятно. Ведь она фактически выполнила уже проделанную раньше человеком работу. Правда, машина сумела предложить несколько оригинальных доказательств. А одно из них было короче и стройнее, чем у автора «Основ математики». Его даже собирались опубликовать в научном журнале как самостоятельное открытие, но редактор стал оспаривать приоритет машины.