3 Гёдель и Тьюринг
Вид материала | Документы |
3.26. Разрыв вычислительных петель 3.27. Вычислительная математика: процедуры нисходящие или восходящие? |
- 17/09/2004 10: 10: 00, 54.84kb.
- Лекция: Интеллектуальные, 367.57kb.
- Доклад посвящен юбилею 55 лет назад А. Тьюринг предложил тест, ставший сегодня методологической, 19.86kb.
- Искусственный интеллект -основа новых информационных технологий, 130.05kb.
- Установочная лекция вткс, 212.41kb.
- Информационные технологии и вычислительные системы, №3, 2002, 558.37kb.
3.26. Разрыв вычислительных петель
Попробую осветить полученный вывод под несколько иным углом зрения. Предположим, что, пытаясь обойти налагаемые теоремой Гёделя ограничения, некто решил построить такого робота, который будет способен каким-либо образом «выскакивать из системы» всякий раз, когда управляющий им алгоритм попадет в вычислительную петлю. В конце концов именно постоянное приложение теоремы Гёделя не позволяет нам спокойно принять предположение о том, что математическое понимание можно объяснить посредством вычислительных процедур, поэтому, как мне кажется, стоит рассмотреть с этой точки зрения трудности, с которыми сталкивается любая вычислительная модель математического понимания при встрече с теоремой Гёделя.
Мне кто-то говорил, что где-то живут ящерицы, тупость которых настолько велика, что они, подобно «обычным компьютерам и некоторым насекомым», способны «зацикливаться». Если несколько таких ящериц поместить на край круглого блюда, то они в вечной «гонке за лидером» будут бегать по кругу до тех пор, пока не умрут от истощения. Смысл этой истории в том, что подлинно интеллектуальная система должна располагать какими-то средствами для разрыва таких петель, тогда как ни один из существующих компьютеров подобными качествами, вообще говоря, не обладает. (Проблему «разрыва петель» рассматривал Хофштадтерв[200].)
Вычислительная петля простейшего типа возникает, когда система на некотором этапе своей работы возвращается назад, в точности в то же состояние, в каком она пребывала на некотором предыдущем этапе. В отсутствие ввода каких-то дополнительных данных она будет просто повторять одно и то же вычисление бесконечно. Не составляет большой трудности построить систему, которая, в принципе, будет гарантированно (пусть и не слишком эффективно) выбираться из петель подобного рода по мере их возникновения (скажем, посредством ведения списка всех состояний, в которых оказывается система, и проверки на каждом этапе на предмет выяснения, не встречалось ли такое состояние когда-либо раньше). Существует, однако, множество других возможных типов петель, причем гораздо более сложных. Собственно говоря, проблеме образования петель посвящена большая часть рассуждений главы 2 (в особенности, §§2.1 — 2.6), так как вычисление, застрявшее в петле, есть не что иное, как вычисление, которое не завершается. Собственно говоря, под



