Ис. 3.6. Белые начинают и добиваются ничьей.
ис. 3.5. Белые начинают и добиваются ничьей.
Человек легко решает эту задачу, но компьютер «ДипСот» первым же ходом бьет ладью черных! (задача Вильяма Харстона из статьи Джейн Сермор и Дэвида Норвуда в журнале New Scientist, № 1889, с. 23, 1993).
Разумеется, вы можете обучить ЭВМ использованию пешечного барьера, но проблема имеет более сложный и глубокий характер. В еще одном шахматном примере (рис. 3.6) белым следует поставить слона на b4 и, используя его вместо пешки, вновь создать непреодолимый пешечный барьер (вместо весьма заманчивого, но безнадежного взятия черной ладьи на а5). Задача очень похожа на предыдущую, но компьютер (даже если он умеет создавать пешечный барьер) опять начинает ошибаться, поскольку эта задача требует значительно более высокого уровня понимания. Вы можете возразить, что при желании в программу можно ввести все уровни понимания, и вы были бы правы, если бы рассмотрение относилось только к шахматным задачам. Повторю, что шахматы относятся к «вычислимым» играм, поэтому при достаточно мощном компьютере и хорошей программе можно (по крайней мере, в принципе) рассчитать до конца все вероятности. Пока это никому не удалось проделать, однако нас устроит и принципиальная возможность получения такого решения в будущем. Тем не менее, я надеюсь, вы почувствовали, что в термине «понимание» содержится нечто, не сводящееся к прямому расчету. Совершенно определенно можно сказать, что человеческий подход к решению даже таких простых шахматных задач существенно отличается от компьютерного.
ис. 3.6. Белые начинают и добиваются ничьей.
Человек легко решает и эту задачу, а шахматный компьютер вновь ошибается и первым ходом бьет слоном черную ладью (тест Тьюринга, рассматриваемый в цитированной статье Вильяма Харстона и Дэвида Норвуда).
Можно ли привести еще более сильные доводы в пользу того, что наше понимание содержит в себе нечто большее, чем набор вычислительных операций? Мне не хочется тратить слишком много времени на доказательство этого утверждения, однако это настолько важно для всей моей концепции, что я приведу еще в качестве примера несколько чисто математических задач. Читателю, заинтересовавшемуся проблемой связи мышления и вычислительных операций, я рекомендую прочитать мою книгу «Тени разума», где первые 200 страниц посвящены детальному и всестороннему обзору аргументации сторон в многочисленных дискуссиях по этому поводу.
Давайте поговорим о вычислениях чуть подробнее. Вычислениями я называю то, что делают вычислительные машины. Реальные компьютеры имеют ограниченную память, но я буду рассматривать работу идеального компьютера (так называемой машины Тьюринга), который отличается от обычных компьютеров неограниченным объемом памяти и способностью осуществлять совершенно безошибочные вычисления сколь угодно долго, практически вечно. Рассмотрим конкретную вычислительную задачу, связанную с арифметическими и логическими операциями:
• Найти число, не представимое суммой трех квадратных чисел.
Под числом я подразумеваю натуральное число (типа 0, 1,2, 3, 4, 5,...), а под «квадратным числом» – квадраты натуральных чисел (типа 02, 12, 22, З2, 42, 52,...). Я покажу вам сразу, как решается эта задача. Метод может показаться очень простым и даже примитивным, но он как раз дает неплохое представление о сущности того, что мы подразумеваем под вычислениями. Начнем с нуля и проверим, является ли он суммой трех квадратных чисел, для чего просто рассмотрим квадраты всех тех чисел, которые меньше или равны нулю. Естественно, мы имеем лишь одно такое квадратное число, а именно 02, в результате чего можем записать
0 = 02 + 02 + 02,
т.е. 0 действительно можно представить в виде суммы трех квадратов. Перейдем затем к единице и выпишем все возможные комбинации чисел, равных или меньше 1, в результате чего получим
1 = 02 + 02 + 12.
В табл. 3.2 я выписал результаты всех этих скучных и утомительных операций до числа 7, которое (как легко видеть из таблицы, где просто перечислены все комбинации) нельзя записать в виде суммы трех квадратов. Таким образом, число 7 является ответом для нашей задачи – оно представляет собой наименьшее число, которое нельзя представить в виде суммы трех квадратов. Этот пример довольно типичен для вычислительного метода решения простой по формулировке задачи.
аблица 3.2
Мы можем считать, что нам несколько повезло с задачей, поскольку вычисления привели к ответу довольно быстро, однако ясно, что в других задачах расчет может занимать очень много времени или даже продолжаться до бесконечности. Например, предположим, что я несколько изменил условия и нам необходимо:
• Найти число, не являющееся суммой четырех квадратных чисел.
Еще в XVIII веке знаменитый математик Лагранж доказал теорему о том, что каждое число может быть записано в виде суммы квадратов четырех чисел. Поэтому если вы начнете поиск нужного числа по предложенному выше методу, то ваш компьютер будет бестолково «тарахтеть» целую вечность, но так и не найдет ответа. Это пример задачи, решение которой простым вычислением может продолжаться бесконечно.
Доказательство теоремы Лагранжа довольно сложно, поэтому я приведу гораздо более доступный и легкий пример. Предположим, что мы хотим:
• Найти нечетное число, представимое в виде суммы двух четных чисел.
Компьютер может искать такое число вечность, хотя мы с вами прекрасно знаем, что сумма двух четных чисел всегда дает четное число. Но вот вам пример гораздо более сложной задачи:
• Найти четное число больше 2, не являющееся суммой двух простых чисел.
Как вы считаете, справится ли когда-нибудь компьютер с этим расчетом? Вообще-то считается, что эта задача (называемая проблемой Гольдбаха) не имеет решения, но она столь сложна, что у математиков нет единого мнения об ее истинности. Я нарочно подобрал три задачи разной степени сложности (очень простую, достаточно сложную и настолько сложную, что никто не знает ее ответа), чтобы сформулировать следующий вопрос:
• Пользуются ли математики некоторым алгоритмом вычислений (давайте обозначим его через А), который позволяет им убедиться, что некий вариант вычислений будет продолжаться бесконечно долго?
Например, подумайте, сработало ли в мозгу Лагранжа нечто похожее на компьютерную программу, прежде чем он пришел в конечном счете к заключению о возможности представления каждого числа суммой квадратов четырех чисел? Для ответа на этот вопрос вовсе не надо представлять себя Лагранжем, достаточно просто проследить за ходом его рассуждений. Заметьте, что меня совершенно не интересует проблема оригинальности мысли, я хочу лишь рассмотреть проблему самого процесса познания, вследствие чего и использовал в формулировке вопроса слово «убедиться» (подразумевая возникновение или создание какого-то понимания).
В науке вообще (а в логике, в частности) утверждения о том, что некоторые вычисления являются бесконечными, носят название П1-высказываний. Давайте рассмотрим такие высказывания несколько подробнее, так как я собираюсь доказать, что указанного выше алгоритма А не существует.
Я начну доказательство с некоторого обобщения рассмотренных выше задач, а именно попытаюсь выявить зависимость связанных с их решением вычислений от чисел п натурального ряда. Пусть, например, нам необходимо:
• Найти натуральное число, не являющееся суммой п квадратных чисел.
Нам уже известно, что для п = 3 ответ может быть получен очень быстро, а для чисел п > 4 вычислительные операции никогда не закончатся (в соответствии с теоремой Лагранжа). Попробуем далее решить следующую задачу:
• Найти нечетное число, являющееся суммой п четных чисел.
В этом случае нам нет даже необходимости говорить о зависимости от п, поскольку для любых п вычисления никогда не закончатся. Наконец, в качестве обобщения проблемы Гольдбаха я предлагаю задачу следующего вида:
• Найти четное число больше 2, не являющееся суммой п простых чисел.
Если утверждение Гольдбаха верно, то вычисления будут длиться бесконечно для всех п (кроме 0 и 1). В некотором смысле доказательство даже упрощается с ростом п. Я действительно верю, что существует достаточно большое число п, для которого вычисления «продолжаются вечно».
Важнейшей характеристикой вычислений такого типа является их зависимость от чисел натурального ряда п, и именно это обстоятельство стало центральным моментом для так называемой теоремы Гёделя о неполноте (в Англии ее иногда называют догадкой или конъектурой Гёделя). Я буду рассматривать ее в формулировке, предложенной Аланом Тьюрингом, однако незначительно изменю ход его рассуждений. Если вы не любите математические выкладки, то можете просто пропустить этот кусок текста. Получаемый результат очень важен, но особенно интересно то, что доказательство вовсе не является сложным – оно всего лишь поразительно и даже вызывает недоумение!
Вычисления, связанные с конкретным числом п, совершенно стандартны и привычны для большинства компьютерных программ. Вы можете, например, просто взять набор программ, пронумеровать их в соответствии с текущим номером (обозначив его через р), а затем запустить компьютер, заложив в него этот порядковый номер. Компьютер начнет добросовестно «тарахтеть», последовательно осуществляя вычисления с числом п в соответствии с р -й программой. Вам необходимо лишь записать порядковый номер р в виде нижнего индекса справа, и тогда набор программ (или вычислений), связанных с числом п, примет простой и ясный вид
N), С1(n), С2(n), С3(n),..., Сp(n),....
Предположим, что этот набор содержит все возможные вычисления Сp(n) и что мы можем найти какой-то эффективный метод упорядочения этих компьютерных программ, так что индекс р означает р -ю по порядку программу вычислений в соответствии с некоторым правилом, вследствие чего Сp(n) будет означать р -ю программу, примененную к числу п.
Предположим далее, что мы имеем какую-то вычислительную (т. е. алгоритмическую) процедуру А, относящуюся к паре чисел (р, п), осуществление которой дает очевидное и убедительное доказательство того, что работа программы Сp(n) еще не закончена. При этом вовсе не требуется, чтобы алгоритм А(р, п) работал постоянно, т. е. если вычисление Сp(n) является бесконечным, то это не значит, что характеризующий его алгоритм А(р, п) тоже будет выполняться за бесконечное время. Но я подчеркиваю, что алгоритм А (в соответствии с уже отмеченными свойствами компьютера) срабатывает без ошибок, т. е. если операция А(р, п) не завершена, то это также означает, что вычисление Сp(n) не закончено. А теперь представим себе, что какие-то математики, исходя из соображений типа описанного алгоритма А, сформулировали (или просто повторили) в строгом математическом виде некоторое утверждение (например, П1-утверждение). Предположим также, что они знают о существовании операции А и уверены в ее надежности и обоснованности. Представим себе далее, что процедура А включает в себя все операции, доступные математикам для того, чтобы убедить последних в бесконечном характере вычислений. Процедура А начинается с отбора программы, имеющей индекс р, а затем натурального числа п, к которому относится данная программа. Далее, если вычислительная операция А(р, п) закончена, то это означает, что вычисление Сp(n) не завершено, т.е.
Если операция А(р, п) завершена, то вычисление Сp(n) не закончено. (1)
Собственно говоря, в этом и заключается роль процедуры А – она должна давать неопровержимые доказательства того, что определенные вычисления не окончены.
Предположим далее, что р = п, в результате чего возникает хорошо известная и довольно забавная ситуация, известная под названием диагонализации Кантора (кстати, ее использование математически совершенно обоснованно), после которой мы вдруг приходим к следующему выводу:
Если операция А(п, п) завершена, то вычисление Сn(n) не закончено.
Но в данном случае A(п, п) зависит лишь от одного параметра п и, следовательно, принадлежит к набору вычислительных программ Сp(n) (поскольку этот список по определению включал в себя все вычисления, связанные с единственной переменной п). Предположим, что вычислительная программа, идентичная A(п, п), имела индекс k, т.е.
А(n, n) = Сk(n).
Положив n = k, мы тут же получаем
А(k, k) = Сk(k),
что в сочетании с условием (1) сразу приводит к заключению:
Если операция А(k, k) завершена, то вычисление Сk(k) не закончено.
Вспомнив, что А(k, k) совпадает с Сk(k), мы попадаем в логическую ловушку. Раз вычисление Сk(k) заканчивается, то оно не заканчивается (следовательно, оно заканчивается и т. д.). Ловушка заключается в том, что если мы доверяемся проверочной процедуре А, то должны верить и в то, что вычисление Сk(k) не закончено. Однако при этом процедура А тоже никак не может закончиться, т. е. «понять» наконец, что вычисление Сk(k) не кончается. Поэтому вычислительная процедура никак не может замкнуть цепочку математических рассуждений и решить, что заданное вычисление не заканчивается, т. е. установить истину П1-утверждения. В этом суть доводов Гёделя-Тьюринга в той форме, которая нужна мне для дальнейших рассуждений.
Вы можете подумать об общем смысле этого доказательства. Оно ясно демонстрирует, что математическое понимание и/или интуиция не могут быть закодированы в виде какого-то вычислительного процесса, в справедливости которого мы можем быть абсолютно уверены. Мне кажется, что приведенная формулировка наиболее ясным образом определяет сущность подхода Гёделя-Тьюринга, хотя некоторые придерживаются другой точки зрения. В этой связи интересно вспомнить, что писали сами эти авторы о полученном ими результате. Предлагаю вам одну из оценок Тьюринга:
«Другими словами, абсолютно безупречно работающая машина не может обладать интеллектом. Об этом свидетельствует ряд теорем, которые, однако, ничего не говорят о том, каким уровнем интеллекта может обладать машина, не претендующая на безошибочность и безупречность работы».
Таким образом, согласно Тьюрингу утверждения теоремы Гёделя-Тьюринга совместимы с идеей о том, что математиков можно действительно рассматривать в качестве компьютеров, если алгоритмические операции, выполняемые ими при выводе математических истин, не являются принципиально здравыми, обоснованными и разумными. Мы можем ограничиться рассмотрением лишь арифметических утверждений, например, лишь П1-высказываниями, которые представляют собой интересный, но весьма ограниченный тип утверждений. Мне кажется, что на самом деле Тьюринг верил в то, что человеческий мозг использует алгоритмы, но эти алгоритмы являются совершенно нерегулярными (именно в этом смысле они неразумны). Такая ситуация представляется неправдоподобной, поскольку она не только обескураживает, но и просто не позволяет понять, каким образом можно обсуждать что-то и приходить к каким-то выводам вообще. В любом случае точка зрения Тьюринга не внушает мне доверия, а в предложенной выше схеме (см. табл. 3.1) его рассуждения следует отнести к A -подходу.
Рассмотрим далее точку зрения Гёделя, которая в моей схеме относится к D -подходу. Обращаю ваше внимание на то, что при рассмотрении одних и тех же проблем Тьюринг и Гёдель приходят к совершенно противоположным выводам. И хотя Гёдель не верит, что математическое вдохновение можно свести к каким-то вычислительным операциям, он не отказывается от этой возможности достаточно четко и определенно. Он говорит:
«С другой стороны, на основе всего доказанного сохраняется возможность существования (и, может быть, даже эмпирического создания) машины, способной доказывать теоремы. В реальной жизни такая машина стала бы эквивалентом математической интуиции, однако это невозможно доказать аналогично тому, как в теории конечных чисел нельзя выводить только правильные теоремы».
Это высказывание явно намекает на существование «лазейки», позволяющей непосредственно использовать теорему Гёделя-Тьюринга для опровержения идей вычислимости (или функционализма). Лазейка заключается в том, что математик может пользоваться некоторым здравым и логичным алгоритмом, не будучи полностью уверен в его разумности. Таким образом, Гёдель видел лазейку в познавательной части алгоритмов, в то время как Тьюринг выделяет в алгоритмах именно их разумность.
Ни один из этих подходов не кажется мне убедительным. Теорема Гёделя-Тьюринга всего лишь утверждает, что если доказана разумность какой-то алгоритмической процедуры (для доказательства П1-утверждений), то можно немедленно получить некий результат, выходящий за рамки данной процедуры. Мы можем сделать это и сами, используя какую-либо другую алгоритмическую процедуру (о разумности которой мы ничего не знаем). Кроме этого возможно существование некой обучающейся машины, которая поможет нам в этом поиске. Эта проблема (и целая куча связанных с нею задач) довольно подробно рассматривается в моей книге «Тени разума», и поэтому я не буду повторять все доводы и рассуждения, а отмечу только два из них.
Главный вопрос заключается в том, каким образом возникает этот предполагаемый алгоритм? Можно предположить, что в мозгу человека при этом происходит нечто подобное естественному отбору, в то время как в случае робота новый алгоритм создается какой-то специальной структурой, которую можно смело назвать AI (Artificial Intelligence, искусственный интеллект). Я не буду вдаваться в сложные рассуждения по этому поводу, а лишь приведу вам две простые карикатуры из упомянутой книги.
Первая из них (рис. 3.7) относится к связи понимания с естественным отбором. Любой первобытный математик с точки зрения естественного отбора и дарвиновской межвидовой борьбы за существование находится в весьма невыгодном положении (по сравнению, например, с показанным на рисунке саблезубым тигром). Однако на заднем фоне картинки можно видеть сородичей математика, которые успешно охотятся на мамонтов, строят дома, выращивают какие-то злаки и т. п. Все эти операции требуют от первобытных людей развития «понимания», но заметьте, что сам математик в этих действиях непосредственно не участвует. Таким образом, качество и уровень «понимания» могут существенно влиять на процессы естественного отбора видов, хотя сами математические алгоритмы не имеют к этим процессам никакого прямого отношения.
ис. 3.7.
Едва ли способность к сложным математическим построениям давала нашим далеким предкам какие-то особые преимущества в процессах естественного отбора, однако общая способность к пониманию, безусловно, способствовала их выживанию.
На другой карикатуре (рис. 3.8), связанной с одним из сюжетов книги «Тени разума», показан созданный по некоторому проекту робот с искусственным интеллектом. Сюжет относится к дискуссии между роботом и специалистом по АI, которая достаточно сложна и занимает в книге много места, вследствие чего я не буду ее пересказывать. В свое время моя точка зрения на доводы Гёделя-Тьюринга была подвергнута жестокой критике самыми различными людьми, с самых разных позиций и по самым разным причинам. Дискуссия в книге «Тени разума» между AI-экспертом и роботом представляет собой мою попытку обобщения всех новых доводов и возражений.