Таким образом, получается, что, если мы хотим встроить в систему все доступные человеку методы, позволяющие однозначно установить, что те или иные вычисления действительно образуют петли, необходимо снабдить ее неким «невычислительным интеллектом». Можно, конечно, предположить, что петель можно избежать с помощью некоего механизма, который будет оценивать, как долго уже выполняется текущее вычисление, и «выскакивать из системы», если ему покажется, что оно выполняется слишком долго. Однако такой способ не сработает, если механизм, принимающий подобные решения, является по своей природе вычислительным, поскольку в этом случае неизбежны ситуации, когда упомянутый механизм со своей задачей не справляется, либо приходя к ошибочному заключению, что вычисление зациклилось, либо вообще не приходя ни к какому заключению (по той причине, что теперь зациклился уже сам механизм). Целиком и полностью вычислительной системе нечего противопоставить проблеме образования петель, и нет никаких гарантий, что вся система в целом, пусть даже избежав ошибочных выводов, в конце концов не зациклится.
А что если ввести в процесс принятия решения о необходимости «выскакивать из системы» (в случае предположительно зациклившегося вычисления) и о том, когда именно это нужно делать, некоторые случайные элементы? Как мы отмечали выше (в частности, в §3.18), от чисто случайных элементов — в противоположность вычислительным псевдослучайным — нам в этой связи никакой реальной пользы не будет. Кроме того, если мы действительно хотим знать точно, образует ли петлю то или иное вычисление (т. е. истинно ли соответствующее


Если мы намерены научиться однозначно устанавливать истинность любого

В качестве примера вернемся к вычислению, приведенному в комментарии к возражению




Несколько более интересным примером может послужить вычисление, которое, как нам недавно стало известно, все-таки завершается, хотя долгое время казалось, что конца ему не предвидится. Это вычисление происходит из допущения, сделанного великим швейцарским математиком Леонардом Эйлером, и состоит в отыскании решения в положительных целых числах (т. е. натуральных числах, кроме нуля) следующего уравнения:

В 1769 году Эйлер предположил, что это вычисление является незавершаемым. В середине 1960-х Л.Лэндером и Т. Паркином была предпринята попытка отыскать решение с помощью специально разработанной компьютерной программы (см. [233]), однако проект через некоторое время оставили ввиду отсутствия перспективы получить искомое решение в сколько-нибудь обозримом будущем — получаемые в процессе числа оказались слишком велики для имеющегося в распоряжении математиков компьютера, и они просто-напросто сдались. По всему выходило, что это вычисление и впрямь не завершается. Однако в 1987 году математику (человеку, кстати) Ноаму Элькису не только удалось показать, что решение таки существует, но и представить его в численном виде:









Лавры за решение этой задачи следует разделить поровну между математическими интуитивными прозрениями и прямыми вычислительными подходами. Решая задачу математически, Элькис прибегал и к помощи компьютерных вычислений, пусть и относительно несущественных, хотя по большей своей части его аргументация таких подпорок не требует. И наоборот, как мы видели выше, для того чтобы сделать вычисление вообще возможным, Фраю потребовалось весьма существенная помощь со стороны человеческой интуиции.
Думаю, следует поместить нашу задачу в несколько более подробный контекст — первоначальное предположение Эйлера, сделанное в 1769 году, представляло собой нечто вроде обобщения знаменитой «последней теоремы Ферма», согласно которой, как читатель, возможно, припоминает, верно следующее:
уравнение

не имеет решения в положительных целых числах


где







Вспомним еще об одном знаменитом примере вычисления, о котором известно лишь то, что оно в конце концов завершается; когда именно оно завершается, неизвестно до сих пор. Это вычисление связано с задачей об отыскании точки, в которой одна хорошо известная приближенная формула для определения количества простых чисел, меньших некоторого положительного целого n (интегральный логарифм Гаусса), оказывается не в состоянии это количество оценить. В 1914 году Дж. Э. Литлвуд показал, что в некоторой точке эта задача имеет решение. (Приблизительно то же можно выразить и иначе: например, доподлинно известно, что две кривые в некоторой точке пересекаются.)
В 1935 году ученик Литлвуда по фамилии Скьюс показал, что упомянутая точка приходится на число, меньшее

3.27. Вычислительная математика: процедуры нисходящие или восходящие?
В предыдущем разделе мы могли убедиться, какую неоценимую помощь могут оказать компьютеры при решении некоторых математических задач. Во всех упомянутых успешных примерах примененные вычислительные процедуры носили исключительно нисходящий характер. Более того, лично мне не известно ни об одном сколько-нибудь значительном чисто математическом результате, полученном с помощью восходящих процедур, хотя вполне возможно, что такие методы могут оказаться весьма полезными в различного рода поисковых операциях, входящих в состав каких-либо по преимуществу нисходящих процедур, предназначенных для отыскания решений тех или иных математических задач. Может, так оно и будет, однако мне до сих пор не доводилось сталкиваться в вычислительной математике ни с чем таким, что хотя бы отдаленно напоминало конструкции вроде нашей формальной системы

Как показывают представленные выше аргументы, математическое понимание представляет собой нечто, в корне отличное от вычислительных процессов; вычисления не могут полностью заменить понимание. Вычисление способно оказать пониманию чрезвычайно ценную помощью, однако само по себе вычисление действительного понимания не дает. Однако математическое понимание часто оказывается направлено на отыскание алгоритмических процедур для решения тех или иных задач. В этом случае алгоритмические процедуры могут «взять управление на себя», предоставив интеллекту возможность заняться чем-то другим. Приблизительно таким образом работает хорошая система обозначений — такая, например, как та, что принята в дифференциальном исчислении, или же всем известная десятичная система счисления. Овладев алгоритмом, скажем, умножения чисел, вы сможете выполнять операцию умножения совершенно бездумно, алгоритмически, при этом в процессе умножения вам совершенно ни к чему «понимать», почему в данной операции применяются именно эти алгоритмические правила, а не какие-то другие.
Помимо прочего, на основании всего вышеизложенного, мы приходим к выводу, что процедура, необходимая для «обучения робота математике», не имеет ничего общего с процедурой, которая в действительности обусловливает человеческое понимание математики. И уж во всяком случае подобные, по преимуществу восходящие процедуры, по всей видимости, абсолютно не годятся, с практической точки зрения, для построения робота-математика, даже такого, который не будет претендовать на какую бы то ни было симуляцию действительного понимания, присущего математикам-людям. Как мы уже указывали ранее, когда дело доходит до неопровержимого установления математической истины, сами по себе восходящие процедуры обучения оказываются совершенно неэффективными. Если уж нам предстоит изобрести вычислительную систему для производства неопровержимых математических истин, гораздо эффективнее будет построить эту систему в соответствии с нисходящими принципами (по крайней мере, в той ее части, которая будет отвечать за неопровержимость производимых ею утверждений; в части же, занятой изысканиями, вполне могут пригодиться и восходящие процедуры). Что касается обоснованности и эффективности упомянутых нисходящих процедур, то о них должен позаботиться человек, осуществляющий первоначальное программирование, т. е. существенно необходимыми компонентами процесса, недостижимыми посредством чистого вычисления, оказываются человеческое понимание и способность проникать в суть.
Вообще говоря, в нынешнее время компьютеры нередко именно таким образом и используются. Самый знаменитый пример — уже упоминавшееся выше доказательство теоремы о четырех красках, осуществленное Кеннетом Аппелем и Вольфгангом Хакеном с помощью компьютера. Роль компьютера в данном случае свелась к выполнению некоторого четко определенного вычисления для каждого возможного варианта, причем количество альтернативных вариантов, хотя и было весьма велико, составляло все же величину конечную; исключение этих возможных вариантов дает основания для проведения (математиками-людьми) требуемого общего доказательства. Имеются и другие примеры подобных доказательств «с компьютерной поддержкой», а кроме того, сегодня на компьютере выполняют не только численные расчеты, но и сложные алгебраические преобразования. И в этом случае работой компьютера управляют строго нисходящие процедуры, правила же для этих процедур формулируются человеком в результате понимания задачи.
Следует упомянуть и еще об одном направлении работ — так называемом «автоматическом доказательстве теорем». К этой категории можно отнести, например, набор процедур, состоящий в определении некоторой фиксированной формальной системы



Более близкую аналогию с описанными в предыдущих разделах процедурами можно усмотреть в предпринимаемых различными исследователями на протяжении последних приблизительно десяти лет попытках разработки «искусственно-интеллектуальных» процедур для реализации математического «по-нимания». Надеюсь, представленные мною аргументы дают ясное представление о том, что каковы бы ни оказались успехи подобных систем, действительного математического понимания они ни в коем случае не достигнут! Некоторое отношение к упомянутым трудам имеют и попытки создания автоматических «теоремо-порождающих» систем; задачей такой системы является отыскание теорем, которые можно отнести к категории «интересных» — в соответствии с определенными критериями, заданными системе заранее. Насколько мне известно (и думаю, многие с этим согласятся), из этих попыток пока что ничего, что представляло бы сколько-нибудь реальный математический интерес, не вышло. Мне, несомненно, возразят, что мы еще лишь в начале пути, и наверняка в будущем от них можно ожидать самых потрясающих результатов. Однако всякому, кто дочитал до этого места, уже должно быть ясно, что лично я крайне скептически отношусь к возможности получения из всех этих начинаний хоть какого-то подлинно положительного результата — разве что мы наконец выясним точные пределы возможностей таких систем.